FILES
-----
dungeon_worlds.config
player.config
terrestrial_worlds.config
behaviors\monsters\boss\spiderboss\main.behavior
behaviors\monsters\critter\flying.behavior
behaviors\monsters\modular\actions\swoop.behavior
biomes\oredistributions.configfunctions
[NEW] biomes\surface_detached\geode.biome
dungeons\missions\avianmissions\avianmission1.dungeon
dungeons\missions\avianmissions\avianmission1.json
interface\chat\chatpane.png
[NEW] interface\crafting\craftinganvil.png
[NEW] interface\crafting\craftinganvil2.png
[NEW] interface\crafting\craftinganvil3.png
[NEW] interface\crafting\craftingfarm.png
[NEW] interface\crafting\craftingfarm2.png
[NEW] interface\crafting\craftingfurniture.png
[NEW] interface\crafting\craftingfurniture2.png
[NEW] interface\crafting\craftingmedical.png
[NEW] interface\crafting\craftingmedical2.png
[NEW] interface\crafting\craftingwheel.png
[NEW] interface\crafting\craftingwheel2.png
[NEW] interface\crafting\inventorstable.png
[NEW] interface\crafting\inventorstable2.png
[NEW] interface\crafting\inventorstable3.png
[NEW] interface\crafting\tabicon_logic.png
[NEW] interface\crafting\tabicon_mechanics.png
[NEW] interface\crafting\tabicon_sensors.png
[NEW] interface\crafting\tabicon_switches.png
[NEW] interface\crafting\wiringbody.png
interface\games\fossilgame\fossilgame.lua
[NEW] interface\statuses\electricblock.png
[NEW] interface\statuses\fireblock.png
interface\statuses\healblock.png
[NEW] interface\statuses\ice.png
[NEW] interface\statuses\iceblock.png
[NEW] interface\statuses\poisonblock.png
interface\windowconfig\craftingfurniture.config
interface\windowconfig\spinningwheel.config
[NEW] interface\windowconfig\wiringstation.config
items\active\grapple\grapple.lua
items\active\shields\shield.lua
[NEW] items\active\unsorted\geode\geode.activeitem
[NEW] items\active\unsorted\geode\geode.animation
[NEW] items\active\unsorted\geode\geode.lua
[NEW] items\active\unsorted\geode\geode.png
[NEW] items\active\unsorted\geode\geodeicon.png
items\active\unsorted\parasol\parasol.lua
items\active\unsorted\partypopper\partypopper.lua
items\active\unsorted\rewardbag\rewardbag.lua
items\active\unsorted\translocator\translocator.lua
items\active\unsorted\wateringcan\wateringcan.lua
items\active\vehiclecontroller\vehiclecontroller.lua
items\active\weapons\weapon.lua
items\active\weapons\fist\fistweapon.lua
items\active\weapons\fist\combofinishers\dashslash.lua
items\active\weapons\fist\combofinishers\powerpunch.lua
items\active\weapons\fist\combofinishers\snaproot.lua
items\active\weapons\fist\combofinishers\uppercut.lua
items\active\weapons\melee\meleeweapon.lua
items\active\weapons\melee\altabilities\broadsword\traildash\traildash.lua
items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.lua
items\active\weapons\melee\altabilities\generic\blinkexplosion\blinkexplosion.lua
items\active\weapons\melee\altabilities\hammer\elementalpillar\elementalpillar.lua
items\active\weapons\melee\altabilities\hammer\groundslam\groundslam.lua
items\active\weapons\melee\altabilities\hammer\shockwave\shockwave.lua
items\active\weapons\melee\altabilities\spear\barrier\barrier.lua
items\active\weapons\melee\altabilities\spear\elementalspin\elementalspin.lua
items\active\weapons\melee\altabilities\spear\rocketspear\rocketspear.lua
items\active\weapons\melee\hammer\hammer.lua
items\active\weapons\melee\mission\nurusspear\nurusspear.lua
items\active\weapons\melee\spear\spear.lua
items\active\weapons\ranged\gun.lua
items\active\weapons\ranged\gunfire.lua
items\active\weapons\ranged\altabilities\altfire.lua
items\active\weapons\ranged\altabilities\explosiveburst\explosiveburst.lua
items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.lua
items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.lua
items\active\weapons\ranged\altabilities\homingrocket\homingrocket.lua
items\active\weapons\ranged\altabilities\lance\lance.lua
items\active\weapons\ranged\altabilities\markedshot\markedshot.lua
items\active\weapons\ranged\altabilities\rocketburst\rocketburst.lua
items\active\weapons\ranged\boomerang\boomerang.lua
items\active\weapons\ranged\flamethrower\flamethrower.lua
items\active\weapons\ranged\remotegrenadelauncher\remotegrenadelauncher.lua
items\armors\biome\geode\geode\icons.png
items\generic\crafting\battery.item
[NEW] items\generic\crafting\durasteelore.item
[NEW] items\generic\crafting\durasteelore.png
items\generic\crafting\titaniumbar.item
[NEW] items\generic\other\burnspray.consumable
[NEW] items\generic\other\burnsprayicon.png
items\generic\other\medkit.consumable
items\guns\bows\aegisaltbow\aegisaltbow.gun
items\guns\bows\bow\bow.gun
items\guns\bows\compoundbow\compoundbow.gun
items\guns\bows\cupidsbow\cupidsbow.gun
items\guns\bows\feroziumbow\feroziumbow.gun
items\guns\bows\ironbow\ironbow.gun
items\guns\bows\tungstenbow\tungstenbow.gun
items\guns\bows\tungstenbow\tungstenbow.png
items\guns\bows\tungstenbow\tungstenbowicon.png
items\materials\geodeblock.png
items\materials\geodestone.png
monsters\capturepod.lua
monsters\flocking.lua
monsters\groundmovement.lua
monsters\grumblestate.lua
monsters\monster.lua
monsters\returnhomestate.lua
monsters\simplerangedattack.lua
monsters\tenant.lua
monsters\boss\bossmonster.lua
monsters\boss\crystalboss\crystalbossreset.lua
monsters\boss\crystalboss\diestate.lua
monsters\boss\crystalboss\skills\crystaldoublebeamattack.lua
monsters\boss\crystalboss\skills\crystalidleattack.lua
monsters\boss\crystalboss\skills\crystalmoontantattack.lua
monsters\boss\crystalboss\skills\crystalshatterattack.lua
monsters\boss\crystalboss\skills\crystalsinebeamattack.lua
monsters\boss\crystalboss\skills\crystalsinglebeamattack.lua
monsters\boss\missile\missile.lua
monsters\boss\penguin\behavior.lua
monsters\boss\penguinminiufo\penguinminiufo.lua
monsters\boss\penguintank\behavior.lua
monsters\boss\penguinufo\diestate.lua
monsters\boss\penguinufo\skills\ufomovefireattack.lua
monsters\boss\penguinufo\skills\ufopulsecannonattack.lua
monsters\boss\penguinufo\skills\uforeinforcementsattack.lua
monsters\boss\penguinufo\skills\ufoslamattack.lua
monsters\boss\penguinufo\skills\ufospawntanksattack.lua
monsters\boss\penguinufo\skills\ufoswoopattack.lua
monsters\boss\penguinufo\skills\ufoteleportattack.lua
monsters\boss\robotboss\idlestate.lua
monsters\boss\robotboss\skills\robotdashattack.lua
monsters\boss\robotboss\skills\robotelectricburstattack.lua
monsters\boss\robotboss\skills\robotflamethrowerattack.lua
monsters\boss\robotboss\skills\robotmissilebarrageattack.lua
monsters\boss\robotboss\skills\robotpunchattack.lua
monsters\bugs\behavior.lua
[NEW] monsters\critter\floatinggeodecritter\body.frames
[NEW] monsters\critter\floatinggeodecritter\body.monsterpart
[NEW] monsters\critter\floatinggeodecritter\body.png
[NEW] monsters\critter\floatinggeodecritter\floatinggeodecritter.animation
[NEW] monsters\critter\floatinggeodecritter\floatinggeodecritter.monstertype
[NEW] monsters\critter\largegeodecritter\body.frames
[NEW] monsters\critter\largegeodecritter\body.monsterpart
[NEW] monsters\critter\largegeodecritter\body.png
[NEW] monsters\critter\largegeodecritter\largegeodecritter.animation
[NEW] monsters\critter\largegeodecritter\largegeodecritter.monstertype
[NEW] monsters\critter\smallgeodecritter\body.frames
[NEW] monsters\critter\smallgeodecritter\body.monsterpart
[NEW] monsters\critter\smallgeodecritter\body.png
[NEW] monsters\critter\smallgeodecritter\smallgeodecritter.animation
[NEW] monsters\critter\smallgeodecritter\smallgeodecritter.monstertype
monsters\dungeon\chicken\behavior.lua
monsters\dungeon\cleaningbot\behavior.lua
monsters\dungeon\giftmonster\behavior.lua
monsters\dungeon\glitchknight\behavior.lua
monsters\dungeon\po\behavior.lua
monsters\dungeon\repairbot\behavior.lua
monsters\dungeon\robotchicken\behavior.lua
monsters\dungeon\swarpion\behavior.lua
monsters\generated\flying\skills\flyingswoopattack.lua
monsters\generated\swimming\attackstate.lua
monsters\generated\swimming\fleestate.lua
monsters\generated\swimming\flopstate.lua
monsters\generated\swimming\swimmingmonster.lua
monsters\generated\swimming\wanderstate.lua
monsters\generated\swimming\smallfish\fleestate.lua
monsters\generated\swimming\smallfish\investigatestate.lua
monsters\generated\swimming\smallfish\scatterstate.lua
monsters\generated\swimming\smallfish\smallfish.lua
monsters\pets\groundpet.lua
monsters\pets\idlestate.lua
monsters\pets\petbehavior.lua
monsters\pets\petcapturepod.lua
monsters\pets\wanderstate.lua
monsters\pets\actions\begaction.lua
monsters\pets\actions\eataction.lua
monsters\pets\actions\followaction.lua
monsters\pets\actions\inspectaction.lua
monsters\pets\actions\pounceaction.lua
monsters\pets\actions\sleepaction.lua
monsters\pets\actions\starvingaction.lua
monsters\pets\petball\petball.lua
npcs\bmain.lua
objects\explodingsmashable.lua
objects\ancient\ancientconsole\ancientconsole.lua
objects\ancient\challengedoor\challengedoor.lua
objects\apex\apexstoragelocker\apexstoragelocker.object
objects\apex\respawnpod\behavior.lua
objects\apex\securitycamera\securitycamera.lua
objects\apex\turret\turret.lua
objects\avian\avianstoragelocker\avianstoragelocker.object
objects\avian\earthemblem\earthemblem.object
objects\biome\crystalline\crystallinebush1\crystallinebush1.object
objects\biome\crystalline\crystallinebush2\crystallinebush2.object
objects\biome\crystalline\crystallinebush3\crystallinebush3.object
objects\biome\crystalline\crystallinebush4\crystallinebush4.object
[NEW] objects\biome\geode\musicalgeodes\musicalgeode.animation
[NEW] objects\biome\geode\musicalgeodes\musicalgeode.lua
[NEW] objects\biome\geode\musicalgeodes\geodebnatural\geodebnatural.frames
[NEW] objects\biome\geode\musicalgeodes\geodebnatural\geodebnatural.object
[NEW] objects\biome\geode\musicalgeodes\geodebnatural\geodebnatural.png
[NEW] objects\biome\geode\musicalgeodes\geodebnatural\geodebnaturallit.frames
[NEW] objects\biome\geode\musicalgeodes\geodebnatural\geodebnaturallit.png
[NEW] objects\biome\geode\musicalgeodes\geodebnatural\icongeodebnatural.png
[NEW] objects\biome\geode\musicalgeodes\geodebnote\geodebnote.frames
[NEW] objects\biome\geode\musicalgeodes\geodebnote\geodebnote.object
[NEW] objects\biome\geode\musicalgeodes\geodebnote\geodebnote.png
[NEW] objects\biome\geode\musicalgeodes\geodebnote\geodebnotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodebnote\geodebnotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodebnote\icongeodebnote.png
[NEW] objects\biome\geode\musicalgeodes\geodecnatural\geodecnatural.frames
[NEW] objects\biome\geode\musicalgeodes\geodecnatural\geodecnatural.object
[NEW] objects\biome\geode\musicalgeodes\geodecnatural\geodecnatural.png
[NEW] objects\biome\geode\musicalgeodes\geodecnatural\geodecnaturallit.frames
[NEW] objects\biome\geode\musicalgeodes\geodecnatural\geodecnaturallit.png
[NEW] objects\biome\geode\musicalgeodes\geodecnatural\icongeodecnatural.png
[NEW] objects\biome\geode\musicalgeodes\geodecnote\geodecnote.frames
[NEW] objects\biome\geode\musicalgeodes\geodecnote\geodecnote.object
[NEW] objects\biome\geode\musicalgeodes\geodecnote\geodecnote.png
[NEW] objects\biome\geode\musicalgeodes\geodecnote\geodecnotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodecnote\geodecnotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodecnote\icongeodecnote.png
[NEW] objects\biome\geode\musicalgeodes\geodednatural\geodednatural.frames
[NEW] objects\biome\geode\musicalgeodes\geodednatural\geodednatural.object
[NEW] objects\biome\geode\musicalgeodes\geodednatural\geodednatural.png
[NEW] objects\biome\geode\musicalgeodes\geodednatural\geodednaturallit.frames
[NEW] objects\biome\geode\musicalgeodes\geodednatural\geodednaturallit.png
[NEW] objects\biome\geode\musicalgeodes\geodednatural\icongeodednatural.png
[NEW] objects\biome\geode\musicalgeodes\geodednote\geodednote.frames
[NEW] objects\biome\geode\musicalgeodes\geodednote\geodednote.object
[NEW] objects\biome\geode\musicalgeodes\geodednote\geodednote.png
[NEW] objects\biome\geode\musicalgeodes\geodednote\geodednotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodednote\geodednotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodednote\icongeodednote.png
[NEW] objects\biome\geode\musicalgeodes\geodeenote\geodeenote.frames
[NEW] objects\biome\geode\musicalgeodes\geodeenote\geodeenote.object
[NEW] objects\biome\geode\musicalgeodes\geodeenote\geodeenote.png
[NEW] objects\biome\geode\musicalgeodes\geodeenote\geodeenotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodeenote\geodeenotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodeenote\icongeodeenote.png
[NEW] objects\biome\geode\musicalgeodes\geodefnote\geodefnote.frames
[NEW] objects\biome\geode\musicalgeodes\geodefnote\geodefnote.object
[NEW] objects\biome\geode\musicalgeodes\geodefnote\geodefnote.png
[NEW] objects\biome\geode\musicalgeodes\geodefnote\geodefnotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodefnote\geodefnotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodefnote\icongeodefnote.png
[NEW] objects\biome\geode\musicalgeodes\geodegnote\geodegnote.frames
[NEW] objects\biome\geode\musicalgeodes\geodegnote\geodegnote.object
[NEW] objects\biome\geode\musicalgeodes\geodegnote\geodegnote.png
[NEW] objects\biome\geode\musicalgeodes\geodegnote\geodegnotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodegnote\geodegnotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodegnote\icongeodegnote.png
[NEW] objects\biome\geode\musicalgeodes\geodehighanatural\geodehighanatural.frames
[NEW] objects\biome\geode\musicalgeodes\geodehighanatural\geodehighanatural.object
[NEW] objects\biome\geode\musicalgeodes\geodehighanatural\geodehighanatural.png
[NEW] objects\biome\geode\musicalgeodes\geodehighanatural\geodehighanaturallit.frames
[NEW] objects\biome\geode\musicalgeodes\geodehighanatural\geodehighanaturallit.png
[NEW] objects\biome\geode\musicalgeodes\geodehighanatural\icongeodehighanatural.png
[NEW] objects\biome\geode\musicalgeodes\geodehighanote\geodehighanote.frames
[NEW] objects\biome\geode\musicalgeodes\geodehighanote\geodehighanote.object
[NEW] objects\biome\geode\musicalgeodes\geodehighanote\geodehighanote.png
[NEW] objects\biome\geode\musicalgeodes\geodehighanote\geodehighanotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodehighanote\geodehighanotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodehighanote\icongeodehighanote.png
[NEW] objects\biome\geode\musicalgeodes\geodelowanatural\geodelowanatural.frames
[NEW] objects\biome\geode\musicalgeodes\geodelowanatural\geodelowanatural.object
[NEW] objects\biome\geode\musicalgeodes\geodelowanatural\geodelowanatural.png
[NEW] objects\biome\geode\musicalgeodes\geodelowanatural\geodelowanaturallit.frames
[NEW] objects\biome\geode\musicalgeodes\geodelowanatural\geodelowanaturallit.png
[NEW] objects\biome\geode\musicalgeodes\geodelowanatural\icongeodelowanatural.png
[NEW] objects\biome\geode\musicalgeodes\geodelowanote\geodelowanote.frames
[NEW] objects\biome\geode\musicalgeodes\geodelowanote\geodelowanote.object
[NEW] objects\biome\geode\musicalgeodes\geodelowanote\geodelowanote.png
[NEW] objects\biome\geode\musicalgeodes\geodelowanote\geodelowanotelit.frames
[NEW] objects\biome\geode\musicalgeodes\geodelowanote\geodelowanotelit.png
[NEW] objects\biome\geode\musicalgeodes\geodelowanote\icongeodelowanote.png
[NEW] objects\biome\geologicalsample\aegisaltsample\aegisaltsample.frames
[NEW] objects\biome\geologicalsample\aegisaltsample\aegisaltsample.object
[NEW] objects\biome\geologicalsample\aegisaltsample\aegisaltsample.png
[NEW] objects\biome\geologicalsample\aegisaltsample\icon.png
[NEW] objects\biome\geologicalsample\coalsample\coalsample.frames
[NEW] objects\biome\geologicalsample\coalsample\coalsample.object
[NEW] objects\biome\geologicalsample\coalsample\coalsample.png
[NEW] objects\biome\geologicalsample\coalsample\icon.png
[NEW] objects\biome\geologicalsample\coppersample\coppersample.frames
[NEW] objects\biome\geologicalsample\coppersample\coppersample.object
[NEW] objects\biome\geologicalsample\coppersample\coppersample.png
[NEW] objects\biome\geologicalsample\coppersample\icon.png
[NEW] objects\biome\geologicalsample\corefragmentsample\corefragmentsample.frames
[NEW] objects\biome\geologicalsample\corefragmentsample\corefragmentsample.object
[NEW] objects\biome\geologicalsample\corefragmentsample\corefragmentsample.png
[NEW] objects\biome\geologicalsample\corefragmentsample\icon.png
[NEW] objects\biome\geologicalsample\diamondsample\diamondsample.frames
[NEW] objects\biome\geologicalsample\diamondsample\diamondsample.object
[NEW] objects\biome\geologicalsample\diamondsample\diamondsample.png
[NEW] objects\biome\geologicalsample\diamondsample\icon.png
[NEW] objects\biome\geologicalsample\durasteelsample\durasteelsample.frames
[NEW] objects\biome\geologicalsample\durasteelsample\durasteelsample.object
[NEW] objects\biome\geologicalsample\durasteelsample\durasteelsample.png
[NEW] objects\biome\geologicalsample\durasteelsample\icon.png
[NEW] objects\biome\geologicalsample\geodebluesample\geodebluesample.frames
[NEW] objects\biome\geologicalsample\geodebluesample\geodebluesample.object
[NEW] objects\biome\geologicalsample\geodebluesample\geodebluesample.png
[NEW] objects\biome\geologicalsample\geodebluesample\icon.png
[NEW] objects\biome\geologicalsample\geodegreensample\geodegreensample.frames
[NEW] objects\biome\geologicalsample\geodegreensample\geodegreensample.object
[NEW] objects\biome\geologicalsample\geodegreensample\geodegreensample.png
[NEW] objects\biome\geologicalsample\geodegreensample\icon.png
[NEW] objects\biome\geologicalsample\geodeorangesample\geodeorangesample.frames
[NEW] objects\biome\geologicalsample\geodeorangesample\geodeorangesample.object
[NEW] objects\biome\geologicalsample\geodeorangesample\geodeorangesample.png
[NEW] objects\biome\geologicalsample\geodeorangesample\icon.png
[NEW] objects\biome\geologicalsample\geodepurplesample\geodepurplesample.frames
[NEW] objects\biome\geologicalsample\geodepurplesample\geodepurplesample.object
[NEW] objects\biome\geologicalsample\geodepurplesample\geodepurplesample.png
[NEW] objects\biome\geologicalsample\geodepurplesample\icon.png
[NEW] objects\biome\geologicalsample\geoderedsample\geoderedsample.frames
[NEW] objects\biome\geologicalsample\geoderedsample\geoderedsample.object
[NEW] objects\biome\geologicalsample\geoderedsample\geoderedsample.png
[NEW] objects\biome\geologicalsample\geoderedsample\icon.png
[NEW] objects\biome\geologicalsample\geodeyellowsample\geodeyellowsample.frames
[NEW] objects\biome\geologicalsample\geodeyellowsample\geodeyellowsample.object
[NEW] objects\biome\geologicalsample\geodeyellowsample\geodeyellowsample.png
[NEW] objects\biome\geologicalsample\geodeyellowsample\icon.png
[NEW] objects\biome\geologicalsample\goldsample\goldsample.frames
[NEW] objects\biome\geologicalsample\goldsample\goldsample.object
[NEW] objects\biome\geologicalsample\goldsample\goldsample.png
[NEW] objects\biome\geologicalsample\goldsample\icon.png
[NEW] objects\biome\geologicalsample\ironsample\icon.png
[NEW] objects\biome\geologicalsample\ironsample\ironsample.frames
[NEW] objects\biome\geologicalsample\ironsample\ironsample.object
[NEW] objects\biome\geologicalsample\ironsample\ironsample.png
[NEW] objects\biome\geologicalsample\platinumsample\icon.png
[NEW] objects\biome\geologicalsample\platinumsample\platinumsample.frames
[NEW] objects\biome\geologicalsample\platinumsample\platinumsample.object
[NEW] objects\biome\geologicalsample\platinumsample\platinumsample.png
[NEW] objects\biome\geologicalsample\plutoniumsample\icon.png
[NEW] objects\biome\geologicalsample\plutoniumsample\plutoniumsample.frames
[NEW] objects\biome\geologicalsample\plutoniumsample\plutoniumsample.object
[NEW] objects\biome\geologicalsample\plutoniumsample\plutoniumsample.png
[NEW] objects\biome\geologicalsample\prisilitesample\icon.png
[NEW] objects\biome\geologicalsample\prisilitesample\prisilitesample.frames
[NEW] objects\biome\geologicalsample\prisilitesample\prisilitesample.object
[NEW] objects\biome\geologicalsample\prisilitesample\prisilitesample.png
[NEW] objects\biome\geologicalsample\rubiumsample\icon.png
[NEW] objects\biome\geologicalsample\rubiumsample\rubiumsample.frames
[NEW] objects\biome\geologicalsample\rubiumsample\rubiumsample.object
[NEW] objects\biome\geologicalsample\rubiumsample\rubiumsample.png
[NEW] objects\biome\geologicalsample\solariumsample\icon.png
[NEW] objects\biome\geologicalsample\solariumsample\solariumsample.frames
[NEW] objects\biome\geologicalsample\solariumsample\solariumsample.object
[NEW] objects\biome\geologicalsample\solariumsample\solariumsample.png
[NEW] objects\biome\geologicalsample\titaniumsample\icon.png
[NEW] objects\biome\geologicalsample\titaniumsample\titaniumsample.frames
[NEW] objects\biome\geologicalsample\titaniumsample\titaniumsample.object
[NEW] objects\biome\geologicalsample\titaniumsample\titaniumsample.png
[NEW] objects\biome\geologicalsample\tungstensample\icon.png
[NEW] objects\biome\geologicalsample\tungstensample\tungstensample.frames
[NEW] objects\biome\geologicalsample\tungstensample\tungstensample.object
[NEW] objects\biome\geologicalsample\tungstensample\tungstensample.png
[NEW] objects\biome\geologicalsample\uraniumsample\icon.png
[NEW] objects\biome\geologicalsample\uraniumsample\uraniumsample.frames
[NEW] objects\biome\geologicalsample\uraniumsample\uraniumsample.object
[NEW] objects\biome\geologicalsample\uraniumsample\uraniumsample.png
[NEW] objects\biome\geologicalsample\violiumsample\icon.png
[NEW] objects\biome\geologicalsample\violiumsample\violiumsample.frames
[NEW] objects\biome\geologicalsample\violiumsample\violiumsample.object
[NEW] objects\biome\geologicalsample\violiumsample\violiumsample.png
objects\colony\colonydeed\colonydeed.lua
objects\colony\colonydeed\scanning.lua
objects\colony\colonydeed\timer.lua
[NEW] objects\crafting\acceleratoraddon\acceleratoraddon.frames
[NEW] objects\crafting\acceleratoraddon\acceleratoraddon.object
[NEW] objects\crafting\acceleratoraddon\acceleratoraddon.png
[NEW] objects\crafting\acceleratoraddon\acceleratoraddonicon.png
objects\crafting\alloyfurnace\alloyfurnace.object
objects\crafting\apothecary\apothecary.object
objects\crafting\farmtable\farmtable.object
objects\crafting\ironanvil\ironanvil.object
[NEW] objects\crafting\manipulatoraddon\manipulatoraddon.frames
[NEW] objects\crafting\manipulatoraddon\manipulatoraddon.object
[NEW] objects\crafting\manipulatoraddon\manipulatoraddon.png
[NEW] objects\crafting\manipulatoraddon\manipulatoraddonicon.png
objects\crafting\metalworkstation\metalworkstation.object
objects\crafting\pixelcompressor\pixelcompressor.object
objects\crafting\scifianvil\scifianvil.object
objects\crafting\scififurnace\scififurnace.object
[NEW] objects\crafting\separatoraddon\separatoraddon.frames
[NEW] objects\crafting\separatoraddon\separatoraddon.object
[NEW] objects\crafting\separatoraddon\separatoraddon.png
[NEW] objects\crafting\separatoraddon\separatoraddonicon.png
objects\crafting\upgradeablecraftingobjects\upgradeablecraftingobject.lua
objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil.animation
objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil.object
objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil.png
[NEW] objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil3.frames
[NEW] objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil3.png
[NEW] objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil3icon.png
[NEW] objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil3lit.frames
[NEW] objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil3lit.png
objects\crafting\upgradeablecraftingobjects\craftinganvil\default.frames
objects\crafting\upgradeablecraftingobjects\craftingfarm\craftingfarm.object
objects\crafting\upgradeablecraftingobjects\craftingfurniture\craftingfurniture.object
objects\crafting\upgradeablecraftingobjects\craftingfurniture\craftingfurniture2.png
objects\crafting\upgradeablecraftingobjects\craftingfurniture\craftingfurniture2icon.png
objects\crafting\upgradeablecraftingobjects\craftingmedical\craftingmedical.object
objects\crafting\upgradeablecraftingobjects\craftingmedical\craftingmedical2icon.png
objects\crafting\upgradeablecraftingobjects\craftingmedical\craftingmedicalicon.png
objects\crafting\upgradeablecraftingobjects\craftingwheel\craftingwheel.object
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable.animation
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable.object
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable2.png
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable2icon.png
[NEW] objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable3.frames
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable3.png
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable3icon.png
[NEW] objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable3lit.frames
[NEW] objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable3lit.png
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstableicon.png
objects\crafting\wiringstation\wiringstation.object
objects\crafting\woodencraftingtable\woodencraftingtable.object
objects\farmables\flowerred\flowerred.object
objects\farmables\toxictop\toxictopseed.object
objects\farmables\toxictop\wildtoxictopseed.object
objects\farmables\wartweed\wartweedseed.object
objects\farmables\wartweed\wildwartweedseed.object
objects\farmables\wheat\wheatseed.object
objects\farmables\wheat\wildwheatseed.object
objects\floran\floranbench\floranbench.object
objects\floran\floranbonedisplay1\floranbonedisplay1.object
objects\floran\floranstoragelocker\floranstoragelocker.object
objects\generic\arcadegame\arcadegameobject.lua
objects\generic\foodbowl\foodbowl.lua
objects\glitch\anvil\anvil.object
objects\glitch\glitchstoragelocker\glitchstoragelocker.object
objects\holiday\giftmonsterbox\giftmonsterbox.lua
objects\human\bunkerrobotfactory\behavior.lua
objects\human\humanstoragelocker\humanstoragelocker.object
objects\hylotl\hylotlredalert\hylotlredalert.lua
objects\hylotl\hylotlstoragelocker\hylotlstoragelocker.object
[NEW] objects\mission\avianmission\avianartifactaltar\avianartifactaltar.animation
[NEW] objects\mission\avianmission\avianartifactaltar\avianartifactaltar.frames
[NEW] objects\mission\avianmission\avianartifactaltar\avianartifactaltar.lua
[NEW] objects\mission\avianmission\avianartifactaltar\avianartifactaltar.object
[NEW] objects\mission\avianmission\avianartifactaltar\avianartifactaltar.png
objects\mission\lunarbaselaser\lunarbaselaser.lua
objects\mission\proximitywallsensor\proximitywallsensor.lua
objects\mission\templepressureplatform\templepressureplatform.object
objects\mission\templepressureplatform\templepressureplatform.png
objects\noisy\noisy.lua
objects\novakid\novakidstoragelocker\novakidstoragelocker.object
objects\outpost\customsign\customsign.lua
objects\outpost\frogfurnishing\frogfurnishing.lua
objects\outpost\penguinbay\penguinbay.lua
objects\outpost\repairo\repairo.lua
objects\outpost\signstore\signdispenser.lua
objects\outpost\signstore\signstoreobject.lua
[NEW] objects\protectorate\objects\protectoratehallpodium.png
objects\scripts\autofill.lua
objects\spawner\monsterspawner.lua
objects\spawner\shippetspawner.lua
objects\spawner\spawners\spawner.lua
objects\themed\island\hulagirl\hulagirl.lua
objects\themed\saloon\saloondoor\saloondoor.lua
objects\wired\alarm\alarm.lua
objects\wired\door\door.lua
objects\wired\door\trapdoor.lua
objects\wired\drain\drain.lua
objects\wired\forcepad\forcepad.lua
objects\wired\invisiblesound\invisiblesound.lua
objects\wired\ironbeacon\decoyprincess.lua
objects\wired\ironbeacon\ironbeacon.lua
objects\wired\ironbeacon\jellyboss.lua
objects\wired\ironbeacon\robot.lua
objects\wired\landmine\landmine.lua
objects\wired\light\light.lua
objects\wired\lightsensor\lightsensor.lua
objects\wired\lightsensor\unwiredlightsensor.lua
objects\wired\liquidsensor\liquidsensor.lua
objects\wired\logic\countdowntimer.lua
objects\wired\logic\delay.lua
objects\wired\logic\dlatch.lua
objects\wired\logic\logic.lua
objects\wired\logic\timer.lua
objects\wired\momentaryswitch\momentaryswitch.lua
objects\wired\movingplatform\movingplatform.lua
objects\wired\projectiletrap\projectiletrap.lua
objects\wired\proximitysensor\proximitysensor.lua
objects\wired\proximitysensor\proximitysensor.object
objects\wired\shieldgenerator\shieldgenerator.lua
objects\wired\standingturret\standingturret.lua
objects\wired\standingturret\standingturret.object
objects\wired\switch\persistentswitch.lua
objects\wired\switch\switch.lua
objects\wired\switch\switchwithinput.lua
objects\wired\switch\switchwithinputalwayslit.lua
[NEW] plants\trees\forestceiling\stems\geodevine\geodevine.modularstem
[NEW] plants\trees\forestceiling\stems\geodevine\geodevinebase1.png
[NEW] plants\trees\forestceiling\stems\geodevine\geodevinebase2.png
[NEW] plants\trees\forestceiling\stems\geodevine\geodevineend1.png
[NEW] plants\trees\forestceiling\stems\geodevine\geodevineend2.png
[NEW] plants\trees\forestceiling\stems\geodevine\geodevinemid1.png
[NEW] plants\trees\forestceiling\stems\geodevine\geodevinemid2.png
[NEW] plants\trees\geode\foliage\geodefoliage\branch1.png
[NEW] plants\trees\geode\foliage\geodefoliage\branch2.png
[NEW] plants\trees\geode\foliage\geodefoliage\branch3.png
[NEW] plants\trees\geode\foliage\geodefoliage\crown1.png
[NEW] plants\trees\geode\foliage\geodefoliage\crown2.png
[NEW] plants\trees\geode\foliage\geodefoliage\crown3.png
[NEW] plants\trees\geode\foliage\geodefoliage\geodefoliage.modularfoliage
[NEW] plants\trees\geode\foliage\geodefoliage\saplingicon.png
[NEW] plants\trees\geode\stem\base1.png
[NEW] plants\trees\geode\stem\base2.png
[NEW] plants\trees\geode\stem\base3.png
[NEW] plants\trees\geode\stem\crown1.png
[NEW] plants\trees\geode\stem\crown2.png
[NEW] plants\trees\geode\stem\crown3.png
[NEW] plants\trees\geode\stem\geode.modularstem
[NEW] plants\trees\geode\stem\middle1.png
[NEW] plants\trees\geode\stem\middle2.png
[NEW] plants\trees\geode\stem\middle3.png
[NEW] plants\trees\geode\stem\middle4.png
[NEW] plants\trees\geode\stem\saplingicon.png
projectiles\activeitems\boomerang\boomerangprojectile.lua
projectiles\activeitems\boomerang\lunarangprojectile.lua
projectiles\activeitems\boomerang\wormerangprojectile.lua
projectiles\activeitems\chakram\chakramprojectile.lua
projectiles\activeitems\chakram\hoverchakramprojectile.lua
projectiles\activeitems\delaybullet\delaybullet.lua
projectiles\activeitems\fuelaircloud\fuelaircloud.lua
projectiles\activeitems\fuelaircloud\newcloud.png
projectiles\activeitems\guidedrocket\guidedrocket.lua
projectiles\activeitems\translocatordisc\translocatordisc.lua
projectiles\boss\spiderboss\ixolingspawn.lua
projectiles\explosions\globeexplosions\redglobeexplosion\redglobeexplosion.projectile
projectiles\explosions\lightblockexplosion\lightblockexplosion.projectile
projectiles\explosions\vlightblockexplosion\vlightblockexplosion.projectile
projectiles\guns\arrows\chargedicearrow\chargedicearrow.projectile
projectiles\guns\arrows\icebolt\icebolt.projectile
projectiles\guns\arrows\ironarrow\ironarrow.projectile
projectiles\guns\arrows\woodenarrow\woodenarrow.projectile
projectiles\guns\rockets\homingrocket\homingrocket.lua
projectiles\guns\rockets\minirocket\minirocket.lua
projectiles\guns\unsorted\icethrower\icethrower.projectile
projectiles\homingarrow\homingarrow.lua
projectiles\staves\racialstaves\crystal\cardinalschalcedony\chalcedonyspawner.projectile
projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzpulse\quartzpulse.projectile
projectiles\swoosh\spear\frostspearswoosh\frostspearswoosh.projectile
projectiles\throwable\capturepod\capturepod.lua
quests\scripts\main.lua
quests\scripts\generated\clothing.lua
quests\scripts\generated\collect_fine.lua
quests\scripts\generated\collect_gift.lua
quests\scripts\generated\common.lua
quests\scripts\generated\fetch.lua
quests\scripts\generated\gift.lua
quests\scripts\generated\new_stock.lua
quests\scripts\generated\recruit_guard.lua
quests\scripts\generated\secret_note.lua
quests\scripts\generated\themed_build.lua
recipes\anvil1\armor\tier2\apextier2chest.recipe
recipes\anvil1\armor\tier2\apextier2head.recipe
recipes\anvil1\armor\tier2\apextier2pants.recipe
recipes\anvil1\armor\tier2\aviantier2chest.recipe
recipes\anvil1\armor\tier2\aviantier2head.recipe
recipes\anvil1\armor\tier2\aviantier2pants.recipe
recipes\anvil1\armor\tier2\florantier2chest.recipe
recipes\anvil1\armor\tier2\florantier2head.recipe
recipes\anvil1\armor\tier2\florantier2pants.recipe
recipes\anvil1\armor\tier2\glitchtier2chest.recipe
recipes\anvil1\armor\tier2\glitchtier2head.recipe
recipes\anvil1\armor\tier2\glitchtier2pants.recipe
recipes\anvil1\armor\tier2\humantier2chest.recipe
recipes\anvil1\armor\tier2\humantier2head.recipe
recipes\anvil1\armor\tier2\humantier2pants.recipe
recipes\anvil1\armor\tier2\hylotltier2chest.recipe
recipes\anvil1\armor\tier2\hylotltier2head.recipe
recipes\anvil1\armor\tier2\hylotltier2pants.recipe
recipes\anvil1\armor\tier2\novatier2chest.recipe
recipes\anvil1\armor\tier2\novatier2head.recipe
recipes\anvil1\armor\tier2\novatier2pants.recipe
recipes\anvil2\armor\tier3\apextier3chest.recipe
recipes\anvil2\armor\tier3\apextier3head.recipe
recipes\anvil2\armor\tier3\apextier3pants.recipe
recipes\anvil2\armor\tier3\aviantier3chest.recipe
recipes\anvil2\armor\tier3\aviantier3head.recipe
recipes\anvil2\armor\tier3\aviantier3pants.recipe
recipes\anvil2\armor\tier3\florantier3chest.recipe
recipes\anvil2\armor\tier3\florantier3head.recipe
recipes\anvil2\armor\tier3\florantier3pants.recipe
recipes\anvil2\armor\tier3\glitchtier3chest.recipe
recipes\anvil2\armor\tier3\glitchtier3head.recipe
recipes\anvil2\armor\tier3\glitchtier3pants.recipe
recipes\anvil2\armor\tier3\humantier3chest.recipe
recipes\anvil2\armor\tier3\humantier3head.recipe
recipes\anvil2\armor\tier3\humantier3pants.recipe
recipes\anvil2\armor\tier3\hylotltier3chest.recipe
recipes\anvil2\armor\tier3\hylotltier3head.recipe
recipes\anvil2\armor\tier3\hylotltier3pants.recipe
recipes\anvil2\armor\tier3\novatier3chest.recipe
recipes\anvil2\armor\tier3\novatier3head.recipe
recipes\anvil2\armor\tier3\novatier3pants.recipe
recipes\anvil2\armor\tier4\apextier4chest.recipe
recipes\anvil2\armor\tier4\apextier4head.recipe
recipes\anvil2\armor\tier4\apextier4pants.recipe
recipes\anvil2\armor\tier4\aviantier4chest.recipe
recipes\anvil2\armor\tier4\aviantier4head.recipe
recipes\anvil2\armor\tier4\aviantier4pants.recipe
recipes\anvil2\armor\tier4\florantier4chest.recipe
recipes\anvil2\armor\tier4\florantier4head.recipe
recipes\anvil2\armor\tier4\florantier4pants.recipe
recipes\anvil2\armor\tier4\glitchtier4chest.recipe
recipes\anvil2\armor\tier4\glitchtier4head.recipe
recipes\anvil2\armor\tier4\glitchtier4pants.recipe
recipes\anvil2\armor\tier4\humantier4chest.recipe
recipes\anvil2\armor\tier4\humantier4head.recipe
recipes\anvil2\armor\tier4\humantier4pants.recipe
recipes\anvil2\armor\tier4\hylotltier4chest.recipe
recipes\anvil2\armor\tier4\hylotltier4head.recipe
recipes\anvil2\armor\tier4\hylotltier4pants.recipe
recipes\anvil2\armor\tier4\novatier4chest.recipe
recipes\anvil2\armor\tier4\novatier4head.recipe
recipes\anvil2\armor\tier4\novatier4pants.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\applecrumble.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\baconpancakes.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\beakseedbread.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\beakseedjam.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\beakseedtart.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\bonbonbonbons.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\cactusjuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\candiedcorn.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\candyapple.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\carrotbread.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\carrotcake.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\carrotjuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\carrotsoup.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\cheeseburger.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\chocolatecake.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\coffeecake.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\cornpeckers.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\feathercrownjam.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\featherfood.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\flatwhite.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\fluffyruffs.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\gardensalad.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\hamburger.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\kiwijam.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\kiwijuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\mocha.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\mushroombread.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\mushroomquiche.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\mushroomrice.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\omelette.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\pasty.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\pearlpeajam.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\pearlpeapancakes.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\pizza.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\pizzaslice.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\porridge.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\quichelorraine.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\relish.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\ricepudding.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\roastdinner.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\specialrice.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\spikycookies.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\stickyribs.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\stuffedtomato.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\sweetmeat.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\tomatojuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier2\tomatosoup.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\2kbpotage.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\apegrapes.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\apexfritter.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\automatoshake.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\automatostew.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\bananacon.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\bananacreamdonut.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\bananacreampie.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\bananaicecream.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\batteredbanana.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\cactiicecream.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\campfirebanana.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\candyautomato.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\choconut.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\coconuticecream.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\coconutrice.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\desertsalsa.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\fishinabone.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\fruitsalad.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\grapejuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\luckydip.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\pineapplejam.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\pineapplejuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\pineapplepizzaslice.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\snowcone.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\spookydonut.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\spookypie.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\stuffedautomato.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\sweetpunch.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\thornjuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier3\tropicalpunch.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\alienfruitjam.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\bloodypuss.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\brineapple.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\cyanider.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\oceanrisotto.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\oceansalsa.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\oceansurprise.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\oculemonmeringue.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\oculemonstew.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\pussplumpudding.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\pussplumtart.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\reefjuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\reefpodsurprise.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\reefshake.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\ricecake.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\saltsalad.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\seafoodgratin.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\soggysack.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\stuffeddirturchin.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\sushi.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\toxicjamdonut.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\toxicjuice.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\toxictart.recipe
[NEW] recipes\cookingtable1\unlocks\tier4\toxictopjam.recipe
recipes\farmtable1\hunting\bow.recipe
[NEW] recipes\farmtable1\hunting\tungstenbow.recipe
[NEW] recipes\farmtable2\hunting\compoundbow.recipe
recipes\furnace2\bars\durasteelbar.recipe
recipes\furniture2\beds\tier4bed.recipe
recipes\furniture2\decorative\tier4chair.recipe
recipes\furniture2\decorative\tier4table.recipe
recipes\furniture2\doors\tier4door.recipe
recipes\furniture2\lights\tier4light.recipe
[NEW] recipes\inventorstable3\acceleratoraddon.recipe
[NEW] recipes\inventorstable3\manipulatoraddon.recipe
[NEW] recipes\inventorstable3\separatoraddon.recipe
recipes\inventorstable3\wiringstation.recipe
[NEW] recipes\medicaltable2\healing\burnspray.recipe
[NEW] recipes\medicaltable2\healing\nanowrap.recipe
[NEW] recipes\old\biomes\geode\geodebed.recipe
[NEW] recipes\old\biomes\geode\geodebnote.recipe
[NEW] recipes\old\biomes\geode\geodeceilinglight.recipe
[NEW] recipes\old\biomes\geode\geodechair.recipe
[NEW] recipes\old\biomes\geode\geodecnote.recipe
[NEW] recipes\old\biomes\geode\geodednote.recipe
[NEW] recipes\old\biomes\geode\geodedoor.recipe
[NEW] recipes\old\biomes\geode\geodeenote.recipe
[NEW] recipes\old\biomes\geode\geodefnote.recipe
[NEW] recipes\old\biomes\geode\geodehighanote.recipe
[NEW] recipes\old\biomes\geode\geodelowanote.recipe
[NEW] recipes\old\biomes\geode\geodeplantpot.recipe
[NEW] recipes\oldandunused\apex\tier1\apextier1axe.recipe
[NEW] recipes\oldandunused\apex\tier1\apextier1broadsword.recipe
[NEW] recipes\oldandunused\apex\tier1\apextier1dagger.recipe
[NEW] recipes\oldandunused\apex\tier1\apextier1hammer.recipe
[NEW] recipes\oldandunused\apex\tier1\apextier1shortsword.recipe
[NEW] recipes\oldandunused\apex\tier1\apextier1spear.recipe
[NEW] recipes\oldandunused\apex\tier10\tier10axe.recipe
[NEW] recipes\oldandunused\apex\tier10\tier10broadsword.recipe
[NEW] recipes\oldandunused\apex\tier10\tier10dagger.recipe
[NEW] recipes\oldandunused\apex\tier10\tier10hammer.recipe
[NEW] recipes\oldandunused\apex\tier10\tier10shortsword.recipe
[NEW] recipes\oldandunused\apex\tier10\tier10spear.recipe
[NEW] recipes\oldandunused\apex\tier2\apextier2axe.recipe
[NEW] recipes\oldandunused\apex\tier2\apextier2broadsword.recipe
[NEW] recipes\oldandunused\apex\tier2\apextier2dagger.recipe
[NEW] recipes\oldandunused\apex\tier2\apextier2hammer.recipe
[NEW] recipes\oldandunused\apex\tier2\apextier2shortsword.recipe
[NEW] recipes\oldandunused\apex\tier2\apextier2spear.recipe
[NEW] recipes\oldandunused\apex\tier3\apextier3axe.recipe
[NEW] recipes\oldandunused\apex\tier3\apextier3broadsword.recipe
[NEW] recipes\oldandunused\apex\tier3\apextier3dagger.recipe
[NEW] recipes\oldandunused\apex\tier3\apextier3hammer.recipe
[NEW] recipes\oldandunused\apex\tier3\apextier3shortsword.recipe
[NEW] recipes\oldandunused\apex\tier3\apextier3spear.recipe
[NEW] recipes\oldandunused\apex\tier4\apextier4axe.recipe
[NEW] recipes\oldandunused\apex\tier4\apextier4broadsword.recipe
[NEW] recipes\oldandunused\apex\tier4\apextier4dagger.recipe
[NEW] recipes\oldandunused\apex\tier4\apextier4hammer.recipe
[NEW] recipes\oldandunused\apex\tier4\apextier4shortsword.recipe
[NEW] recipes\oldandunused\apex\tier4\apextier4spear.recipe
[NEW] recipes\oldandunused\apex\tier5\tier5axe.recipe
[NEW] recipes\oldandunused\apex\tier5\tier5broadsword.recipe
[NEW] recipes\oldandunused\apex\tier5\tier5dagger.recipe
[NEW] recipes\oldandunused\apex\tier5\tier5hammer.recipe
[NEW] recipes\oldandunused\apex\tier5\tier5shortsword.recipe
[NEW] recipes\oldandunused\apex\tier5\tier5spear.recipe
[NEW] recipes\oldandunused\apex\tier6\tier6axe.recipe
[NEW] recipes\oldandunused\apex\tier6\tier6broadsword.recipe
[NEW] recipes\oldandunused\apex\tier6\tier6dagger.recipe
[NEW] recipes\oldandunused\apex\tier6\tier6hammer.recipe
[NEW] recipes\oldandunused\apex\tier6\tier6shortsword.recipe
[NEW] recipes\oldandunused\apex\tier6\tier6spear.recipe
[NEW] recipes\oldandunused\apex\tier7\tier7axe.recipe
[NEW] recipes\oldandunused\apex\tier7\tier7broadsword.recipe
[NEW] recipes\oldandunused\apex\tier7\tier7dagger.recipe
[NEW] recipes\oldandunused\apex\tier7\tier7hammer.recipe
[NEW] recipes\oldandunused\apex\tier7\tier7shortsword.recipe
[NEW] recipes\oldandunused\apex\tier7\tier7spear.recipe
[NEW] recipes\oldandunused\apex\tier8\tier8axe.recipe
[NEW] recipes\oldandunused\apex\tier8\tier8broadsword.recipe
[NEW] recipes\oldandunused\apex\tier8\tier8dagger.recipe
[NEW] recipes\oldandunused\apex\tier8\tier8hammer.recipe
[NEW] recipes\oldandunused\apex\tier8\tier8shortsword.recipe
[NEW] recipes\oldandunused\apex\tier8\tier8spear.recipe
[NEW] recipes\oldandunused\apex\tier9\tier9axe.recipe
[NEW] recipes\oldandunused\apex\tier9\tier9broadsword.recipe
[NEW] recipes\oldandunused\apex\tier9\tier9dagger.recipe
[NEW] recipes\oldandunused\apex\tier9\tier9hammer.recipe
[NEW] recipes\oldandunused\apex\tier9\tier9shortsword.recipe
[NEW] recipes\oldandunused\apex\tier9\tier9spear.recipe
[NEW] recipes\oldandunused\avian\tier1\aviantier1axe.recipe
[NEW] recipes\oldandunused\avian\tier1\aviantier1broadsword.recipe
[NEW] recipes\oldandunused\avian\tier1\aviantier1dagger.recipe
[NEW] recipes\oldandunused\avian\tier1\aviantier1hammer.recipe
[NEW] recipes\oldandunused\avian\tier1\aviantier1shortsword.recipe
[NEW] recipes\oldandunused\avian\tier1\aviantier1spear.recipe
[NEW] recipes\oldandunused\avian\tier10\tier10axe.recipe
[NEW] recipes\oldandunused\avian\tier10\tier10broadsword.recipe
[NEW] recipes\oldandunused\avian\tier10\tier10dagger.recipe
[NEW] recipes\oldandunused\avian\tier10\tier10hammer.recipe
[NEW] recipes\oldandunused\avian\tier10\tier10shortsword.recipe
[NEW] recipes\oldandunused\avian\tier10\tier10spear.recipe
[NEW] recipes\oldandunused\avian\tier2\aviantier2axe.recipe
[NEW] recipes\oldandunused\avian\tier2\aviantier2broadsword.recipe
[NEW] recipes\oldandunused\avian\tier2\aviantier2dagger.recipe
[NEW] recipes\oldandunused\avian\tier2\aviantier2hammer.recipe
[NEW] recipes\oldandunused\avian\tier2\aviantier2shortsword.recipe
[NEW] recipes\oldandunused\avian\tier2\aviantier2spear.recipe
[NEW] recipes\oldandunused\avian\tier3\aviantier3axe.recipe
[NEW] recipes\oldandunused\avian\tier3\aviantier3broadsword.recipe
[NEW] recipes\oldandunused\avian\tier3\aviantier3dagger.recipe
[NEW] recipes\oldandunused\avian\tier3\aviantier3hammer.recipe
[NEW] recipes\oldandunused\avian\tier3\aviantier3shortsword.recipe
[NEW] recipes\oldandunused\avian\tier3\aviantier3spear.recipe
[NEW] recipes\oldandunused\avian\tier4\aviantier4axe.recipe
[NEW] recipes\oldandunused\avian\tier4\aviantier4broadsword.recipe
[NEW] recipes\oldandunused\avian\tier4\aviantier4dagger.recipe
[NEW] recipes\oldandunused\avian\tier4\aviantier4hammer.recipe
[NEW] recipes\oldandunused\avian\tier4\aviantier4shortsword.recipe
[NEW] recipes\oldandunused\avian\tier4\aviantier4spear.recipe
[NEW] recipes\oldandunused\avian\tier5\tier5axe.recipe
[NEW] recipes\oldandunused\avian\tier5\tier5broadsword.recipe
[NEW] recipes\oldandunused\avian\tier5\tier5dagger.recipe
[NEW] recipes\oldandunused\avian\tier5\tier5hammer.recipe
[NEW] recipes\oldandunused\avian\tier5\tier5shortsword.recipe
[NEW] recipes\oldandunused\avian\tier5\tier5spear.recipe
[NEW] recipes\oldandunused\avian\tier6\tier6axe.recipe
[NEW] recipes\oldandunused\avian\tier6\tier6broadsword.recipe
[NEW] recipes\oldandunused\avian\tier6\tier6dagger.recipe
[NEW] recipes\oldandunused\avian\tier6\tier6hammer.recipe
[NEW] recipes\oldandunused\avian\tier6\tier6shortsword.recipe
[NEW] recipes\oldandunused\avian\tier6\tier6spear.recipe
[NEW] recipes\oldandunused\avian\tier7\tier7axe.recipe
[NEW] recipes\oldandunused\avian\tier7\tier7broadsword.recipe
[NEW] recipes\oldandunused\avian\tier7\tier7dagger.recipe
[NEW] recipes\oldandunused\avian\tier7\tier7hammer.recipe
[NEW] recipes\oldandunused\avian\tier7\tier7shortsword.recipe
[NEW] recipes\oldandunused\avian\tier7\tier7spear.recipe
[NEW] recipes\oldandunused\avian\tier8\tier8axe.recipe
[NEW] recipes\oldandunused\avian\tier8\tier8broadsword.recipe
[NEW] recipes\oldandunused\avian\tier8\tier8dagger.recipe
[NEW] recipes\oldandunused\avian\tier8\tier8hammer.recipe
[NEW] recipes\oldandunused\avian\tier8\tier8shortsword.recipe
[NEW] recipes\oldandunused\avian\tier8\tier8spear.recipe
[NEW] recipes\oldandunused\avian\tier9\tier9axe.recipe
[NEW] recipes\oldandunused\avian\tier9\tier9broadsword.recipe
[NEW] recipes\oldandunused\avian\tier9\tier9dagger.recipe
[NEW] recipes\oldandunused\avian\tier9\tier9hammer.recipe
[NEW] recipes\oldandunused\avian\tier9\tier9shortsword.recipe
[NEW] recipes\oldandunused\avian\tier9\tier9spear.recipe
[NEW] recipes\oldandunused\floran\tier1\florantier1axe.recipe
[NEW] recipes\oldandunused\floran\tier1\florantier1broadsword.recipe
[NEW] recipes\oldandunused\floran\tier1\florantier1dagger.recipe
[NEW] recipes\oldandunused\floran\tier1\florantier1hammer.recipe
[NEW] recipes\oldandunused\floran\tier1\florantier1shortsword.recipe
[NEW] recipes\oldandunused\floran\tier1\florantier1spear.recipe
[NEW] recipes\oldandunused\floran\tier10\tier10axe.recipe
[NEW] recipes\oldandunused\floran\tier10\tier10broadsword.recipe
[NEW] recipes\oldandunused\floran\tier10\tier10dagger.recipe
[NEW] recipes\oldandunused\floran\tier10\tier10hammer.recipe
[NEW] recipes\oldandunused\floran\tier10\tier10shortsword.recipe
[NEW] recipes\oldandunused\floran\tier10\tier10spear.recipe
[NEW] recipes\oldandunused\floran\tier2\florantier2axe.recipe
[NEW] recipes\oldandunused\floran\tier2\florantier2broadsword.recipe
[NEW] recipes\oldandunused\floran\tier2\florantier2dagger.recipe
[NEW] recipes\oldandunused\floran\tier2\florantier2hammer.recipe
[NEW] recipes\oldandunused\floran\tier2\florantier2shortsword.recipe
[NEW] recipes\oldandunused\floran\tier2\florantier2spear.recipe
[NEW] recipes\oldandunused\floran\tier3\florantier3axe.recipe
[NEW] recipes\oldandunused\floran\tier3\florantier3broadsword.recipe
[NEW] recipes\oldandunused\floran\tier3\florantier3dagger.recipe
[NEW] recipes\oldandunused\floran\tier3\florantier3hammer.recipe
[NEW] recipes\oldandunused\floran\tier3\florantier3shortsword.recipe
[NEW] recipes\oldandunused\floran\tier3\florantier3spear.recipe
[NEW] recipes\oldandunused\floran\tier4\florantier4axe.recipe
[NEW] recipes\oldandunused\floran\tier4\florantier4broadsword.recipe
[NEW] recipes\oldandunused\floran\tier4\florantier4dagger.recipe
[NEW] recipes\oldandunused\floran\tier4\florantier4hammer.recipe
[NEW] recipes\oldandunused\floran\tier4\florantier4shortsword.recipe
[NEW] recipes\oldandunused\floran\tier4\florantier4spear.recipe
[NEW] recipes\oldandunused\floran\tier5\tier5axe.recipe
[NEW] recipes\oldandunused\floran\tier5\tier5broadsword.recipe
[NEW] recipes\oldandunused\floran\tier5\tier5dagger.recipe
[NEW] recipes\oldandunused\floran\tier5\tier5hammer.recipe
[NEW] recipes\oldandunused\floran\tier5\tier5shortsword.recipe
[NEW] recipes\oldandunused\floran\tier5\tier5spear.recipe
[NEW] recipes\oldandunused\floran\tier6\tier6axe.recipe
[NEW] recipes\oldandunused\floran\tier6\tier6broadsword.recipe
[NEW] recipes\oldandunused\floran\tier6\tier6dagger.recipe
[NEW] recipes\oldandunused\floran\tier6\tier6hammer.recipe
[NEW] recipes\oldandunused\floran\tier6\tier6shortsword.recipe
[NEW] recipes\oldandunused\floran\tier6\tier6spear.recipe
[NEW] recipes\oldandunused\floran\tier7\tier7axe.recipe
[NEW] recipes\oldandunused\floran\tier7\tier7broadsword.recipe
[NEW] recipes\oldandunused\floran\tier7\tier7dagger.recipe
[NEW] recipes\oldandunused\floran\tier7\tier7hammer.recipe
[NEW] recipes\oldandunused\floran\tier7\tier7shortsword.recipe
[NEW] recipes\oldandunused\floran\tier7\tier7spear.recipe
[NEW] recipes\oldandunused\floran\tier8\tier8axe.recipe
[NEW] recipes\oldandunused\floran\tier8\tier8broadsword.recipe
[NEW] recipes\oldandunused\floran\tier8\tier8dagger.recipe
[NEW] recipes\oldandunused\floran\tier8\tier8hammer.recipe
[NEW] recipes\oldandunused\floran\tier8\tier8shortsword.recipe
[NEW] recipes\oldandunused\floran\tier8\tier8spear.recipe
[NEW] recipes\oldandunused\floran\tier9\tier9axe.recipe
[NEW] recipes\oldandunused\floran\tier9\tier9broadsword.recipe
[NEW] recipes\oldandunused\floran\tier9\tier9dagger.recipe
[NEW] recipes\oldandunused\floran\tier9\tier9hammer.recipe
[NEW] recipes\oldandunused\floran\tier9\tier9shortsword.recipe
[NEW] recipes\oldandunused\floran\tier9\tier9spear.recipe
[NEW] recipes\oldandunused\glitch\tier1\glitchtier1axe.recipe
[NEW] recipes\oldandunused\glitch\tier1\glitchtier1broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier1\glitchtier1dagger.recipe
[NEW] recipes\oldandunused\glitch\tier1\glitchtier1hammer.recipe
[NEW] recipes\oldandunused\glitch\tier1\glitchtier1shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier1\glitchtier1spear.recipe
[NEW] recipes\oldandunused\glitch\tier10\tier10axe.recipe
[NEW] recipes\oldandunused\glitch\tier10\tier10broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier10\tier10dagger.recipe
[NEW] recipes\oldandunused\glitch\tier10\tier10hammer.recipe
[NEW] recipes\oldandunused\glitch\tier10\tier10shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier10\tier10spear.recipe
[NEW] recipes\oldandunused\glitch\tier2\glitchtier2axe.recipe
[NEW] recipes\oldandunused\glitch\tier2\glitchtier2broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier2\glitchtier2dagger.recipe
[NEW] recipes\oldandunused\glitch\tier2\glitchtier2hammer.recipe
[NEW] recipes\oldandunused\glitch\tier2\glitchtier2shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier2\glitchtier2spear.recipe
[NEW] recipes\oldandunused\glitch\tier3\glitchtier3axe.recipe
[NEW] recipes\oldandunused\glitch\tier3\glitchtier3broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier3\glitchtier3dagger.recipe
[NEW] recipes\oldandunused\glitch\tier3\glitchtier3hammer.recipe
[NEW] recipes\oldandunused\glitch\tier3\glitchtier3shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier3\glitchtier3spear.recipe
[NEW] recipes\oldandunused\glitch\tier4\glitchtier4axe.recipe
[NEW] recipes\oldandunused\glitch\tier4\glitchtier4broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier4\glitchtier4dagger.recipe
[NEW] recipes\oldandunused\glitch\tier4\glitchtier4hammer.recipe
[NEW] recipes\oldandunused\glitch\tier4\glitchtier4shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier4\glitchtier4spear.recipe
[NEW] recipes\oldandunused\glitch\tier5\tier5axe.recipe
[NEW] recipes\oldandunused\glitch\tier5\tier5broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier5\tier5dagger.recipe
[NEW] recipes\oldandunused\glitch\tier5\tier5hammer.recipe
[NEW] recipes\oldandunused\glitch\tier5\tier5shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier5\tier5spear.recipe
[NEW] recipes\oldandunused\glitch\tier6\tier6axe.recipe
[NEW] recipes\oldandunused\glitch\tier6\tier6broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier6\tier6dagger.recipe
[NEW] recipes\oldandunused\glitch\tier6\tier6hammer.recipe
[NEW] recipes\oldandunused\glitch\tier6\tier6shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier6\tier6spear.recipe
[NEW] recipes\oldandunused\glitch\tier7\tier7axe.recipe
[NEW] recipes\oldandunused\glitch\tier7\tier7broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier7\tier7dagger.recipe
[NEW] recipes\oldandunused\glitch\tier7\tier7hammer.recipe
[NEW] recipes\oldandunused\glitch\tier7\tier7shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier7\tier7spear.recipe
[NEW] recipes\oldandunused\glitch\tier8\tier8axe.recipe
[NEW] recipes\oldandunused\glitch\tier8\tier8broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier8\tier8dagger.recipe
[NEW] recipes\oldandunused\glitch\tier8\tier8hammer.recipe
[NEW] recipes\oldandunused\glitch\tier8\tier8shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier8\tier8spear.recipe
[NEW] recipes\oldandunused\glitch\tier9\tier9axe.recipe
[NEW] recipes\oldandunused\glitch\tier9\tier9broadsword.recipe
[NEW] recipes\oldandunused\glitch\tier9\tier9dagger.recipe
[NEW] recipes\oldandunused\glitch\tier9\tier9hammer.recipe
[NEW] recipes\oldandunused\glitch\tier9\tier9shortsword.recipe
[NEW] recipes\oldandunused\glitch\tier9\tier9spear.recipe
[NEW] recipes\oldandunused\human\tier1\humantier1axe.recipe
[NEW] recipes\oldandunused\human\tier1\humantier1broadsword.recipe
[NEW] recipes\oldandunused\human\tier1\humantier1dagger.recipe
[NEW] recipes\oldandunused\human\tier1\humantier1hammer.recipe
[NEW] recipes\oldandunused\human\tier1\humantier1shortsword.recipe
[NEW] recipes\oldandunused\human\tier1\humantier1spear.recipe
[NEW] recipes\oldandunused\human\tier10\tier10axe.recipe
[NEW] recipes\oldandunused\human\tier10\tier10broadsword.recipe
[NEW] recipes\oldandunused\human\tier10\tier10dagger.recipe
[NEW] recipes\oldandunused\human\tier10\tier10hammer.recipe
[NEW] recipes\oldandunused\human\tier10\tier10shortsword.recipe
[NEW] recipes\oldandunused\human\tier10\tier10spear.recipe
[NEW] recipes\oldandunused\human\tier2\humantier2axe.recipe
[NEW] recipes\oldandunused\human\tier2\humantier2broadsword.recipe
[NEW] recipes\oldandunused\human\tier2\humantier2dagger.recipe
[NEW] recipes\oldandunused\human\tier2\humantier2hammer.recipe
[NEW] recipes\oldandunused\human\tier2\humantier2shortsword.recipe
[NEW] recipes\oldandunused\human\tier2\humantier2spear.recipe
[NEW] recipes\oldandunused\human\tier3\humantier3axe.recipe
[NEW] recipes\oldandunused\human\tier3\humantier3broadsword.recipe
[NEW] recipes\oldandunused\human\tier3\humantier3dagger.recipe
[NEW] recipes\oldandunused\human\tier3\humantier3hammer.recipe
[NEW] recipes\oldandunused\human\tier3\humantier3shortsword.recipe
[NEW] recipes\oldandunused\human\tier3\humantier3spear.recipe
[NEW] recipes\oldandunused\human\tier4\humantier4axe.recipe
[NEW] recipes\oldandunused\human\tier4\humantier4broadsword.recipe
[NEW] recipes\oldandunused\human\tier4\humantier4dagger.recipe
[NEW] recipes\oldandunused\human\tier4\humantier4hammer.recipe
[NEW] recipes\oldandunused\human\tier4\humantier4shortsword.recipe
[NEW] recipes\oldandunused\human\tier4\humantier4spear.recipe
[NEW] recipes\oldandunused\human\tier5\tier5axe.recipe
[NEW] recipes\oldandunused\human\tier5\tier5broadsword.recipe
[NEW] recipes\oldandunused\human\tier5\tier5dagger.recipe
[NEW] recipes\oldandunused\human\tier5\tier5hammer.recipe
[NEW] recipes\oldandunused\human\tier5\tier5shortsword.recipe
[NEW] recipes\oldandunused\human\tier5\tier5spear.recipe
[NEW] recipes\oldandunused\human\tier6\tier6axe.recipe
[NEW] recipes\oldandunused\human\tier6\tier6broadsword.recipe
[NEW] recipes\oldandunused\human\tier6\tier6dagger.recipe
[NEW] recipes\oldandunused\human\tier6\tier6hammer.recipe
[NEW] recipes\oldandunused\human\tier6\tier6shortsword.recipe
[NEW] recipes\oldandunused\human\tier6\tier6spear.recipe
[NEW] recipes\oldandunused\human\tier7\tier7axe.recipe
[NEW] recipes\oldandunused\human\tier7\tier7broadsword.recipe
[NEW] recipes\oldandunused\human\tier7\tier7dagger.recipe
[NEW] recipes\oldandunused\human\tier7\tier7hammer.recipe
[NEW] recipes\oldandunused\human\tier7\tier7shortsword.recipe
[NEW] recipes\oldandunused\human\tier7\tier7spear.recipe
[NEW] recipes\oldandunused\human\tier8\tier8axe.recipe
[NEW] recipes\oldandunused\human\tier8\tier8broadsword.recipe
[NEW] recipes\oldandunused\human\tier8\tier8dagger.recipe
[NEW] recipes\oldandunused\human\tier8\tier8hammer.recipe
[NEW] recipes\oldandunused\human\tier8\tier8shortsword.recipe
[NEW] recipes\oldandunused\human\tier8\tier8spear.recipe
[NEW] recipes\oldandunused\human\tier9\tier9axe.recipe
[NEW] recipes\oldandunused\human\tier9\tier9broadsword.recipe
[NEW] recipes\oldandunused\human\tier9\tier9dagger.recipe
[NEW] recipes\oldandunused\human\tier9\tier9hammer.recipe
[NEW] recipes\oldandunused\human\tier9\tier9shortsword.recipe
[NEW] recipes\oldandunused\human\tier9\tier9spear.recipe
[NEW] recipes\oldandunused\hylotl\tier1\hylotltier1axe.recipe
[NEW] recipes\oldandunused\hylotl\tier1\hylotltier1broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier1\hylotltier1dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier1\hylotltier1hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier1\hylotltier1shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier1\hylotltier1spear.recipe
[NEW] recipes\oldandunused\hylotl\tier10\tier10axe.recipe
[NEW] recipes\oldandunused\hylotl\tier10\tier10broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier10\tier10dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier10\tier10hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier10\tier10shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier10\tier10spear.recipe
[NEW] recipes\oldandunused\hylotl\tier2\hylotltier2axe.recipe
[NEW] recipes\oldandunused\hylotl\tier2\hylotltier2broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier2\hylotltier2dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier2\hylotltier2hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier2\hylotltier2shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier2\hylotltier2spear.recipe
[NEW] recipes\oldandunused\hylotl\tier3\hylotltier3axe.recipe
[NEW] recipes\oldandunused\hylotl\tier3\hylotltier3broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier3\hylotltier3dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier3\hylotltier3hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier3\hylotltier3shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier3\hylotltier3spear.recipe
[NEW] recipes\oldandunused\hylotl\tier4\hylotltier4axe.recipe
[NEW] recipes\oldandunused\hylotl\tier4\hylotltier4broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier4\hylotltier4dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier4\hylotltier4hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier4\hylotltier4shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier4\hylotltier4spear.recipe
[NEW] recipes\oldandunused\hylotl\tier5\tier5axe.recipe
[NEW] recipes\oldandunused\hylotl\tier5\tier5broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier5\tier5dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier5\tier5hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier5\tier5shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier5\tier5spear.recipe
[NEW] recipes\oldandunused\hylotl\tier6\tier6axe.recipe
[NEW] recipes\oldandunused\hylotl\tier6\tier6broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier6\tier6dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier6\tier6hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier6\tier6shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier6\tier6spear.recipe
[NEW] recipes\oldandunused\hylotl\tier7\tier7axe.recipe
[NEW] recipes\oldandunused\hylotl\tier7\tier7broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier7\tier7dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier7\tier7hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier7\tier7shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier7\tier7spear.recipe
[NEW] recipes\oldandunused\hylotl\tier8\tier8axe.recipe
[NEW] recipes\oldandunused\hylotl\tier8\tier8broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier8\tier8dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier8\tier8hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier8\tier8shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier8\tier8spear.recipe
[NEW] recipes\oldandunused\hylotl\tier9\tier9axe.recipe
[NEW] recipes\oldandunused\hylotl\tier9\tier9broadsword.recipe
[NEW] recipes\oldandunused\hylotl\tier9\tier9dagger.recipe
[NEW] recipes\oldandunused\hylotl\tier9\tier9hammer.recipe
[NEW] recipes\oldandunused\hylotl\tier9\tier9shortsword.recipe
[NEW] recipes\oldandunused\hylotl\tier9\tier9spear.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier10revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier1revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier2revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier3revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier4revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier5revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier6revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier7revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier8revolver.recipe
[NEW] recipes\oldandunused\novakid\revolver\novatier9revolver.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier10rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier1rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier2rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier3rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier4rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier5rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier6rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier7rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier8rifle.recipe
[NEW] recipes\oldandunused\novakid\rifle\novatier9rifle.recipe
[NEW] recipes\refinery\durasteelore.recipe
recipes\refinery\silverbar.recipe
recipes\refinery\silverore.recipe
recipes\refinery\titaniumore.recipe
[NEW] recipes\refinery\tungstenore.recipe
[NEW] recipes\wiringstation\logic\and.recipe
[NEW] recipes\wiringstation\logic\countdowntimer.recipe
[NEW] recipes\wiringstation\logic\delay.recipe
[NEW] recipes\wiringstation\logic\dlatch.recipe
[NEW] recipes\wiringstation\logic\not.recipe
[NEW] recipes\wiringstation\logic\or.recipe
[NEW] recipes\wiringstation\logic\timer.recipe
[NEW] recipes\wiringstation\logic\xor.recipe
[NEW] recipes\wiringstation\mechanics\alarm.recipe
[NEW] recipes\wiringstation\mechanics\bulb.recipe
[NEW] recipes\wiringstation\mechanics\drain.recipe
[NEW] recipes\wiringstation\mechanics\mechanicalelevatorlong.recipe
[NEW] recipes\wiringstation\mechanics\mechanicalelevatorshort.recipe
[NEW] recipes\wiringstation\mechanics\standingturret.recipe
[NEW] recipes\wiringstation\mechanics\steelelevatorlong.recipe
[NEW] recipes\wiringstation\mechanics\steelelevatorshort.recipe
[NEW] recipes\wiringstation\mechanics\woodenelevatorlong.recipe
[NEW] recipes\wiringstation\mechanics\woodenelevatorshort.recipe
[NEW] recipes\wiringstation\sensors\lightsensor.recipe
[NEW] recipes\wiringstation\sensors\liquidsensor.recipe
[NEW] recipes\wiringstation\sensors\proximitysensor.recipe
[NEW] recipes\wiringstation\sensors\scanner.recipe
[NEW] recipes\wiringstation\switches\bigredbutton.recipe
[NEW] recipes\wiringstation\switches\persistentswitch.recipe
[NEW] recipes\wiringstation\switches\smallfloorbutton.recipe
[NEW] recipes\wiringstation\switches\smallwallbutton.recipe
[NEW] recipes\wiringstation\switches\smallwallswitch.recipe
[NEW] recipes\wiringstation\switches\tinywallbutton.recipe
[NEW] recipes\wiringstation\switches\tinywallswitch.recipe
scripts\behavior.lua
scripts\chattyobject.lua
scripts\npctoyobject.lua
scripts\pathing.lua
scripts\sensors.lua
scripts\spawnpoint.lua
scripts\statemachine.lua
scripts\statusprojectileobject.lua
scripts\tenant.lua
scripts\util.lua
scripts\actions\crawling.lua
scripts\actions\dialog.lua
scripts\actions\entities.lua
scripts\actions\merchant.lua
scripts\actions\movement.lua
scripts\actions\quests.lua
scripts\actions\reaction.lua
scripts\actions\boss\kluexboss.lua
scripts\projectiles\chainbullet.lua
scripts\quest\manager.lua
scripts\quest\messaging.lua
scripts\quest\participant.lua
scripts\quest\player.lua
scripts\quest\manager\plugin.lua
scripts\quest\manager\spawn_assassins.lua
scripts\quest\manager\spawn_entities.lua
scripts\questgen\generator.lua
scripts\questgen\planner.lua
scripts\questgen\relations.lua
spawntypes\critter.spawntypes
species\apex.species
species\avian.species
species\floran.species
species\glitch.species
species\human.species
species\hylotl.species
species\novakid.species
stagehands\coordinator.lua
stagehands\mailbox.lua
stagehands\questmanager.lua
stagehands\coordinator\npccombat.lua
stats\effects\bandage\bandage.lua
stats\effects\bandage\bandage2.statuseffect
stats\effects\bandage\bandage3.statuseffect
stats\effects\beamout\beamout.lua
stats\effects\color\color.lua
stats\effects\deathbomb\deathbomb.lua
[NEW] stats\effects\electricblock\electricblock.lua
[NEW] stats\effects\electricblock\electricblock.statuseffect
stats\effects\electrified\electrified.lua
stats\effects\energyregen\energyregen.lua
[NEW] stats\effects\fireblock\burnspray.statuseffect
[NEW] stats\effects\fireblock\fireblock.lua
[NEW] stats\effects\fireblock\fireblock.statuseffect
stats\effects\food\foodheal\foodheal.lua
stats\effects\frostslow\frostslow.statuseffect
[NEW] stats\effects\iceblock\iceblock.lua
[NEW] stats\effects\iceblock\iceblock.statuseffect
stats\effects\levitation\levitation.lua
stats\effects\lowgrav\lowgrav.lua
stats\effects\maxenergyboost\maxenergyboost.lua
stats\effects\maxhealthboost\maxhealthboost.lua
stats\effects\maxprotection\protection.lua
stats\effects\npcreactions\particlereaction.lua
[NEW] stats\effects\poisonblock\antidote.statuseffect
[NEW] stats\effects\poisonblock\poisonblock.lua
[NEW] stats\effects\poisonblock\poisonblock.statuseffect
stats\effects\rage\rage.lua
stats\effects\regeneration\regeneration.lua
stats\effects\shieldeffect\shieldeffect.lua
stats\effects\shieldregen\shieldregen.lua
stats\effects\swimming\swimming.lua
stats\effects\thorns\thorns.lua
stats\effects\vulnerability\vulnerability.lua
stats\effects\windswept\windswept.lua
tech\blink\blink.lua
tech\booster\booster.lua
tech\bounce\bounce.lua
tech\dash\dash.lua
tech\flyingjump\flyingjump.lua
tech\jetpack\jetpack.lua
tech\morphball\balldash.lua
tech\morphball\morphball.lua
tech\multijump\multijump.lua
tech\skyrail\skyrail.lua
tech\superjump\superjump.lua
tiles\materials\geodeblock.material
tiles\materials\geodeblock.png
tiles\materials\geodestone.material
tiles\materials\geodestone.png
[NEW] tiles\mods\durasteel.matmod
[NEW] tiles\mods\durasteel.png
tiles\mods\tungsten.matmod
tilesets\packed\materials.json
tilesets\packed\objects-by-category\crafting.json
tilesets\packed\objects-by-category\decorative.json
tilesets\packed\objects-by-category\door.json
tilesets\packed\objects-by-category\farmable.json
tilesets\packed\objects-by-category\furniture.json
tilesets\packed\objects-by-category\light.json
tilesets\packed\objects-by-category\other.json
tilesets\packed\objects-by-category\storage.json
tilesets\packed\objects-by-category\teleporter.json
tilesets\packed\objects-by-race\apex.json
tilesets\packed\objects-by-race\avian.json
tilesets\packed\objects-by-race\floran.json
tilesets\packed\objects-by-race\generic.json
tilesets\packed\objects-by-race\glitch.json
tilesets\packed\objects-by-race\human.json
tilesets\packed\objects-by-race\hylotl.json
tilesets\packed\objects-by-race\novakid.json
tilesets\packed\objects-by-type\container.json
tilesets\packed\objects-by-type\farmable.json
tilesets\packed\objects-by-type\loungeable.json
treasure\biome.treasurepools
treasure\common.treasurepools
treasure\default.treasurechests
treasure\monster.treasurepools
treasure\smashable.treasurepools
vehicles\boat\boat.lua
vehicles\hoverbike\hoverbike.lua
vehicles\mech\mech.lua
DIFFS
-----
dungeon_worlds.config
77c77
< "dungeonSurfaceHeight" : 1025,
---
> "dungeonSurfaceHeight" : 960,
player.config
51a52
> { "item" : "tungstenbow" },
61c62
< // Furnace
---
> // Furnace 1
67,74c68
< { "item" : "titaniumbar" },
< { "item" : "durasteelbar" },
< { "item" : "refinedaegisalt" },
< { "item" : "refinedrubium" },
< { "item" : "refinedviolium" },
< { "item" : "feroziumcompound" },
< { "item" : "ceruliumcompound" },
< { "item" : "imperviumcompound" },
---
>
235c229
< //{ "item" : "examplefarming2item" },
---
> { "item" : "compoundbow" },
251a246,253
> { "item" : "nanowrap" },
> { "item" : "burnspray" },
>
> // Pixel Compressor
> { "item" : "voxel1k" },
> { "item" : "voxel2k" },
> { "item" : "voxel5k" },
> { "item" : "voxel10k" },
255,256d256
< { "item" : "and" },
< { "item" : "bigredbutton" },
258,260d257
< { "item" : "countdowntimer" },
< { "item" : "delay" },
< { "item" : "dlatch" },
262c259,260
< { "item" : "laserdiode" },
---
> { "item" : "standingturret" },
>
265,267d262
< { "item" : "not" },
< { "item" : "or" },
< { "item" : "persistentswitch" },
269a265,267
>
> { "item" : "bigredbutton" },
> { "item" : "persistentswitch" },
273,274d270
< { "item" : "standingturret" },
< { "item" : "timer" },
276a273,280
>
> { "item" : "and" },
> { "item" : "countdowntimer" },
> { "item" : "delay" },
> { "item" : "dlatch" },
> { "item" : "not" },
> { "item" : "or" },
> { "item" : "timer" },
280,283d283
<
< { "item" : "circuitboard" },
< { "item" : "steelplatform" },
<
289c289,295
< { "item" : "steelelevatorlong" },
---
> { "item" : "steelelevatorlong" }
>
> /*
>
> { "item" : "steelplatform" },
>
>
299,301d304
< { "item" : "tungstenbow" },
< { "item" : "titaniumbow" },
< { "item" : "compoundbow" },
305,310d307
<
< { "item" : "voxel1k" },
< { "item" : "voxel2k" },
< { "item" : "voxel5k" },
< { "item" : "voxel10k" },
<
507c504
< { "item" : "nanowrap" },
---
>
terrestrial_worlds.config
597c597
< "secondaryRegion" : [ "crystalline" ],
---
> "secondaryRegion" : [ "geode" ],
617c617
< "secondaryRegion" : [ "rust", "crystalline", "bones", "desert", "volcanic" ],
---
> "secondaryRegion" : [ "rust", "geode", "bones", "desert", "volcanic" ],
1114,1115c1114,1115
< "crystalline" : {
< "blockSelector" : [ "remixedSurface" ],
---
> "geode" : {
> "blockSelector" : [ "remixedMildSurface" ],
1119c1119
< [0, [ "crystalline" ]]
---
> [0, [ "geode" ]]
behaviors\monsters\boss\spiderboss\main.behavior
607c607
< "config": {
---
> "parameters": {
behaviors\monsters\critter\flying.behavior
113c113
< "config": {
---
> "parameters": {
behaviors\monsters\modular\actions\swoop.behavior
208c208
< "config": {
---
> "parameters": {
biomes\oredistributions.configfunctions
1c1
< {
---
> {
4,9c4,9
< [0.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.80 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [1.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.80 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [2.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [3.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [4.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [5.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
---
> [0.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.80 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [1.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.80 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [2.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [3.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [4.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [5.5, [ [ "coal", 1.40 ], [ "copper", 0.50 ], [ "silverore", 0.00 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
13,18c13,18
< [0.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 1.50 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [1.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 1.50 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [2.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [3.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [4.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [5.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
---
> [0.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 1.50 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [1.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 1.50 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [2.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 1.50 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [3.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 1.50 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [4.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 1.50 ], [ "rubium", 1.50 ], [ "violium", 1.50 ] ] ],
> [5.5, [ [ "coal", 1.15 ], [ "copper", 1.30 ], [ "silverore", 0.50 ], [ "gold", 0.00 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
22,27c22,27
< [0.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 2.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [1.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 2.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [2.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [3.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [4.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [5.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
---
> [0.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 2.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [1.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 2.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [2.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 2.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [3.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 2.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [4.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 2.00 ], [ "rubium", 2.00 ], [ "violium", 2.00 ] ] ],
> [5.5, [ [ "coal", 1.15 ], [ "copper", 0.50 ], [ "silverore", 1.30 ], [ "gold", 0.50 ], [ "platinum", 0.00 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
31,36c31,36
< [0.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 1.50 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [1.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 1.50 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [2.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [3.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [4.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [5.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
---
> [0.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 1.50 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [1.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 1.50 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [2.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 1.50 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [3.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 1.50 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [4.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 1.50 ], [ "rubium", 1.50 ], [ "violium", 1.50 ] ] ],
> [5.5, [ [ "coal", 1.15 ], [ "copper", 0.00 ], [ "silverore", 0.50 ], [ "gold", 1.30 ], [ "platinum", 0.50 ], [ "diamond", 0.00 ], [ "corefragment", 0.00 ], ["fossil", 0.79 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
40,45c40,45
< [0.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 1.20 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [1.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 1.20 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [2.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [3.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [4.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
< [5.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
---
> [0.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 1.20 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [1.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 1.20 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [2.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 1.20 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [3.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 1.20 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ],
> [4.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 1.20 ], [ "rubium", 1.20 ], [ "violium", 1.20 ] ] ],
> [5.5, [ [ "coal", 1.00 ], [ "copper", 0.00 ], [ "silverore", 0.00 ], [ "gold", 0.50 ], [ "platinum", 1.30 ], [ "diamond", 0.50 ], [ "corefragment", 1.50 ], ["fossil", 0.00 ], [ "iron", 0.00 ], [ "tungsten", 0.00 ], [ "titanium", 0.00 ], [ "durasteel", 0.00 ], [ "aegisalt", 0.00 ], [ "rubium", 0.00 ], [ "violium", 0.00 ] ] ]
dungeons\missions\avianmissions\avianmission1.dungeon
11c11
< "protected" : false
---
> "protected" : true
dungeons\missions\avianmissions\avianmission1.json
[TMX file differences are left out for huge size.]
interface\games\fossilgame\fossilgame.lua
62,63c62,63
< generator.toolRockChance = console.configParameter("toolRockChance", 0.5)
< generator.randomRockChance = console.configParameter("randomRockChance", 0.3)
---
> generator.toolRockChance = config.getParameter("toolRockChance", 0.5)
> generator.randomRockChance = config.getParameter("randomRockChance", 0.3)
interface\windowconfig\craftingfurniture.config
6c6
< "requiresBlueprint" : false,
---
> "requiresBlueprint" : true,
interface\windowconfig\spinningwheel.config
28c28
< "file" : "/interface/crafting/spinningwheel.png",
---
> "file" : "/interface/crafting/craftingwheel.png",
items\active\grapple\grapple.lua
5,10c5,10
< self.fireOffset = item.instanceValue("fireOffset", {0,0})
< self.stances = item.instanceValue("stances")
< self.projectileType = item.instanceValue("projectileType")
< self.projectileParameters = item.instanceValue("projectileParameters")
< self.returnSpeed = item.instanceValue("returnSpeed", 0)
< self.returnDistance = item.instanceValue("returnDistance", 1)
---
> self.fireOffset = config.getParameter("fireOffset", {0,0})
> self.stances = config.getParameter("stances")
> self.projectileType = config.getParameter("projectileType")
> self.projectileParameters = config.getParameter("projectileParameters")
> self.returnSpeed = config.getParameter("returnSpeed", 0)
> self.returnDistance = config.getParameter("returnDistance", 1)
15,18c15,18
< activeItem.setScriptedAnimationParameter("ropeItemOffset", item.instanceValue("ropeOffset", self.fireOffset))
< activeItem.setScriptedAnimationParameter("ropeWidth", item.instanceValue("ropeWidth"))
< activeItem.setScriptedAnimationParameter("ropeColor", item.instanceValue("ropeColor"))
< activeItem.setScriptedAnimationParameter("ropeFullbright", item.instanceValue("ropeFullbright"))
---
> activeItem.setScriptedAnimationParameter("ropeItemOffset", config.getParameter("ropeOffset", self.fireOffset))
> activeItem.setScriptedAnimationParameter("ropeWidth", config.getParameter("ropeWidth"))
> activeItem.setScriptedAnimationParameter("ropeColor", config.getParameter("ropeColor"))
> activeItem.setScriptedAnimationParameter("ropeFullbright", config.getParameter("ropeFullbright"))
82c82
< return world.distance(world.entityPosition(self.projectileId), vec2.add(activeItem.handPosition(item.instanceValue("ropeOffset", self.fireOffset)), mcontroller.position()))
---
> return world.distance(world.entityPosition(self.projectileId), vec2.add(activeItem.handPosition(config.getParameter("ropeOffset", self.fireOffset)), mcontroller.position()))
items\active\shields\shield.lua
11c11
< self.cooldownTimer = item.instanceValue("cooldownTime")
---
> self.cooldownTimer = config.getParameter("cooldownTime")
14,21c14,21
< self.level = item.instanceValue("level", 1)
< self.baseShieldHealth = item.instanceValue("baseShieldHealth", 1)
< self.knockback = item.instanceValue("knockback", 0)
< self.perfectBlockDirectives = item.instanceValue("perfectBlockDirectives", "")
< self.perfectBlockTime = item.instanceValue("perfectBlockTime", 0.2)
< self.minActiveTime = item.instanceValue("minActiveTime", 0)
< self.cooldownTime = item.instanceValue("cooldownTime")
< self.forceWalk = item.instanceValue("forceWalk", false)
---
> self.level = config.getParameter("level", 1)
> self.baseShieldHealth = config.getParameter("baseShieldHealth", 1)
> self.knockback = config.getParameter("knockback", 0)
> self.perfectBlockDirectives = config.getParameter("perfectBlockDirectives", "")
> self.perfectBlockTime = config.getParameter("perfectBlockTime", 0.2)
> self.minActiveTime = config.getParameter("minActiveTime", 0)
> self.cooldownTime = config.getParameter("cooldownTime")
> self.forceWalk = config.getParameter("forceWalk", false)
27c27
< self.stances = item.instanceValue("stances")
---
> self.stances = config.getParameter("stances")
items\active\unsorted\parasol\parasol.lua
2c2
< self.switchTime = item.instanceValue("switchTime")
---
> self.switchTime = config.getParameter("switchTime")
17,18c17,18
< mcontroller.controlParameters(item.instanceValue("fallingParameters"))
< mcontroller.setYVelocity(math.max(mcontroller.yVelocity(), item.instanceValue("maxFallSpeed")))
---
> mcontroller.controlParameters(config.getParameter("fallingParameters"))
> mcontroller.setYVelocity(math.max(mcontroller.yVelocity(), config.getParameter("maxFallSpeed")))
29c29
< local armAngle = toRadians(interpolateSigmoid(self.switchTimer / self.switchTime, item.instanceValue("idleRotation"), item.instanceValue("activeRotation")))
---
> local armAngle = toRadians(interpolateSigmoid(self.switchTimer / self.switchTime, config.getParameter("idleRotation"), config.getParameter("activeRotation")))
items\active\unsorted\partypopper\partypopper.lua
9c9
< self.fireOffset = item.instanceValue("fireOffset")
---
> self.fireOffset = config.getParameter("fireOffset")
43c43
< storage.fireTimer = item.instanceValue("fireTime", 1.0)
---
> storage.fireTimer = config.getParameter("fireTime", 1.0)
68c68
< local aimVector = vec2.rotate({1, 0}, self.aimAngle + sb.nrand(item.instanceValue("inaccuracy", 0), 0))
---
> local aimVector = vec2.rotate({1, 0}, self.aimAngle + sb.nrand(config.getParameter("inaccuracy", 0), 0))
items\active\unsorted\rewardbag\rewardbag.lua
7c7
< self.fireOffset = item.instanceValue("fireOffset")
---
> self.fireOffset = config.getParameter("fireOffset")
32c32
< storage.fireTimer = item.instanceValue("fireTime", 1.0)
---
> storage.fireTimer = config.getParameter("fireTime", 1.0)
41,43c41,43
< local pool = item.instanceValue("treasure.pool")
< local level = item.instanceValue("treasure.level")
< local seed = item.instanceValue("treasure.seed")
---
> local pool = config.getParameter("treasure.pool")
> local level = config.getParameter("treasure.level")
> local seed = config.getParameter("treasure.seed")
71c71
< local aimVector = vec2.rotate({1, 0}, self.aimAngle + sb.nrand(item.instanceValue("inaccuracy", 0), 0))
---
> local aimVector = vec2.rotate({1, 0}, self.aimAngle + sb.nrand(config.getParameter("inaccuracy", 0), 0))
items\active\unsorted\translocator\translocator.lua
4c4
< self.fireOffset = item.instanceValue("fireOffset")
---
> self.fireOffset = config.getParameter("fireOffset")
18c18
< and status.overConsumeResource("energy", item.instanceValue("fireEnergy")) then
---
> and status.overConsumeResource("energy", config.getParameter("fireEnergy")) then
24c24
< and status.overConsumeResource("energy", item.instanceValue("teleportEnergy")) then
---
> and status.overConsumeResource("energy", config.getParameter("teleportEnergy")) then
57c57
< self.recoilTimer = item.instanceValue("recoilTime", 0.12)
---
> self.recoilTimer = config.getParameter("recoilTime", 0.12)
items\active\unsorted\wateringcan\wateringcan.lua
33c33
< self.waterProjectileTimer = item.instanceValue("projectileRate")
---
> self.waterProjectileTimer = config.getParameter("projectileRate")
58c58
< return self.aimAngle + (0.5 - math.abs(0.5 - self.waterTimer / item.instanceValue("waterTime"))) * 2 * util.toRadians(item.instanceValue("waterAngle"))
---
> return self.aimAngle + (0.5 - math.abs(0.5 - self.waterTimer / config.getParameter("waterTime"))) * 2 * util.toRadians(config.getParameter("waterAngle"))
71c71
< item.instanceValue("projectileType"),
---
> config.getParameter("projectileType"),
74c74
< aimVector(item.instanceValue("projectileInaccuracy")),
---
> aimVector(config.getParameter("projectileInaccuracy")),
76c76
< item.instanceValue("projectileParameters")
---
> config.getParameter("projectileParameters")
82c82
< self.waterTimer = item.instanceValue("waterTime")
---
> self.waterTimer = config.getParameter("waterTime")
88c88
< self.cooldownTimer = item.instanceValue("cooldownTime")
---
> self.cooldownTimer = config.getParameter("cooldownTime")
items\active\vehiclecontroller\vehiclecontroller.lua
6c6
< if item.instanceValue("key") == nil then
---
> if config.getParameter("key") == nil then
12c12
< self.vehicleBoundingBox=item.instanceValue("vehicleBoundingBox")
---
> self.vehicleBoundingBox=config.getParameter("vehicleBoundingBox")
14c14
< if ( item.instanceValue("filled")) then
---
> if ( config.getParameter("filled")) then
25c25
< activeItem.setScriptedAnimationParameter("vehicleImage", item.instanceValue("vehicleImage"))
---
> activeItem.setScriptedAnimationParameter("vehicleImage", config.getParameter("vehicleImage"))
35c35
< if item.instanceValue("filled") then
---
> if config.getParameter("filled") then
43c43
< world.spawnVehicle(item.instanceValue("vehicleType"), activeItem.ownerAimPosition(), { ownerKey = item.instanceValue("key"), startHealthFactor = item.instanceValue("vehicleStartHealthFactor"), fromItem = true} )
---
> world.spawnVehicle(config.getParameter("vehicleType"), activeItem.ownerAimPosition(), { ownerKey = config.getParameter("key"), startHealthFactor = config.getParameter("vehicleStartHealthFactor"), fromItem = true} )
64c64
< self.consumePromise = world.sendEntityMessage(vehicleId, "store", item.instanceValue("key"))
---
> self.consumePromise = world.sendEntityMessage(vehicleId, "store", config.getParameter("key"))
74c74
< if ( item.instanceValue("filled")) then
---
> if ( config.getParameter("filled")) then
103c103
< self.respawnTimer=item.instanceValue("respawnTime")
---
> self.respawnTimer=config.getParameter("respawnTime")
125c125
< if item.instanceValue("filled") then
---
> if config.getParameter("filled") then
127c127
< activeItem.setInventoryIcon(item.instanceValue("filledInventoryIcon"))
---
> activeItem.setInventoryIcon(config.getParameter("filledInventoryIcon"))
130c130
< activeItem.setInventoryIcon(item.instanceValue("emptyInventoryIcon"))
---
> activeItem.setInventoryIcon(config.getParameter("emptyInventoryIcon"))
items\active\weapons\weapon.lua
6,11c6,11
< function Weapon:new(config)
< local newWeapon = config or {}
< newWeapon.damageLevelMultiplier = item.instanceValue("damageLevelMultiplier", root.evalFunction("weaponDamageLevelMultiplier", item.instanceValue("level", 1)))
< newWeapon.elementalType = item.instanceValue("elementalType")
< newWeapon.muzzleOffset = item.instanceValue("muzzleOffset") or {0,0}
< newWeapon.aimOffset = item.instanceValue("aimOffset") or (newWeapon.muzzleOffset[2] - 0.25) -- why is it off by 0.25? nobody knows!
---
> function Weapon:new(weaponConfig)
> local newWeapon = weaponConfig or {}
> newWeapon.damageLevelMultiplier = config.getParameter("damageLevelMultiplier", root.evalFunction("weaponDamageLevelMultiplier", config.getParameter("level", 1)))
> newWeapon.elementalType = config.getParameter("elementalType")
> newWeapon.muzzleOffset = config.getParameter("muzzleOffset") or {0,0}
> newWeapon.aimOffset = config.getParameter("aimOffset") or (newWeapon.muzzleOffset[2] - 0.25) -- why is it off by 0.25? nobody knows!
208,209c208,209
< function WeaponAbility:new(config, stances)
< local newAbility = config or {}
---
> function WeaponAbility:new(abilityConfig, stances)
> local newAbility = abilityConfig or {}
224c224
< local altAbilityConfig = item.instanceValue("altAbility")
---
> local altAbilityConfig = config.getParameter("altAbility")
239c239
< return activeItem.ownerEntityId() .. item.instanceValue("itemName") .. activeItem.hand() .. mode
---
> return activeItem.ownerEntityId() .. config.getParameter("itemName") .. activeItem.hand() .. mode
items\active\weapons\fist\fistweapon.lua
12c12
< self.primaryAttack = Punch:new(item.instanceValue("primaryAttack"), item.instanceValue("stances"))
---
> self.primaryAttack = Punch:new(config.getParameter("primaryAttack"), config.getParameter("stances"))
15c15
< local comboFinisherConfig = item.instanceValue("comboFinisher")
---
> local comboFinisherConfig = config.getParameter("comboFinisher")
24,25c24,25
< self.needsEdgeTrigger = item.instanceValue("needsEdgeTrigger", false)
< self.edgeTriggerGrace = item.instanceValue("edgeTriggerGrace", 0)
---
> self.needsEdgeTrigger = config.getParameter("needsEdgeTrigger", false)
> self.edgeTriggerGrace = config.getParameter("edgeTriggerGrace", 0)
29,31c29,31
< self.comboSteps = item.instanceValue("comboSteps")
< self.comboTiming = item.instanceValue("comboTiming")
< self.comboCooldown = item.instanceValue("comboCooldown")
---
> self.comboSteps = config.getParameter("comboSteps")
> self.comboTiming = config.getParameter("comboTiming")
> self.comboCooldown = config.getParameter("comboCooldown")
33c33
< self.weapon.freezeLimit = item.instanceValue("freezeLimit", 2)
---
> self.weapon.freezeLimit = config.getParameter("freezeLimit", 2)
items\active\weapons\fist\combofinishers\dashslash.lua
4,5c4,5
< function setupComboFinisher(config)
< local DashSlash = WeaponAbility:new(config, config.stances)
---
> function setupComboFinisher(finisherConfig)
> local DashSlash = WeaponAbility:new(finisherConfig, finisherConfig.stances)
items\active\weapons\fist\combofinishers\powerpunch.lua
4,5c4,5
< function setupComboFinisher(config)
< local PowerPunch = WeaponAbility:new(config, config.stances)
---
> function setupComboFinisher(finisherConfig)
> local PowerPunch = WeaponAbility:new(finisherConfig, finisherConfig.stances)
items\active\weapons\fist\combofinishers\snaproot.lua
4,5c4,5
< function setupComboFinisher(config)
< local Snaproot = WeaponAbility:new(config, config.stances)
---
> function setupComboFinisher(finisherConfig)
> local Snaproot = WeaponAbility:new(finisherConfig, finisherConfig.stances)
items\active\weapons\fist\combofinishers\uppercut.lua
4,5c4,5
< function setupComboFinisher(config)
< local Uppercut = WeaponAbility:new(config, config.stances)
---
> function setupComboFinisher(finisherConfig)
> local Uppercut = WeaponAbility:new(finisherConfig, finisherConfig.stances)
items\active\weapons\melee\meleeweapon.lua
7c7
< animator.setGlobalTag("paletteSwaps", item.instanceValue("paletteSwaps", ""))
---
> animator.setGlobalTag("paletteSwaps", config.getParameter("paletteSwaps", ""))
13c13
< self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(item.instanceValue("baseWeaponRotation", 0)))
---
> self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(config.getParameter("baseWeaponRotation", 0)))
16c16
< local primaryAttack = MeleeSlash:new(item.instanceValue("primaryAttack"), item.instanceValue("stances"))
---
> local primaryAttack = MeleeSlash:new(config.getParameter("primaryAttack"), config.getParameter("stances"))
items\active\weapons\melee\altabilities\broadsword\traildash\traildash.lua
50c50
< params.power = params.power * item.instanceValue("damageLevelMultiplier")
---
> params.power = params.power * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.lua
49c49
< return self.baseDamage * item.instanceValue("damageLevelMultiplier")
---
> return self.baseDamage * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\generic\blinkexplosion\blinkexplosion.lua
54c54
< power = self.baseDamage * item.instanceValue("damageLevelMultiplier")
---
> power = self.baseDamage * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\hammer\elementalpillar\elementalpillar.lua
85c85
< projectileParameters.power = projectileParameters.power * item.instanceValue("damageLevelMultiplier")
---
> projectileParameters.power = projectileParameters.power * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\hammer\groundslam\groundslam.lua
53c53
< params.power = params.power * item.instanceValue("damageLevelMultiplier")
---
> params.power = params.power * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\hammer\shockwave\shockwave.lua
93c93
< params.power = params.power * item.instanceValue("damageLevelMultiplier")
---
> params.power = params.power * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\spear\barrier\barrier.lua
33c33
< params.power = params.power * item.instanceValue("damageLevelMultiplier")
---
> params.power = params.power * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\spear\elementalspin\elementalspin.lua
69c69
< params.power = params.power * item.instanceValue("damageLevelMultiplier")
---
> params.power = params.power * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\altabilities\spear\rocketspear\rocketspear.lua
44c44
< params.power = self.baseDps * self.fireTime * item.instanceValue("damageLevelMultiplier")
---
> params.power = self.baseDps * self.fireTime * config.getParameter("damageLevelMultiplier")
items\active\weapons\melee\hammer\hammer.lua
9c9
< animator.setGlobalTag("paletteSwaps", item.instanceValue("paletteSwaps", ""))
---
> animator.setGlobalTag("paletteSwaps", config.getParameter("paletteSwaps", ""))
15c15
< self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(item.instanceValue("baseWeaponRotation", 0)))
---
> self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(config.getParameter("baseWeaponRotation", 0)))
18c18
< local primaryAttack = HammerSmash:new(item.instanceValue("primaryAttack"), item.instanceValue("stances"))
---
> local primaryAttack = HammerSmash:new(config.getParameter("primaryAttack"), config.getParameter("stances"))
items\active\weapons\melee\mission\nurusspear\nurusspear.lua
8c8
< self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(item.instanceValue("baseWeaponRotation", 0)))
---
> self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(config.getParameter("baseWeaponRotation", 0)))
10c10
< local primaryAttack = NuruSpearAttack:new(item.instanceValue("primaryAttack"), item.instanceValue("stances"))
---
> local primaryAttack = NuruSpearAttack:new(config.getParameter("primaryAttack"), config.getParameter("stances"))
items\active\weapons\melee\spear\spear.lua
7c7
< animator.setGlobalTag("paletteSwaps", item.instanceValue("paletteSwaps", ""))
---
> animator.setGlobalTag("paletteSwaps", config.getParameter("paletteSwaps", ""))
13c13
< self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(item.instanceValue("baseWeaponRotation", 0)))
---
> self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(config.getParameter("baseWeaponRotation", 0)))
16c16
< local primaryAttack = SpearStab:new(item.instanceValue("primaryAttack"), item.instanceValue("stances"))
---
> local primaryAttack = SpearStab:new(config.getParameter("primaryAttack"), config.getParameter("stances"))
items\active\weapons\ranged\gun.lua
9c9
< animator.setGlobalTag("paletteSwaps", item.instanceValue("paletteSwaps", ""))
---
> animator.setGlobalTag("paletteSwaps", config.getParameter("paletteSwaps", ""))
16c16
< local primaryAttack = GunFire:new(item.instanceValue("primaryAttack"), item.instanceValue("stances"))
---
> local primaryAttack = GunFire:new(config.getParameter("primaryAttack"), config.getParameter("stances"))
items\active\weapons\ranged\gunfire.lua
128c128
< return (self.baseDamage or (self.baseDps * self.fireTime)) * item.instanceValue("damageLevelMultiplier") / self.projectileCount
---
> return (self.baseDamage or (self.baseDps * self.fireTime)) * config.getParameter("damageLevelMultiplier") / self.projectileCount
items\active\weapons\ranged\altabilities\altfire.lua
5c5
< local primary = item.instanceValue("primaryAttack")
---
> local primary = config.getParameter("primaryAttack")
items\active\weapons\ranged\altabilities\explosiveburst\explosiveburst.lua
6c6
< local primary = item.instanceValue("primaryAttack")
---
> local primary = config.getParameter("primaryAttack")
items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.lua
33c33
< pParams.power = pParams.power * root.evalFunction("weaponDamageLevelMultiplier", item.instanceValue("level", 1))
---
> pParams.power = pParams.power * root.evalFunction("weaponDamageLevelMultiplier", config.getParameter("level", 1))
items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.lua
5c5
< local primary = item.instanceValue("primaryAttack")
---
> local primary = config.getParameter("primaryAttack")
items\active\weapons\ranged\altabilities\homingrocket\homingrocket.lua
5c5
< local primary = item.instanceValue("primaryAttack")
---
> local primary = config.getParameter("primaryAttack")
items\active\weapons\ranged\altabilities\lance\lance.lua
5c5
< local primary = item.instanceValue("primaryAttack")
---
> local primary = config.getParameter("primaryAttack")
items\active\weapons\ranged\altabilities\markedshot\markedshot.lua
5c5
< local primary = item.instanceValue("primaryAttack")
---
> local primary = config.getParameter("primaryAttack")
items\active\weapons\ranged\altabilities\rocketburst\rocketburst.lua
5c5
< local primary = item.instanceValue("primaryAttack")
---
> local primary = config.getParameter("primaryAttack")
items\active\weapons\ranged\boomerang\boomerang.lua
5,10c5,10
< self.fireOffset = item.instanceValue("fireOffset")
< self.stances = item.instanceValue("stances")
< self.fireAngleOffset = util.toRadians(item.instanceValue("fireAngleOffset", 0))
< self.projectileType = item.instanceValue("projectileType")
< self.projectileParameters = item.instanceValue("projectileParameters")
< self.projectileParameters.power = self.projectileParameters.power * root.evalFunction("weaponDamageLevelMultiplier", item.instanceValue("level", 1))
---
> self.fireOffset = config.getParameter("fireOffset")
> self.stances = config.getParameter("stances")
> self.fireAngleOffset = util.toRadians(config.getParameter("fireAngleOffset", 0))
> self.projectileType = config.getParameter("projectileType")
> self.projectileParameters = config.getParameter("projectileParameters")
> self.projectileParameters.power = self.projectileParameters.power * root.evalFunction("weaponDamageLevelMultiplier", config.getParameter("level", 1))
items\active\weapons\ranged\flamethrower\flamethrower.lua
9c9
< animator.setGlobalTag("paletteSwaps", item.instanceValue("paletteSwaps", ""))
---
> animator.setGlobalTag("paletteSwaps", config.getParameter("paletteSwaps", ""))
36c36
< local flamethrowerAttack = GunFire:new(item.instanceValue("primaryAttack"), item.instanceValue("stances"))
---
> local flamethrowerAttack = GunFire:new(config.getParameter("primaryAttack"), config.getParameter("stances"))
items\active\weapons\ranged\remotegrenadelauncher\remotegrenadelauncher.lua
5,8c5,8
< self.pType = item.instanceValue("projectileType")
< self.pParams = item.instanceValue("projectileParameters", {})
< self.pParams.power = self.pParams.power * root.evalFunction("weaponDamageLevelMultiplier", item.instanceValue("level", 1))
< self.energyPerShot = item.instanceValue("energyUsage")
---
> self.pType = config.getParameter("projectileType")
> self.pParams = config.getParameter("projectileParameters", {})
> self.pParams.power = self.pParams.power * root.evalFunction("weaponDamageLevelMultiplier", config.getParameter("level", 1))
> self.energyPerShot = config.getParameter("energyUsage")
10c10
< self.fireOffset = item.instanceValue("fireOffset")
---
> self.fireOffset = config.getParameter("fireOffset")
37c37
< storage.fireTimer = item.instanceValue("fireTime", 1.0)
---
> storage.fireTimer = config.getParameter("fireTime", 1.0)
76c76
< self.recoilTimer = item.instanceValue("recoilTime", 0.12)
---
> self.recoilTimer = config.getParameter("recoilTime", 0.12)
109c109
< local aimVector = vec2.rotate({1, 0}, self.aimAngle + sb.nrand(item.instanceValue("inaccuracy", 0), 0))
---
> local aimVector = vec2.rotate({1, 0}, self.aimAngle + sb.nrand(config.getParameter("inaccuracy", 0), 0))
items\generic\crafting\battery.item
4c4
< "rarity" : "Common",
---
> "rarity" : "uncommon",
items\generic\crafting\titaniumbar.item
6c6
< "description" : "It's a titanium bar. Useful for crafting advanced weapons, armour and more!",
---
> "description" : "It's a titanium bar. Titanium ore is found primarily on arid and snowy planets.",
items\generic\other\medkit.consumable
6c6
< "description" : "A medkit for healing moderate wounds. Using it restores 60 health.",
---
> "description" : "A medkit for healing moderate wounds. Using it restores 40 health and cures most statuses.",
10c10,26
< "effect" : "bandage4",
---
> "effect" : "bandage2",
> "duration" : 2
> },
> {
> "effect" : "fireblock",
> "duration" : 2
> },
> {
> "effect" : "iceblock",
> "duration" : 2
> },
> {
> "effect" : "electricblock",
> "duration" : 2
> },
> {
> "effect" : "poisonblock",
items\guns\bows\aegisaltbow\aegisaltbow.gun
17c17
< "fireTime" : 0.65,
---
> "fireTime" : 0.5,
items\guns\bows\bow\bow.gun
17c17
< "fireTime" : 0.25,
---
> "fireTime" : 0.5,
31c31
< "power" : 4
---
> "power" : 5.25
items\guns\bows\compoundbow\compoundbow.gun
17c17
< "fireTime" : 0.65,
---
> "fireTime" : 0.5,
items\guns\bows\cupidsbow\cupidsbow.gun
17c17
< "fireTime" : 0.65,
---
> "fireTime" : 0.5,
items\guns\bows\feroziumbow\feroziumbow.gun
17c17
< "fireTime" : 0.65,
---
> "fireTime" : 0.5,
items\guns\bows\ironbow\ironbow.gun
17c17
< "fireTime" : 0.65,
---
> "fireTime" : 0.5,
items\guns\bows\tungstenbow\tungstenbow.gun
12c12
< "image" : "tungstenbowfull.png:",
---
> "image" : "tungstenbow.png:",
17c17
< "fireTime" : 0.65,
---
> "fireTime" : 0.5,
monsters\capturepod.lua
7c7
< local ownerUuid = entity.configParameter("ownerUuid", nil)
---
> local ownerUuid = config.getParameter("ownerUuid", nil)
14c14
< local killCount = entity.configParameter("killCount", nil)
---
> local killCount = config.getParameter("killCount", nil)
27,28c27,28
< if storage.killCount > entity.configParameter("killsPerLevel", 10) then
< local levelUpParticles = entity.configParameter("levelUpParticles", nil)
---
> if storage.killCount > config.getParameter("killsPerLevel", 10) then
> local levelUpParticles = config.getParameter("levelUpParticles", nil)
30c30
< entity.setDeathParticleBurst(levelUpParticles)
---
> monster.setDeathParticleBurst(levelUpParticles)
51c51
< local captureHealthFraction = entity.configParameter("captureHealthFraction", nil)
---
> local captureHealthFraction = config.getParameter("captureHealthFraction", nil)
53,54c53
< local healthFraction = entity.health() / entity.maxHealth()
< if healthFraction <= captureHealthFraction then
---
> if status.resourcePercentage("health") <= captureHealthFraction then
62c61
< local captureParticles = entity.configParameter("captureParticles", nil)
---
> local captureParticles = config.getParameter("captureParticles", nil)
64c63
< entity.setDeathParticleBurst(captureParticles)
---
> monster.setDeathParticleBurst(captureParticles)
77c76
< local parameters = entity.uniqueParameters()
---
> local parameters = monster.uniqueParameters()
87,89c86,88
< parameters.seed = entity.seed()
< parameters.level = entity.level()
< parameters.familyIndex = entity.familyIndex()
---
> parameters.seed = monster.seed()
> parameters.level = monster.level()
> parameters.familyIndex = monster.familyIndex()
93c92
< world.spawnMonster(entity.type(), mcontroller.position(), parameters)
---
> world.spawnMonster(monster.type(), mcontroller.position(), parameters)
96c95
< world.spawnItem("filledcapturepod", entity.toAbsolutePosition({ 0, 4 }), 1, {
---
> world.spawnItem("filledcapturepod", monster.toAbsolutePosition({ 0, 4 }), 1, {
104c103
< type = entity.type(),
---
> type = monster.type(),
113c112
< entity.setDropPool(nil)
---
> monster.setDropPool(nil)
monsters\flocking.lua
12c12
< local flockRegion = entity.configParameter("flockRegion")
---
> local flockRegion = config.getParameter("flockRegion")
16,17c16,17
< local flockSeparationDistance = entity.configParameter("flockSeparationDistance")
< local flockAlignmentDistance = entity.configParameter("flockAlignmentDistance")
---
> local flockSeparationDistance = config.getParameter("flockSeparationDistance")
> local flockAlignmentDistance = config.getParameter("flockAlignmentDistance")
46c46
< local flockLeaderInfluence = entity.configParameter("flockLeaderInfluence")
---
> local flockLeaderInfluence = config.getParameter("flockLeaderInfluence")
86c86
< local flockSeparationFactor = entity.configParameter("flockSeparationFactor")
---
> local flockSeparationFactor = config.getParameter("flockSeparationFactor")
104c104
< local flockAlignmentFactor = entity.configParameter("flockAlignmentFactor")
---
> local flockAlignmentFactor = config.getParameter("flockAlignmentFactor")
120c120
< local flockCohesionFactor = entity.configParameter("flockCohesionFactor")
---
> local flockCohesionFactor = config.getParameter("flockCohesionFactor")
monsters\groundmovement.lua
4c4
< local bounds = entity.configParameter("metaBoundBox")
---
> local bounds = config.getParameter("metaBoundBox")
monsters\grumblestate.lua
0a1,2
> require "/scripts/util.lua"
>
27c29
< stateData.emoteCooldown = entity.randomizeParameterRange("tenant.emoteCooldownTimeRange")
---
> stateData.emoteCooldown = util.randomInRange(config.getParameter("tenant.emoteCooldownTimeRange"))
monsters\monster.lua
24,25c24,25
< self.behaviorConfig = sb.jsonMerge(entity.configParameter("behaviorConfig", {}), skillBehaviorConfig())
< self.behavior = BTree:new(entity.configParameter("behavior"))
---
> self.behaviorConfig = sb.jsonMerge(config.getParameter("behaviorConfig", {}), skillBehaviorConfig())
> self.behavior = BTree:new(config.getParameter("behavior"))
29,30c29,30
< if entity.hasSound("deathPuff") then
< entity.setDeathSound("deathPuff")
---
> if animator.hasSound("deathPuff") then
> monster.setDeathSound("deathPuff")
32,33c32,33
< if entity.configParameter("deathParticles") then
< entity.setDeathParticleBurst(entity.configParameter("deathParticles"))
---
> if config.getParameter("deathParticles") then
> monster.setDeathParticleBurst(config.getParameter("deathParticles"))
40c40
< entity.setGlobalTag("flipX", "")
---
> animator.setGlobalTag("flipX", "")
60c60
< local deathBehavior = entity.configParameter("deathBehavior")
---
> local deathBehavior = config.getParameter("deathBehavior")
65,66c65,66
< self.forceRegions = ControlMap:new(entity.configParameter("forceRegions", {}))
< self.damageSources = ControlMap:new(entity.configParameter("damageSources", {}))
---
> self.forceRegions = ControlMap:new(config.getParameter("forceRegions", {}))
> self.damageSources = ControlMap:new(config.getParameter("damageSources", {}))
73,74c73,74
< entity.setAnimationState("damage", "stunned")
< entity.setGlobalTag("hurt", "hurt")
---
> animator.setAnimationState("damage", "stunned")
> animator.setGlobalTag("hurt", "hurt")
79,80c79,80
< entity.setGlobalTag("hurt", "")
< entity.setAnimationState("damage", "none")
---
> animator.setGlobalTag("hurt", "")
> animator.setAnimationState("damage", "none")
121c121
< error(string.format("Lua Error in monster type '%s'\n %s", entity.type(), result))
---
> error(string.format("Lua Error in monster type '%s'\n %s", monster.type(), result))
138,139c138,139
< for part,ds in pairs(entity.configParameter("damageParts", {})) do
< local damageArea = entity.partPoly(part, "damageArea")
---
> for part,ds in pairs(config.getParameter("damageParts", {})) do
> local damageArea = animator.partPoly(part, "damageArea")
148c148
< ds.damage = ds.damage * root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> ds.damage = ds.damage * root.evalFunction("monsterLevelPowerMultiplier", monster.level())
151c151
< entity.setDamageSources(damageSources)
---
> monster.setDamageSources(damageSources)
170c170
< entity.setPhysicsForces(regions)
---
> monster.setPhysicsForces(regions)
174c174
< local collisionParts = entity.configParameter("collisionParts", {})
---
> local collisionParts = config.getParameter("collisionParts", {})
177c177
< local collisionPoly = entity.partPoly(part, "collisionPoly")
---
> local collisionPoly = animator.partPoly(part, "collisionPoly")
186,187c186,187
< local skills = entity.configParameter("skills", {})
< local config = {}
---
> local skills = config.getParameter("skills", {})
> local skillConfig = {}
190c190
< local skillHostileActions = root.skillConfigParameter(skillName, "hostileActions")
---
> local skillHostileActions = root.monsterSkillParameter(skillName, "hostileActions")
192,193c192,193
< construct(config, "hostileActions")
< util.appendLists(config.hostileActions, skillHostileActions)
---
> construct(skillConfig, "hostileActions")
> util.appendLists(skillConfig.hostileActions, skillHostileActions)
197c197
< return config
---
> return skillConfig
209,210c209,210
< type = entity.type();
< arguments = { persistent = true, seed = entity.seed() }
---
> type = monster.type();
> arguments = { persistent = true, seed = monster.seed() }
253c253
< entity.setAnimationState(args.type, args.state)
---
> animator.setAnimationState(args.type, args.state)
268c268
< entity.setGlobalTag(args.type, args.tag or "")
---
> animator.setGlobalTag(args.type, args.tag or "")
303c303
< goalAngle = (goalAngle + entity.configParameter("rotationOffset", 0)) % (math.pi*2)
---
> goalAngle = (goalAngle + config.getParameter("rotationOffset", 0)) % (math.pi*2)
312,313c312,313
< entity.resetTransformationGroup("body")
< entity.rotateTransformationGroup("body", angle)
---
> animator.resetTransformationGroup("body")
> animator.rotateTransformationGroup("body", angle)
319,320c319,320
< entity.resetTransformationGroup("body")
< entity.rotateTransformationGroup("body", goalAngle)
---
> animator.resetTransformationGroup("body")
> animator.rotateTransformationGroup("body", goalAngle)
331c331
< entity.resetTransformationGroup(args.transformationGroup)
---
> animator.resetTransformationGroup(args.transformationGroup)
350c350
< entity.rotateTransformationGroup(args.transformationGroup, angle, rotationCenter)
---
> animator.rotateTransformationGroup(args.transformationGroup, angle, rotationCenter)
360c360
< entity.setDamageOnTouch(args.touchDamage)
---
> monster.setDamageOnTouch(args.touchDamage)
370c370
< entity.setAggressive(args.aggressive == true)
---
> monster.setAggressive(args.aggressive == true)
380c380
< entity.setActiveSkillName(args.skillName)
---
> monster.setActiveSkillName(args.skillName)
392c392
< entity.burstParticleEmitter(args.emitter)
---
> animator.burstParticleEmitter(args.emitter)
404c404
< entity.setParticleEmitterActive(args.emitter, args.active)
---
> animator.setParticleEmitterActive(args.emitter, args.active)
416c416
< entity.playSound(args.sound)
---
> animator.playSound(args.sound)
427c427
< entity.setLightActive(args.light, args.active)
---
> animator.setLightActive(args.light, args.active)
monsters\returnhomestate.lua
25c25
< local minDistance = entity.configParameter("returnHome.minDistance") or 3
---
> local minDistance = config.getParameter("returnHome.minDistance") or 3
38c38
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
monsters\simplerangedattack.lua
11,13c11,13
< entity.configParameter("projectileType", "bullet-1"),
< entity.configParameter("projectileConfig", { power = root.evalFunction("monsterLevelPowerMultiplier", entity.level()) * 10 }),
< entity.configParameter("fireInterval", 1)
---
> config.getParameter("projectileType", "bullet-1"),
> config.getParameter("projectileConfig", { power = root.evalFunction("monsterLevelPowerMultiplier", monster.level()) * 10 }),
> config.getParameter("fireInterval", 1)
16,18c16,18
< rangedAttack.attackTime = entity.configParameter("attackTime", 1)
< rangedAttack.cooldownTime = entity.configParameter("cooldownTime", 0)
< rangedAttack.sourceOffset = entity.configParameter("projectileSourcePosition", {0, 0})
---
> rangedAttack.attackTime = config.getParameter("attackTime", 1)
> rangedAttack.cooldownTime = config.getParameter("cooldownTime", 0)
> rangedAttack.sourceOffset = config.getParameter("projectileSourcePosition", {0, 0})
21c21
< function rangedAttack.setConfig(projectile, config, fireInterval)
---
> function rangedAttack.setConfig(projectile, projectileConfig, fireInterval)
24,26c24,26
< if config then
< if config.power then
< config.power = root.evalFunction("monsterLevelPowerMultiplier", entity.level()) * config.power
---
> if projectileConfig then
> if projectileConfig.power then
> projectileConfig.power = root.evalFunction("monsterLevelPowerMultiplier", monster.level()) * projectileConfig.power
28c28
< rangedAttack.config = config
---
> rangedAttack.projectileConfig = projectileConfig
39,41c39,41
< function rangedAttack.fireOnce(projectile, config, aimVector, trackEntity)
< -- world.logInfo("Ranged attack firing with projectile %s, position %s, direction %s, trackEntity %s, config %s", projectile or rangedAttack.projectile, entity.toAbsolutePosition(rangedAttack.sourceOffset), aimVector or rangedAttack.aimVector, trackEntity or false, config or rangedAttack.config)
< world.spawnProjectile(projectile or rangedAttack.projectile, entity.toAbsolutePosition(rangedAttack.sourceOffset), entity.id(), aimVector or rangedAttack.aimVector, trackEntity or false, config or rangedAttack.config)
---
> function rangedAttack.fireOnce(projectile, projectileConfig, aimVector, trackEntity)
> -- 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)
> world.spawnProjectile(projectile or rangedAttack.projectile, monster.toAbsolutePosition(rangedAttack.sourceOffset), entity.id(), aimVector or rangedAttack.aimVector, trackEntity or false, projectileConfig or rangedAttack.projectileConfig)
monsters\tenant.lua
8,9c8,9
< entity.setDropPool(nil)
< entity.setDeathParticleBurst(nil)
---
> monster.setDropPool(nil)
> monster.setDeathParticleBurst(nil)
monsters\boss\bossmonster.lua
0a1,2
> require "/scripts/util.lua"
>
16,19c18,21
< self.queryTargetDistance = entity.configParameter("queryTargetDistance", 30)
< self.trackTargetDistance = entity.configParameter("trackTargetDistance")
< self.switchTargetDistance = entity.configParameter("switchTargetDistance")
< self.keepTargetInSight = entity.configParameter("keepTargetInSight", true)
---
> self.queryTargetDistance = config.getParameter("queryTargetDistance", 30)
> self.trackTargetDistance = config.getParameter("trackTargetDistance")
> self.switchTargetDistance = config.getParameter("switchTargetDistance")
> self.keepTargetInSight = config.getParameter("keepTargetInSight", true)
24c26
< local states = stateMachine.scanScripts(entity.configParameter("scripts"), "(%a+State)%.lua")
---
> local states = stateMachine.scanScripts(config.getParameter("scripts"), "(%a+State)%.lua")
32,33c34,35
< for _, skillName in pairs(entity.configParameter("skills")) do
< self.skillParameters[skillName] = entity.configParameter(skillName)
---
> for _, skillName in pairs(config.getParameter("skills")) do
> self.skillParameters[skillName] = config.getParameter(skillName)
37c39
< self.phases = entity.configParameter("phases")
---
> self.phases = config.getParameter("phases")
46c48
< entity.setDeathParticleBurst("deathPoof")
---
> monster.setDeathParticleBurst("deathPoof")
60c62
< if hasTarget() and entity.health() > 0 then
---
> if hasTarget() and status.resourcePositive("health") then
64c66
< if not hasTarget() and entity.health() > 0 and self.hadTarget then
---
> if not hasTarget() and status.resourcePositive("health") and self.hadTarget then
77c79
< if entity.health() > 0 then script.setUpdateDelta(10) end
---
> if status.resourcePositive("health") then script.setUpdateDelta(10) end
90c92
< if entity.health() <= 0 then
---
> if not status.resourcePositive("health") then
287c289
< elseif (math.abs(delta[1]) < jumpThresholdX and delta[2] > entity.configParameter("jumpTargetDistance")) then
---
> elseif (math.abs(delta[1]) < jumpThresholdX and delta[2] > config.getParameter("jumpTargetDistance")) then
292c294
< self.jumpTimer = entity.randomizeParameterRange("jumpTime")
---
> self.jumpTimer = util.randomInRange(config.getParameter("jumpTime"))
319c321
< blockLine = {entity.toAbsolutePosition({boundBox[3] + 0.25, boundBox[4]}), entity.toAbsolutePosition({boundBox[3] + 0.25, boundBox[2] - 1.0})}
---
> blockLine = {monster.toAbsolutePosition({boundBox[3] + 0.25, boundBox[4]}), monster.toAbsolutePosition({boundBox[3] + 0.25, boundBox[2] - 1.0})}
321c323
< blockLine = {entity.toAbsolutePosition({-boundBox[3] - 0.25, boundBox[4]}), entity.toAbsolutePosition({-boundBox[3] - 0.25, boundBox[2] - 1.0})}
---
> blockLine = {monster.toAbsolutePosition({-boundBox[3] - 0.25, boundBox[4]}), monster.toAbsolutePosition({-boundBox[3] - 0.25, boundBox[2] - 1.0})}
337c339
< topLine = {entity.toAbsolutePosition({boundBox[1], boundBox[4] + 0.5}), entity.toAbsolutePosition({boundBox[3], boundBox[4] + 0.5})}
---
> topLine = {monster.toAbsolutePosition({boundBox[1], boundBox[4] + 0.5}), monster.toAbsolutePosition({boundBox[3], boundBox[4] + 0.5})}
346c348
< fallLine = {entity.toAbsolutePosition({-0.5, boundBox[2] - 0.75}), entity.toAbsolutePosition({boundBox[3], boundBox[2] - 0.75})}
---
> fallLine = {monster.toAbsolutePosition({-0.5, boundBox[2] - 0.75}), monster.toAbsolutePosition({boundBox[3], boundBox[2] - 0.75})}
348c350
< fallLine = {entity.toAbsolutePosition({0.5, boundBox[2] - 0.75}), entity.toAbsolutePosition({-boundBox[3], boundBox[2] - 0.75})}
---
> fallLine = {monster.toAbsolutePosition({0.5, boundBox[2] - 0.75}), monster.toAbsolutePosition({-boundBox[3], boundBox[2] - 0.75})}
monsters\boss\crystalboss\crystalbossreset.lua
2,6c2,6
< entity.setAnimationState("eye", "idle")
< entity.setAnimationState("firstBeams", "idle")
< entity.setAnimationState("firstBeams", "idle")
< entity.setAnimationState("shell", "stage1")
< entity.setAnimationState("organs", "six")
---
> animator.setAnimationState("eye", "idle")
> animator.setAnimationState("firstBeams", "idle")
> animator.setAnimationState("firstBeams", "idle")
> animator.setAnimationState("shell", "stage1")
> animator.setAnimationState("organs", "six")
11c11
< world.callScriptedEntity(moontant, "entity.setDropPool", nil)
---
> world.callScriptedEntity(moontant, "monster.setDropPool", nil)
monsters\boss\crystalboss\diestate.lua
7c7
< rangedAttack.setConfig(entity.configParameter("projectiles.deathexplosion.type"), entity.configParameter("projectiles.deathexplosion.config"), 0.2)
---
> rangedAttack.setConfig(config.getParameter("projectiles.deathexplosion.type"), config.getParameter("projectiles.deathexplosion.config"), 0.2)
20c20
< entity.setAnimationState("crystalhum", "off")
---
> animator.setAnimationState("crystalhum", "off")
22,23c22,23
< entity.setAnimationState("shell", "stage"..currentPhase())
< entity.setAnimationState("eye", "hurt")
---
> animator.setAnimationState("shell", "stage"..currentPhase())
> animator.setAnimationState("eye", "hurt")
25,26c25,26
< entity.playSound("shatter")
< entity.playSound("death")
---
> animator.playSound("shatter")
> animator.playSound("death")
46c46
< entity.rotateGroup("all", angle, true)
---
> animator.rotateGroup("all", angle, true)
51c51
< entity.playSound("shatter")
---
> animator.playSound("shatter")
73c73
< world.spawnNpc(mcontroller.position(), "human", "minersurvivor", entity.level())
---
> world.spawnNpc(mcontroller.position(), "human", "minersurvivor", monster.level())
monsters\boss\crystalboss\skills\crystaldoublebeamattack.lua
9,10c9,10
< timer = entity.configParameter("crystalDoubleBeamAttack.skillTime", 8),
< rotateInterval = entity.configParameter("crystalDoubleBeamAttack.rotateInterval", 8),
---
> timer = config.getParameter("crystalDoubleBeamAttack.skillTime", 8),
> rotateInterval = config.getParameter("crystalDoubleBeamAttack.rotateInterval", 8),
22,25c22,25
< entity.setAnimationState("firstBeams", "windup")
< entity.setAnimationState("secondBeams", "windup")
< entity.setAnimationState("eye", "windup")
< entity.setAnimationState("beamglow", "on")
---
> animator.setAnimationState("firstBeams", "windup")
> animator.setAnimationState("secondBeams", "windup")
> animator.setAnimationState("eye", "windup")
> animator.setAnimationState("beamglow", "on")
27c27
< crystalDoubleBeamAttack.damagePerSecond = entity.configParameter("crystalDoubleBeamAttack.damagePerSecond")
---
> crystalDoubleBeamAttack.damagePerSecond = config.getParameter("crystalDoubleBeamAttack.damagePerSecond")
49c49
< local powerMultiplier = root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> local powerMultiplier = root.evalFunction("monsterLevelPowerMultiplier", monster.level())
54,56c54,56
< entity.setAnimationState("firstBeams", "winddown")
< entity.setAnimationState("secondBeams", "winddown")
< entity.setAnimationState("eye", "winddown")
---
> animator.setAnimationState("firstBeams", "winddown")
> animator.setAnimationState("secondBeams", "winddown")
> animator.setAnimationState("eye", "winddown")
76,78c76,78
< entity.setAnimationState("firstBeams", "idle")
< entity.setAnimationState("secondBeams", "idle")
< entity.setAnimationState("beamglow", "off")
---
> animator.setAnimationState("firstBeams", "idle")
> animator.setAnimationState("secondBeams", "idle")
> animator.setAnimationState("beamglow", "off")
84,87c84,87
< entity.rotateGroup("beam1", angle, instant)
< entity.rotateGroup("beam2", angle + math.pi, instant)
< entity.rotateGroup("beam3", -angle, instant)
< entity.rotateGroup("beam4", -angle + math.pi, instant)
---
> animator.rotateGroup("beam1", angle, instant)
> animator.rotateGroup("beam2", angle + math.pi, instant)
> animator.rotateGroup("beam3", -angle, instant)
> animator.rotateGroup("beam4", -angle + math.pi, instant)
117,124c117,124
< entity.setLightActive("beam1", active)
< entity.setLightActive("beam1-2", active)
< entity.setLightActive("beam2", active)
< entity.setLightActive("beam2-2", active)
< entity.setLightActive("beam3", active)
< entity.setLightActive("beam3-2", active)
< entity.setLightActive("beam4", active)
< entity.setLightActive("beam4-2", active)
---
> animator.setLightActive("beam1", active)
> animator.setLightActive("beam1-2", active)
> animator.setLightActive("beam2", active)
> animator.setLightActive("beam2-2", active)
> animator.setLightActive("beam3", active)
> animator.setLightActive("beam3-2", active)
> animator.setLightActive("beam4", active)
> animator.setLightActive("beam4-2", active)
128,129c128,129
< entity.setLightPosition(light, vec2.rotate({32, 0}, angle))
< entity.setLightPosition(light.."-2", vec2.rotate({20, 0}, angle))
---
> animator.setLightPosition(light, vec2.rotate({32, 0}, angle))
> animator.setLightPosition(light.."-2", vec2.rotate({20, 0}, angle))
monsters\boss\crystalboss\skills\crystalidleattack.lua
11c11
< idleTime = entity.configParameter("crystalIdleAttack.idleTime", 2.5)
---
> idleTime = config.getParameter("crystalIdleAttack.idleTime", 2.5)
monsters\boss\crystalboss\skills\crystalmoontantattack.lua
15c15
< timer = entity.configParameter("crystalMoontantAttack.skillTime", 0.3),
---
> timer = config.getParameter("crystalMoontantAttack.skillTime", 0.3),
17c17
< spawnAngle = entity.configParameter("crystalMoontantAttack.spawnAngle", 0.2),
---
> spawnAngle = config.getParameter("crystalMoontantAttack.spawnAngle", 0.2),
19,20c19,20
< rotateInterval = entity.configParameter("crystalMoontantAttack.rotateInterval", 0.1),
< rotateAngle = entity.configParameter("crystalMoontantAttack.rotateAngle", 0.02)
---
> rotateInterval = config.getParameter("crystalMoontantAttack.rotateInterval", 0.1),
> rotateAngle = config.getParameter("crystalMoontantAttack.rotateAngle", 0.02)
25,26c25,26
< entity.setAnimationState("eye", "windup")
< entity.playSound("spawnCharge")
---
> animator.setAnimationState("eye", "windup")
> animator.playSound("spawnCharge")
40c40
< local duration = entity.configParameter("crystalShatterAttack.skillTime", 1) - stateData.timer
---
> local duration = config.getParameter("crystalShatterAttack.skillTime", 1) - stateData.timer
42c42
< entity.rotateGroup("all", angle, true)
---
> animator.rotateGroup("all", angle, true)
48c48
< world.spawnProjectile("moontantspawn", mcontroller.position(), entity.id(), aimVector, false, {power = 0, level = entity.level()} )
---
> world.spawnProjectile("moontantspawn", mcontroller.position(), entity.id(), aimVector, false, {power = 0, level = monster.level()} )
51c51
< entity.setAnimationState("organs", crystalMoontantAttack.stateNames[self.moontants])
---
> animator.setAnimationState("organs", crystalMoontantAttack.stateNames[self.moontants])
53c53
< entity.playSound("spawnAdd")
---
> animator.playSound("spawnAdd")
60,61c60,61
< entity.rotateGroup("all", 0, true)
< entity.setAnimationState("eye", "winddown")
---
> animator.rotateGroup("all", 0, true)
> animator.setAnimationState("eye", "winddown")
monsters\boss\crystalboss\skills\crystalshatterattack.lua
8,11c8,11
< timer = entity.configParameter("crystalShatterAttack.skillTime", 1),
< rotateInterval = entity.configParameter("crystalShatterAttack.rotateInterval", 0.2),
< rotateAngle = entity.configParameter("crystalShatterAttack.rotateAngle", 0.05),
< bleedAmount = entity.configParameter("crystalShatterAttack.bleedAmount", 100)
---
> timer = config.getParameter("crystalShatterAttack.skillTime", 1),
> rotateInterval = config.getParameter("crystalShatterAttack.rotateInterval", 0.2),
> rotateAngle = config.getParameter("crystalShatterAttack.rotateAngle", 0.05),
> bleedAmount = config.getParameter("crystalShatterAttack.bleedAmount", 100)
16,17c16,17
< entity.setAnimationState("shell", "stage"..currentPhase())
< entity.setAnimationState("eye", "hurt")
---
> animator.setAnimationState("shell", "stage"..currentPhase())
> animator.setAnimationState("eye", "hurt")
19,20c19,20
< entity.playSound("shatter")
< entity.playSound("hurt")
---
> animator.playSound("shatter")
> animator.playSound("hurt")
39c39
< local duration = entity.configParameter("crystalShatterAttack.skillTime", 1) - stateData.timer
---
> local duration = config.getParameter("crystalShatterAttack.skillTime", 1) - stateData.timer
41c41
< entity.rotateGroup("all", angle, true)
---
> animator.rotateGroup("all", angle, true)
59,60c59,60
< entity.rotateGroup("all", 0, true)
< entity.setAnimationState("eye", "idle")
---
> animator.rotateGroup("all", 0, true)
> animator.setAnimationState("eye", "idle")
monsters\boss\crystalboss\skills\crystalsinebeamattack.lua
8,9c8,9
< timer = entity.configParameter("crystalSineBeamAttack.skillTime", 12),
< rotateInterval = entity.configParameter("crystalSineBeamAttack.rotateInterval", 12),
---
> timer = config.getParameter("crystalSineBeamAttack.skillTime", 12),
> rotateInterval = config.getParameter("crystalSineBeamAttack.rotateInterval", 12),
20,23c20,23
< entity.setAnimationState("firstBeams", "windup")
< entity.setAnimationState("secondBeams", "windup")
< entity.setAnimationState("eye", "windup")
< entity.setAnimationState("beamglow", "on")
---
> animator.setAnimationState("firstBeams", "windup")
> animator.setAnimationState("secondBeams", "windup")
> animator.setAnimationState("eye", "windup")
> animator.setAnimationState("beamglow", "on")
25c25
< crystalSineBeamAttack.damagePerSecond = entity.configParameter("crystalSineBeamAttack.damagePerSecond")
---
> crystalSineBeamAttack.damagePerSecond = config.getParameter("crystalSineBeamAttack.damagePerSecond")
48c48
< local powerMultiplier = root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> local powerMultiplier = root.evalFunction("monsterLevelPowerMultiplier", monster.level())
52,54c52,54
< entity.setAnimationState("firstBeams", "winddown")
< entity.setAnimationState("secondBeams", "winddown")
< entity.setAnimationState("eye", "winddown")
---
> animator.setAnimationState("firstBeams", "winddown")
> animator.setAnimationState("secondBeams", "winddown")
> animator.setAnimationState("eye", "winddown")
69,71c69,71
< entity.setAnimationState("firstBeams", "idle")
< entity.setAnimationState("secondBeams", "idle")
< entity.setAnimationState("beamglow", "off")
---
> animator.setAnimationState("firstBeams", "idle")
> animator.setAnimationState("secondBeams", "idle")
> animator.setAnimationState("beamglow", "off")
78c78
< entity.rotateGroup("beam1", angle, instant)
---
> animator.rotateGroup("beam1", angle, instant)
82c82
< entity.rotateGroup("beam2", angle + math.pi * 0.5, instant)
---
> animator.rotateGroup("beam2", angle + math.pi * 0.5, instant)
86c86
< entity.rotateGroup("beam3", angle + math.pi, instant)
---
> animator.rotateGroup("beam3", angle + math.pi, instant)
90c90
< entity.rotateGroup("beam4", angle + math.pi * 1.5, instant)
---
> animator.rotateGroup("beam4", angle + math.pi * 1.5, instant)
103,110c103,110
< entity.setLightActive("beam1", active)
< entity.setLightActive("beam1-2", active)
< entity.setLightActive("beam2", active)
< entity.setLightActive("beam2-2", active)
< entity.setLightActive("beam3", active)
< entity.setLightActive("beam3-2", active)
< entity.setLightActive("beam4", active)
< entity.setLightActive("beam4-2", active)
---
> animator.setLightActive("beam1", active)
> animator.setLightActive("beam1-2", active)
> animator.setLightActive("beam2", active)
> animator.setLightActive("beam2-2", active)
> animator.setLightActive("beam3", active)
> animator.setLightActive("beam3-2", active)
> animator.setLightActive("beam4", active)
> animator.setLightActive("beam4-2", active)
114,115c114,115
< entity.setLightPosition(light, vec2.rotate({0, 32}, angle))
< entity.setLightPosition(light.."-2", vec2.rotate({0, 20}, angle))
---
> animator.setLightPosition(light, vec2.rotate({0, 32}, angle))
> animator.setLightPosition(light.."-2", vec2.rotate({0, 20}, angle))
monsters\boss\crystalboss\skills\crystalsinglebeamattack.lua
11,12c11,12
< timer = entity.configParameter("crystalSingleBeamAttack.skillTime", 12),
< rotateInterval = entity.configParameter("crystalSingleBeamAttack.rotateInterval", 12),
---
> timer = config.getParameter("crystalSingleBeamAttack.skillTime", 12),
> rotateInterval = config.getParameter("crystalSingleBeamAttack.rotateInterval", 12),
17c17
< damagePerSecond = entity.configParameter("crystalSingleBeamAttack.damagePerSecond", 1600),
---
> damagePerSecond = config.getParameter("crystalSingleBeamAttack.damagePerSecond", 1600),
25,27c25,27
< entity.setAnimationState("firstBeams", "windup")
< entity.setAnimationState("eye", "windup")
< entity.setAnimationState("beamglow", "on")
---
> animator.setAnimationState("firstBeams", "windup")
> animator.setAnimationState("eye", "windup")
> animator.setAnimationState("beamglow", "on")
42,45c42,45
< entity.setLightActive("beam1", true)
< entity.setLightActive("beam1-2", true)
< entity.setLightActive("beam2", true)
< entity.setLightActive("beam2-2", true)
---
> animator.setLightActive("beam1", true)
> animator.setLightActive("beam1-2", true)
> animator.setLightActive("beam2", true)
> animator.setLightActive("beam2-2", true)
52c52
< local powerMultiplier = root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> local powerMultiplier = root.evalFunction("monsterLevelPowerMultiplier", monster.level())
57,58c57,58
< entity.setAnimationState("firstBeams", "winddown")
< entity.setAnimationState("eye", "winddown")
---
> animator.setAnimationState("firstBeams", "winddown")
> animator.setAnimationState("eye", "winddown")
73,80c73,80
< entity.setAnimationState("firstBeams", "idle")
< entity.setAnimationState("secondBeams", "idle")
< entity.setAnimationState("beamglow", "off")
<
< entity.setLightActive("beam1", false)
< entity.setLightActive("beam1-2", false)
< entity.setLightActive("beam2", false)
< entity.setLightActive("beam2-2", false)
---
> animator.setAnimationState("firstBeams", "idle")
> animator.setAnimationState("secondBeams", "idle")
> animator.setAnimationState("beamglow", "off")
>
> animator.setLightActive("beam1", false)
> animator.setLightActive("beam1-2", false)
> animator.setLightActive("beam2", false)
> animator.setLightActive("beam2-2", false)
85,87c85,87
< entity.rotateGroup("beam1", angle, instant)
< entity.setLightPosition("beam1", vec2.rotate({0, 32}, angle))
< entity.setLightPosition("beam1-2", vec2.rotate({0, 20}, angle))
---
> animator.rotateGroup("beam1", angle, instant)
> animator.setLightPosition("beam1", vec2.rotate({0, 32}, angle))
> animator.setLightPosition("beam1-2", vec2.rotate({0, 20}, angle))
90,92c90,92
< entity.rotateGroup("beam2", angle + math.pi, instant)
< entity.setLightPosition("beam2", vec2.rotate({0, 32}, angle + math.pi))
< entity.setLightPosition("beam2-2", vec2.rotate({0, 20}, angle + math.pi))
---
> animator.rotateGroup("beam2", angle + math.pi, instant)
> animator.setLightPosition("beam2", vec2.rotate({0, 32}, angle + math.pi))
> animator.setLightPosition("beam2-2", vec2.rotate({0, 20}, angle + math.pi))
monsters\boss\missile\missile.lua
2,4c2,4
< entity.setDamageOnTouch(false)
< entity.setDeathParticleBurst(entity.configParameter("deathParticles"))
< entity.setDeathSound("deathPuff")
---
> monster.setDamageOnTouch(false)
> monster.setDeathParticleBurst(config.getParameter("deathParticles"))
> monster.setDeathSound("deathPuff")
14c14
< self.rotateSpeed = entity.configParameter("rotateSpeed")
---
> self.rotateSpeed = config.getParameter("rotateSpeed")
16c16
< self.timeToLive = entity.configParameter("timeToLive", 4.0)
---
> self.timeToLive = config.getParameter("timeToLive", 4.0)
46c46
< entity.rotateGroup("body", visualAngle, true)
---
> animator.rotateGroup("body", visualAngle, true)
82c82
< local power = entity.configParameter("explosionPower") * root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> local power = config.getParameter("explosionPower") * root.evalFunction("monsterLevelPowerMultiplier", monster.level())
monsters\boss\penguin\behavior.lua
9c9
< entity.setDeathParticleBurst("deathPoof")
---
> monster.setDeathParticleBurst("deathPoof")
59c59
< local deathexplosion = entity.configParameter("deathexplosion")
---
> local deathexplosion = config.getParameter("deathexplosion")
70c70
< local gunBaseOffset = entity.configParameter("gunBaseOffset")
---
> local gunBaseOffset = config.getParameter("gunBaseOffset")
72c72
< local gunBasePosition = entity.toAbsolutePosition(gunBaseOffset)
---
> local gunBasePosition = monster.toAbsolutePosition(gunBaseOffset)
74c74
< local gunBarrelOffset = entity.configParameter("gunBarrelOffset")
---
> local gunBarrelOffset = config.getParameter("gunBarrelOffset")
76c76
< local gunBarrelPosition = entity.toAbsolutePosition(gunBarrelOffset)
---
> local gunBarrelPosition = monster.toAbsolutePosition(gunBarrelOffset)
82,83c82,83
< entity.rotateGroup("weapon", -desiredAimAngle)
< entity.rotateGroup("arms", -desiredAimAngle)
---
> animator.rotateGroup("weapon", -desiredAimAngle)
> animator.rotateGroup("arms", -desiredAimAngle)
85c85
< local aimAngle = -entity.currentRotationAngle("weapon")
---
> local aimAngle = -animator.currentRotationAngle("weapon")
94,95c94,95
< if entity.configParameter("hasEmptyHand") then
< entity.rotateGroup("emptyHand", math.pi / 2.0)
---
> if config.getParameter("hasEmptyHand") then
> animator.rotateGroup("emptyHand", math.pi / 2.0)
111c111
< entity.setAnimationState("movement", animationName)
---
> animator.setAnimationState("movement", animationName)
115,116c115,116
< entity.rotateGroup("weapon", -math.pi / 2.0, immediate)
< entity.rotateGroup("arms", 0, immediate)
---
> animator.rotateGroup("weapon", -math.pi / 2.0, immediate)
> animator.rotateGroup("arms", 0, immediate)
monsters\boss\penguinminiufo\penguinminiufo.lua
2,3c2,3
< entity.setDeathParticleBurst("deathPoof")
< entity.setAnimationState("movement", "flying")
---
> monster.setDeathParticleBurst("deathPoof")
> animator.setAnimationState("movement", "flying")
9c9
< if entity.health() <= 0 then return true end
---
> if not status.resourcePositive("health") then return true end
29c29
< entity.flyTo(target)
---
> monster.flyTo(target)
monsters\boss\penguintank\behavior.lua
7,8c7,8
< entity.setDeathParticleBurst("deathPoof")
< entity.setAnimationState("movement", "invisible")
---
> monster.setDeathParticleBurst("deathPoof")
> animator.setAnimationState("movement", "invisible")
18c18
< entity.setAnimationState("movement", "open")
---
> animator.setAnimationState("movement", "open")
24c24
< if entity.animationState("movement") == "open" then
---
> if animator.animationState("movement") == "open" then
36c36
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
41,42c41,42
< local gunBaseOffset = entity.configParameter("gunBaseOffset")
< local gunBasePosition = entity.toAbsolutePosition(gunBaseOffset)
---
> local gunBaseOffset = config.getParameter("gunBaseOffset")
> local gunBasePosition = monster.toAbsolutePosition(gunBaseOffset)
48c48
< entity.rotateGroup("gun", targetAngle)
---
> animator.rotateGroup("gun", targetAngle)
50,51c50,51
< local gunBarrelOffset = entity.configParameter("gunBarrelOffset")
< local gunBarrelPosition = entity.toAbsolutePosition(gunBarrelOffset)
---
> local gunBarrelOffset = config.getParameter("gunBarrelOffset")
> local gunBarrelPosition = monster.toAbsolutePosition(gunBarrelOffset)
53c53
< local aimAngle = entity.currentRotationAngle("gun")
---
> local aimAngle = animator.currentRotationAngle("gun")
68c68
< local range = entity.configParameter("firingRange")
---
> local range = config.getParameter("firingRange")
93c93
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
107c107
< local range = entity.configParameter("firingRange")
---
> local range = config.getParameter("firingRange")
137c137
< if entity.animationState("movement") ~= "attack" and stateData.timer <= 0 then
---
> if animator.animationState("movement") ~= "attack" and stateData.timer <= 0 then
139c139
< entity.setAnimationState("movement", "attack")
---
> animator.setAnimationState("movement", "attack")
monsters\boss\penguinufo\diestate.lua
7c7
< rangedAttack.setConfig(entity.configParameter("projectiles.deathexplosion.type"), entity.configParameter("projectiles.deathexplosion.config"), 0.2)
---
> rangedAttack.setConfig(config.getParameter("projectiles.deathexplosion.type"), config.getParameter("projectiles.deathexplosion.config"), 0.2)
16c16
< entity.setAnimationState("movesound", "off")
---
> animator.setAnimationState("movesound", "off")
27c27
< entity.rotateGroup("all", -13 * math.pi / 180)
---
> animator.rotateGroup("all", -13 * math.pi / 180)
43c43
< entity.flyTo(targetPosition)
---
> monster.flyTo(targetPosition)
45c45
< entity.rotateGroup("all", sinAngle * inverseTimer * math.pi / 180)
---
> animator.rotateGroup("all", sinAngle * inverseTimer * math.pi / 180)
47c47
< entity.setDamageOnTouch(true)
---
> monster.setDamageOnTouch(true)
49c49
< entity.rotateGroup("all", -13 * math.pi / 180)
---
> animator.rotateGroup("all", -13 * math.pi / 180)
58c58
< local explosionPosition = vec2.rotate(explosionOffset, -entity.currentRotationAngle("all"))
---
> local explosionPosition = vec2.rotate(explosionOffset, -animator.currentRotationAngle("all"))
monsters\boss\penguinufo\skills\ufomovefireattack.lua
7c7
< rangedAttack.setConfig(entity.configParameter("ufoMoveFireAttack.projectile.type"), entity.configParameter("ufoMoveFireAttack.projectile.config"), entity.configParameter("ufoMoveFireAttack.fireInterval"))
---
> rangedAttack.setConfig(config.getParameter("ufoMoveFireAttack.projectile.type"), config.getParameter("ufoMoveFireAttack.projectile.config"), config.getParameter("ufoMoveFireAttack.fireInterval"))
11,13c11,13
< bobTime = entity.configParameter("ufoMoveFireAttack.bobTime"),
< bobHeight = entity.configParameter("ufoMoveFireAttack.bobHeight"),
< skillTime = entity.configParameter("ufoMoveFireAttack.skillTime"),
---
> bobTime = config.getParameter("ufoMoveFireAttack.bobTime"),
> bobHeight = config.getParameter("ufoMoveFireAttack.bobHeight"),
> skillTime = config.getParameter("ufoMoveFireAttack.skillTime"),
16c16
< cruiseDistance = entity.configParameter("cruiseDistance")
---
> cruiseDistance = config.getParameter("cruiseDistance")
21c21
< entity.setActiveSkillName(nil)
---
> monster.setActiveSkillName(nil)
27c27
< local projectileOffset = entity.configParameter("ufoMoveFireAttack.projectileOffset")
---
> local projectileOffset = config.getParameter("ufoMoveFireAttack.projectileOffset")
29c29
< local toTarget = vec2.norm(world.distance(self.targetPosition, entity.toAbsolutePosition(projectileOffset)))
---
> local toTarget = vec2.norm(world.distance(self.targetPosition, monster.toAbsolutePosition(projectileOffset)))
monsters\boss\penguinufo\skills\ufopulsecannonattack.lua
7c7
< rangedAttack.setConfig(entity.configParameter("ufoPulseCannonAttack.projectile.type"), entity.configParameter("ufoPulseCannonAttack.projectile.config"), 0.2)
---
> rangedAttack.setConfig(config.getParameter("ufoPulseCannonAttack.projectile.type"), config.getParameter("ufoPulseCannonAttack.projectile.config"), 0.2)
13c13
< cruiseDistance = entity.configParameter("cruiseDistance"),
---
> cruiseDistance = config.getParameter("cruiseDistance"),
19c19
< entity.setActiveSkillName("ufoPulseCannonAttack")
---
> monster.setActiveSkillName("ufoPulseCannonAttack")
monsters\boss\penguinufo\skills\uforeinforcementsattack.lua
8c8
< if #reinforcements >= entity.configParameter("ufoReinforcementsAttack.maxReinforcements") then
---
> if #reinforcements >= config.getParameter("ufoReinforcementsAttack.maxReinforcements") then
16c16
< spawnDistance = entity.configParameter("ufoReinforcementsAttack.spawnDistance")
---
> spawnDistance = config.getParameter("ufoReinforcementsAttack.spawnDistance")
45c45
< entity.setActiveSkillName("ufoReinforcementsAttack")
---
> monster.setActiveSkillName("ufoReinforcementsAttack")
68c68
< self.minionState.slots[i] = world.spawnMonster("penguinMiniUfo", mcontroller.position(), {level = entity.level()})
---
> self.minionState.slots[i] = world.spawnMonster("penguinMiniUfo", mcontroller.position(), {level = monster.level()})
98c98
< rangedAttack.fireOnce(entity.configParameter("ufoReinforcementsAttack.projectiles.generalspawn.type"), entity.configParameter("ufoReinforcementsAttack.projectiles.generalspawn.config"), nil, true)
---
> rangedAttack.fireOnce(config.getParameter("ufoReinforcementsAttack.projectiles.generalspawn.type"), config.getParameter("ufoReinforcementsAttack.projectiles.generalspawn.config"), nil, true)
100c100
< rangedAttack.fireOnce(entity.configParameter("ufoReinforcementsAttack.projectiles.rockettrooperspawn.type"), entity.configParameter("ufoReinforcementsAttack.projectiles.rockettrooperspawn.config"), nil, true)
---
> rangedAttack.fireOnce(config.getParameter("ufoReinforcementsAttack.projectiles.rockettrooperspawn.type"), config.getParameter("ufoReinforcementsAttack.projectiles.rockettrooperspawn.config"), nil, true)
102c102
< rangedAttack.fireOnce(entity.configParameter("ufoReinforcementsAttack.projectiles.trooperspawn.type"), entity.configParameter("ufoReinforcementsAttack.projectiles.trooperspawn.config"), nil, true)
---
> rangedAttack.fireOnce(config.getParameter("ufoReinforcementsAttack.projectiles.trooperspawn.type"), config.getParameter("ufoReinforcementsAttack.projectiles.trooperspawn.config"), nil, true)
monsters\boss\penguinufo\skills\ufoslamattack.lua
8,12c8,12
< slamHeight = entity.configParameter("ufoSlamAttack.slamHeight"),
< riseSpeed = entity.configParameter("ufoSlamAttack.riseSpeed"),
< slamSpeed = entity.configParameter("ufoSlamAttack.slamSpeed"),
< timer = entity.configParameter("ufoSlamAttack.skillTime"),
< stunDuration = entity.configParameter("ufoSlamAttack.stunDuration"),
---
> slamHeight = config.getParameter("ufoSlamAttack.slamHeight"),
> riseSpeed = config.getParameter("ufoSlamAttack.riseSpeed"),
> slamSpeed = config.getParameter("ufoSlamAttack.slamSpeed"),
> timer = config.getParameter("ufoSlamAttack.skillTime"),
> stunDuration = config.getParameter("ufoSlamAttack.stunDuration"),
19c19
< entity.setActiveSkillName("ufoSlamAttack")
---
> monster.setActiveSkillName("ufoSlamAttack")
64c64
< entity.setParticleEmitterActive("falling", true)
---
> animator.setParticleEmitterActive("falling", true)
75c75
< if mcontroller.onGround() then -- and not entity.isFiring() then
---
> if mcontroller.onGround() then -- and not monster.isFiring() then
77,78c77,78
< entity.playSound("landing")
< entity.burstParticleEmitter("landing")
---
> animator.playSound("landing")
> animator.burstParticleEmitter("landing")
81,83c81,83
< entity.setDamageOnTouch(false)
< entity.setParticleEmitterActive("falling", false)
< entity.setParticleEmitterActive("stunned", true)
---
> monster.setDamageOnTouch(false)
> animator.setParticleEmitterActive("falling", false)
> animator.setParticleEmitterActive("stunned", true)
89c89
< entity.setDamageOnTouch(true)
---
> monster.setDamageOnTouch(true)
91c91
< mcontroller.controlApproachYVelocity(-entity.configParameter("ufoSlamAttack.slamSpeed"), 100)
---
> mcontroller.controlApproachYVelocity(-config.getParameter("ufoSlamAttack.slamSpeed"), 100)
99,100c99,100
< entity.setDamageOnTouch(false)
< entity.setParticleEmitterActive("stunned", false)
---
> monster.setDamageOnTouch(false)
> animator.setParticleEmitterActive("stunned", false)
105c105
< local yOffsetRange = entity.configParameter("targetYOffsetRange")
---
> local yOffsetRange = config.getParameter("targetYOffsetRange")
monsters\boss\penguinufo\skills\ufospawntanksattack.lua
7c7
< entity.setAnimationState("movement", "phase1")
---
> animator.setAnimationState("movement", "phase1")
13c13
< entity.setAnimationState("movement", "phase"..currentPhase())
---
> animator.setAnimationState("movement", "phase"..currentPhase())
18c18
< spawnDistance = entity.configParameter("ufoSpawnTanksAttack.spawnDistance"),
---
> spawnDistance = config.getParameter("ufoSpawnTanksAttack.spawnDistance"),
24c24
< entity.setActiveSkillName("ufoSpawnTanksAttack")
---
> monster.setActiveSkillName("ufoSpawnTanksAttack")
43c43
< rangedAttack.fireOnce(entity.configParameter("ufoSpawnTanksAttack.projectiles.tankspawn.type"), entity.configParameter("ufoSpawnTanksAttack.projectiles.tankspawn.config"), nil, true)
---
> rangedAttack.fireOnce(config.getParameter("ufoSpawnTanksAttack.projectiles.tankspawn.type"), config.getParameter("ufoSpawnTanksAttack.projectiles.tankspawn.config"), nil, true)
monsters\boss\penguinufo\skills\ufoswoopattack.lua
9c9
< swoopTime = entity.configParameter("ufoSwoopAttack.swoopTime"),
---
> swoopTime = config.getParameter("ufoSwoopAttack.swoopTime"),
15c15
< entity.setActiveSkillName("ufoSwoopAttack")
---
> monster.setActiveSkillName("ufoSwoopAttack")
26c26
< entity.setDamageOnTouch(true)
---
> monster.setDamageOnTouch(true)
49c49
< entity.setDamageOnTouch(false)
---
> monster.setDamageOnTouch(false)
monsters\boss\penguinufo\skills\ufoteleportattack.lua
7c7
< entity.burstParticleEmitter("teleport")
---
> animator.burstParticleEmitter("teleport")
9c9
< timer = entity.configParameter("ufoTeleportAttack.skillTime")
---
> timer = config.getParameter("ufoTeleportAttack.skillTime")
14c14
< entity.setActiveSkillName("ufoTeleportAttack")
---
> monster.setActiveSkillName("ufoTeleportAttack")
18c18
< if stateData.timer > entity.configParameter("ufoTeleportAttack.skillTime") - 0.55 then
---
> if stateData.timer > config.getParameter("ufoTeleportAttack.skillTime") - 0.55 then
21,22c21,22
< if entity.animationState("movement") ~= "invisible" then
< entity.setAnimationState("movement", "invisible")
---
> if animator.animationState("movement") ~= "invisible" then
> animator.setAnimationState("movement", "invisible")
36c36
< entity.burstParticleEmitter("teleport")
---
> animator.burstParticleEmitter("teleport")
49c49
< entity.setAnimationState("movement", "phase"..currentPhase())
---
> animator.setAnimationState("movement", "phase"..currentPhase())
monsters\boss\robotboss\idlestate.lua
13c13
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
15c15
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
monsters\boss\robotboss\skills\robotdashattack.lua
13,16c13,16
< edgeDistance = entity.configParameter("robotDashAttack.edgeDistance"),
< dashDistance = entity.configParameter("robotDashAttack.dashDistance"),
< dashSpeed = entity.configParameter("robotDashAttack.dashSpeed"),
< windupTimer = entity.configParameter("robotDashAttack.windupTime"),
---
> edgeDistance = config.getParameter("robotDashAttack.edgeDistance"),
> dashDistance = config.getParameter("robotDashAttack.dashDistance"),
> dashSpeed = config.getParameter("robotDashAttack.dashSpeed"),
> windupTimer = config.getParameter("robotDashAttack.windupTime"),
22c22
< stunTime = entity.configParameter("robotDashAttack.stunTime")
---
> stunTime = config.getParameter("robotDashAttack.stunTime")
28c28
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
30,31c30,31
< entity.setParticleEmitterOffsetRegion("dashstun", boundingBox())
< entity.setParticleEmitterOffsetRegion("dashParticles", boundingBox())
---
> animator.setParticleEmitterOffsetRegion("dashstun", boundingBox())
> animator.setParticleEmitterOffsetRegion("dashParticles", boundingBox())
33c33
< entity.setActiveSkillName("robotDashAttack")
---
> monster.setActiveSkillName("robotDashAttack")
51,52c51,52
< entity.setAnimationState("dashing", "off")
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("dashing", "off")
> animator.setAnimationState("movement", "move")
57,58c57,58
< if stateData.windupTimer == entity.configParameter("robotDashAttack.windupTime") then
< entity.setAnimationState("movement", "punch")
---
> if stateData.windupTimer == config.getParameter("robotDashAttack.windupTime") then
> animator.setAnimationState("movement", "punch")
68,70c68,70
< entity.setAnimationState("dashing", "stunned")
< entity.setAnimationState("movement", "idle")
< entity.setParticleEmitterActive("dashstun", true)
---
> animator.setAnimationState("dashing", "stunned")
> animator.setAnimationState("movement", "idle")
> animator.setParticleEmitterActive("dashstun", true)
74c74
< entity.setAnimationState("dashing", "off")
---
> animator.setAnimationState("dashing", "off")
83,85c83,85
< entity.setParticleEmitterActive("dashParticles", true)
< entity.setAnimationState("dashing", "on")
< entity.setDamageOnTouch(true)
---
> animator.setParticleEmitterActive("dashParticles", true)
> animator.setAnimationState("dashing", "on")
> monster.setDamageOnTouch(true)
94,97c94,97
< entity.setParticleEmitterActive("dashParticles", false)
< entity.setAnimationState("dashing", "off")
< entity.setAnimationState("movement", "idle")
< entity.setDamageOnTouch(false)
---
> animator.setParticleEmitterActive("dashParticles", false)
> animator.setAnimationState("dashing", "off")
> animator.setAnimationState("movement", "idle")
> monster.setDamageOnTouch(false)
104c104
< stateData.windupTimer = entity.configParameter("robotDashAttack.windupTime")
---
> stateData.windupTimer = config.getParameter("robotDashAttack.windupTime")
107,108c107,108
< entity.burstParticleEmitter("crashing")
< entity.playSound("crash")
---
> animator.burstParticleEmitter("crashing")
> animator.playSound("crash")
115,117c115,117
< entity.setParticleEmitterActive("dashstun", false)
< entity.setParticleEmitterActive("dashParticles", false)
< entity.setAnimationState("dashing", "off")
---
> animator.setParticleEmitterActive("dashstun", false)
> animator.setParticleEmitterActive("dashParticles", false)
> animator.setAnimationState("dashing", "off")
119c119
< entity.setDamageOnTouch(false)
---
> monster.setDamageOnTouch(false)
121c121
< entity.setActiveSkillName("")
---
> monster.setActiveSkillName("")
monsters\boss\robotboss\skills\robotelectricburstattack.lua
6,7c6,7
< riseHeight = entity.configParameter("robotElectricBurstAttack.riseHeight"),
< riseSpeed = entity.configParameter("robotElectricBurstAttack.riseSpeed"),
---
> riseHeight = config.getParameter("robotElectricBurstAttack.riseHeight"),
> riseSpeed = config.getParameter("robotElectricBurstAttack.riseSpeed"),
10,11c10,11
< skillDuration = entity.configParameter("robotElectricBurstAttack.skillDuration"),
< angleCycle = entity.configParameter("robotElectricBurstAttack.angleCycle"),
---
> skillDuration = config.getParameter("robotElectricBurstAttack.skillDuration"),
> angleCycle = config.getParameter("robotElectricBurstAttack.angleCycle"),
13c13
< fireInterval = entity.configParameter("robotElectricBurstAttack.fireInterval"),
---
> fireInterval = config.getParameter("robotElectricBurstAttack.fireInterval"),
15,17c15,17
< maxFireAngle = entity.configParameter("robotElectricBurstAttack.maxFireAngle"),
< projectileCount = entity.configParameter("robotElectricBurstAttack.projectileCount"),
< winddownTimer = entity.configParameter("robotElectricBurstAttack.winddownTime")
---
> maxFireAngle = config.getParameter("robotElectricBurstAttack.maxFireAngle"),
> projectileCount = config.getParameter("robotElectricBurstAttack.projectileCount"),
> winddownTimer = config.getParameter("robotElectricBurstAttack.winddownTime")
36c36
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
38c38
< entity.setActiveSkillName("robotElectricBurstAttack")
---
> monster.setActiveSkillName("robotElectricBurstAttack")
49c49
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
55c55
< entity.setAnimationState("electricBurst", "on")
---
> animator.setAnimationState("electricBurst", "on")
57c57
< entity.setAnimationState("movement", "windup")
---
> animator.setAnimationState("movement", "windup")
84c84
< entity.playSound("electricBurst")
---
> animator.playSound("electricBurst")
93,94c93,94
< if stateData.winddownTimer == entity.configParameter("robotElectricBurstAttack.winddownTime") then
< entity.setAnimationState("movement", "winddown")
---
> if stateData.winddownTimer == config.getParameter("robotElectricBurstAttack.winddownTime") then
> animator.setAnimationState("movement", "winddown")
109,110c109,110
< local projectileType = entity.configParameter("robotElectricBurstAttack.projectile.type")
< local projectileConfig = entity.configParameter("robotElectricBurstAttack.projectile.config")
---
> local projectileType = config.getParameter("robotElectricBurstAttack.projectile.type")
> local projectileConfig = config.getParameter("robotElectricBurstAttack.projectile.config")
113c113
< projectileConfig.power = projectileConfig.power * root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> projectileConfig.power = projectileConfig.power * root.evalFunction("monsterLevelPowerMultiplier", monster.level())
116c116
< local innerRadius = entity.configParameter("robotElectricBurstAttack.projectile.innerRadius")
---
> local innerRadius = config.getParameter("robotElectricBurstAttack.projectile.innerRadius")
133c133
< entity.setAnimationState("electricBurst", "off")
---
> animator.setAnimationState("electricBurst", "off")
135c135
< entity.setActiveSkillName("")
---
> monster.setActiveSkillName("")
monsters\boss\robotboss\skills\robotflamethrowerattack.lua
8,10c8,10
< windupTimer = entity.configParameter("robotFlamethrowerAttack.windupTime"),
< winddownTimer = entity.configParameter("robotFlamethrowerAttack.winddownTime"),
< distanceRange = entity.configParameter("robotFlamethrowerAttack.distanceRange"),
---
> windupTimer = config.getParameter("robotFlamethrowerAttack.windupTime"),
> winddownTimer = config.getParameter("robotFlamethrowerAttack.winddownTime"),
> distanceRange = config.getParameter("robotFlamethrowerAttack.distanceRange"),
12,13c12,13
< skillDuration = entity.configParameter("robotFlamethrowerAttack.skillDuration"),
< angleCycle = entity.configParameter("robotFlamethrowerAttack.angleCycle"),
---
> skillDuration = config.getParameter("robotFlamethrowerAttack.skillDuration"),
> angleCycle = config.getParameter("robotFlamethrowerAttack.angleCycle"),
15c15
< fireInterval = entity.configParameter("robotFlamethrowerAttack.fireInterval"),
---
> fireInterval = config.getParameter("robotFlamethrowerAttack.fireInterval"),
17c17
< maxFireAngle = entity.configParameter("robotFlamethrowerAttack.maxFireAngle"),
---
> maxFireAngle = config.getParameter("robotFlamethrowerAttack.maxFireAngle"),
25c25
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
27c27
< entity.setActiveSkillName("robotFlamethrowerAttack")
---
> monster.setActiveSkillName("robotFlamethrowerAttack")
38,39c38,39
< if stateData.windupTimer == entity.configParameter("robotFlamethrowerAttack.windupTime") then
< entity.setAnimationState("flamethrower", "windup")
---
> if stateData.windupTimer == config.getParameter("robotFlamethrowerAttack.windupTime") then
> animator.setAnimationState("flamethrower", "windup")
46,47c46,47
< walkSpeed = entity.configParameter("robotFlamethrowerAttack.moveSpeed"),
< runSpeed = entity.configParameter("robotFlamethrowerAttack.moveSpeed")
---
> walkSpeed = config.getParameter("robotFlamethrowerAttack.moveSpeed"),
> runSpeed = config.getParameter("robotFlamethrowerAttack.moveSpeed")
51c51
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
55c55
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
57c57
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
61c61
< entity.setAnimationState("flameSound", "off")
---
> animator.setAnimationState("flameSound", "off")
63,64c63,64
< if stateData.winddownTimer == entity.configParameter("robotFlamethrowerAttack.winddownTime") then
< entity.setAnimationState("flamethrower", "winddown")
---
> if stateData.winddownTimer == config.getParameter("robotFlamethrowerAttack.winddownTime") then
> animator.setAnimationState("flamethrower", "winddown")
73c73
< entity.setAnimationState("flameSound", "on")
---
> animator.setAnimationState("flameSound", "on")
96c96
< stateData.facingTimer = entity.configParameter("robotFlamethrowerAttack.changeFacingTime")
---
> stateData.facingTimer = config.getParameter("robotFlamethrowerAttack.changeFacingTime")
102,105c102,105
< local projectileType = entity.configParameter("robotFlamethrowerAttack.projectile.type")
< local projectileConfig = entity.configParameter("robotFlamethrowerAttack.projectile.config")
< local sourcePosition = entity.configParameter("projectileSourcePosition")
< local sourceOffset = entity.configParameter("projectileSourceOffset")
---
> local projectileType = config.getParameter("robotFlamethrowerAttack.projectile.type")
> local projectileConfig = config.getParameter("robotFlamethrowerAttack.projectile.config")
> local sourcePosition = config.getParameter("projectileSourcePosition")
> local sourceOffset = config.getParameter("projectileSourceOffset")
108c108
< projectileConfig.power = projectileConfig.power * root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> projectileConfig.power = projectileConfig.power * root.evalFunction("monsterLevelPowerMultiplier", monster.level())
112c112
< entity.rotateGroup("projectileAim", animationAngle)
---
> animator.rotateGroup("projectileAim", animationAngle)
114c114
< local currentRotationAngle = entity.currentRotationAngle("projectileAim")
---
> local currentRotationAngle = animator.currentRotationAngle("projectileAim")
120c120
< world.spawnProjectile(projectileType, entity.toAbsolutePosition(sourcePosition), entity.id(), aimVector, true, projectileConfig)
---
> world.spawnProjectile(projectileType, monster.toAbsolutePosition(sourcePosition), entity.id(), aimVector, true, projectileConfig)
124,125c124,125
< entity.setAnimationState("flameSound", "off")
< entity.setAnimationState("flamethrower", "winddown")
---
> animator.setAnimationState("flameSound", "off")
> animator.setAnimationState("flamethrower", "winddown")
127c127
< entity.setActiveSkillName("")
---
> monster.setActiveSkillName("")
monsters\boss\robotboss\skills\robotmissilebarrageattack.lua
7c7
< local missileCount = entity.configParameter("robotMissileBarrageAttack.missileCount")
---
> local missileCount = config.getParameter("robotMissileBarrageAttack.missileCount")
9c9
< missileCount = entity.configParameter("robotMissileBarrageAttack.improvedMissileCount")
---
> missileCount = config.getParameter("robotMissileBarrageAttack.improvedMissileCount")
14,16c14,16
< fireTimer = entity.configParameter("robotMissileBarrageAttack.fireTime"),
< fireInterval = entity.configParameter("robotMissileBarrageAttack.fireTime"),
< spawnOffset = entity.configParameter("robotMissileBarrageAttack.spawnOffset")
---
> fireTimer = config.getParameter("robotMissileBarrageAttack.fireTime"),
> fireInterval = config.getParameter("robotMissileBarrageAttack.fireTime"),
> spawnOffset = config.getParameter("robotMissileBarrageAttack.spawnOffset")
22c22
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
24c24
< entity.setActiveSkillName("robotMissileBarrageAttack")
---
> monster.setActiveSkillName("robotMissileBarrageAttack")
34c34
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
40c40
< local missileId = world.spawnMonster("missile", entity.toAbsolutePosition(stateData.spawnOffset), {level = entity.level()})
---
> local missileId = world.spawnMonster("missile", monster.toAbsolutePosition(stateData.spawnOffset), {level = monster.level()})
43c43
< entity.playSound("missile")
---
> animator.playSound("missile")
monsters\boss\robotboss\skills\robotpunchattack.lua
8,10c8,10
< distanceRange = entity.configParameter("robotPunchAttack.distanceRange"),
< winddownTimer = entity.configParameter("robotPunchAttack.winddownTime"),
< windupTimer = entity.configParameter("robotPunchAttack.windupTime"),
---
> distanceRange = config.getParameter("robotPunchAttack.distanceRange"),
> winddownTimer = config.getParameter("robotPunchAttack.winddownTime"),
> windupTimer = config.getParameter("robotPunchAttack.windupTime"),
17c17
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
19c19
< entity.setActiveSkillName("robotPunchAttack")
---
> monster.setActiveSkillName("robotPunchAttack")
31c31
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
35c35
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
43,44c43,44
< if stateData.windupTimer == entity.configParameter("robotPunchAttack.windupTime") then
< entity.setAnimationState("movement", "punch")
---
> if stateData.windupTimer == config.getParameter("robotPunchAttack.windupTime") then
> animator.setAnimationState("movement", "punch")
48c48
< if stateData.winddownTimer == entity.configParameter("robotPunchAttack.winddownTime") then
---
> if stateData.winddownTimer == config.getParameter("robotPunchAttack.winddownTime") then
50c50
< entity.playSound("punch")
---
> animator.playSound("punch")
63,65c63,65
< local projectileType = entity.configParameter("robotPunchAttack.projectile.type")
< local projectileConfig = entity.configParameter("robotPunchAttack.projectile.config")
< local projectileOffset = entity.configParameter("robotPunchAttack.projectile.offset")
---
> local projectileType = config.getParameter("robotPunchAttack.projectile.type")
> local projectileConfig = config.getParameter("robotPunchAttack.projectile.config")
> local projectileOffset = config.getParameter("robotPunchAttack.projectile.offset")
68c68
< projectileConfig.power = projectileConfig.power * root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> projectileConfig.power = projectileConfig.power * root.evalFunction("monsterLevelPowerMultiplier", monster.level())
71c71
< world.spawnProjectile(projectileType, entity.toAbsolutePosition(projectileOffset), entity.id(), {direction, 0}, true, projectileConfig)
---
> world.spawnProjectile(projectileType, monster.toAbsolutePosition(projectileOffset), entity.id(), {direction, 0}, true, projectileConfig)
75c75
< entity.setActiveSkillName("")
---
> monster.setActiveSkillName("")
monsters\bugs\behavior.lua
4,7c4,7
< self.riseSpeed = entity.configParameter("buzzing.riseSpeed")
< self.minGroundDistance = entity.configParameter("buzzing.minGroundDistance")
< self.maxGroundDistance = entity.configParameter("buzzing.maxGroundDistance")
< self.fallSpeed = entity.configParameter("buzzing.fallSpeed")
---
> self.riseSpeed = config.getParameter("buzzing.riseSpeed")
> self.minGroundDistance = config.getParameter("buzzing.minGroundDistance")
> self.maxGroundDistance = config.getParameter("buzzing.maxGroundDistance")
> self.fallSpeed = config.getParameter("buzzing.fallSpeed")
10,11c10,11
< self.changeDirSpeed = entity.configParameter("buzzing.changeDirSpeed")
< self.wanderDistance = entity.configParameter("buzzing.wanderDistance")
---
> self.changeDirSpeed = config.getParameter("buzzing.changeDirSpeed")
> self.wanderDistance = config.getParameter("buzzing.wanderDistance")
14,15c14,15
< self.rotationSpeed = entity.configParameter("buzzing.rotationSpeed")
< self.rotationChangeInterval = entity.configParameter("buzzing.rotationChangeInterval")
---
> self.rotationSpeed = config.getParameter("buzzing.rotationSpeed")
> self.rotationChangeInterval = config.getParameter("buzzing.rotationChangeInterval")
18c18
< self.flySpeed = entity.configParameter("buzzing.flySpeed")
---
> self.flySpeed = config.getParameter("buzzing.flySpeed")
60c60
< entity.rotateGroup("body", self.baseRotation + angle)
---
> animator.rotateGroup("body", self.baseRotation + angle)
72c72
< return entity.health() <= 0 or self.dead
---
> return not status.resourcePositive("health") or self.dead
monsters\dungeon\chicken\behavior.lua
0a1,2
> require "/scripts/util.lua"
>
11c13
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
14,15c16,17
< entity.setAggressive(false)
< entity.setAnimationState("movement", "idle")
---
> monster.setAggressive(false)
> animator.setAnimationState("movement", "idle")
24c26
< if entity.health() > 0 then
---
> if status.resourcePositive("health") then
46c48
< timer = entity.randomizeParameterRange("moveTimeRange"),
---
> timer = util.randomInRange(config.getParameter("moveTimeRange")),
56c58
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
62c64
< if math.random(100) <= entity.configParameter("eggPercentageChancePerMove") then
---
> if math.random(100) <= config.getParameter("eggPercentageChancePerMove") then
82,83c84,85
< timer = entity.configParameter("fleeMaxTime"),
< distance = entity.randomizeParameterRange("fleeDistanceRange")
---
> timer = config.getParameter("fleeMaxTime"),
> distance = util.randomInRange(config.getParameter("fleeDistanceRange"))
88c90
< entity.setAnimationState("movement", "run")
---
> animator.setAnimationState("movement", "run")
129c131
< entity.setAnimationState("movement", "lay")
---
> animator.setAnimationState("movement", "lay")
132c134
< if entity.animationState("movement")=="idle" then
---
> if animator.animationState("movement")=="idle" then
135c137
< local eggType = entity.configParameter("eggType")
---
> local eggType = config.getParameter("eggType")
142c144
< entity.setAnimationState("movement", "egg")
---
> animator.setAnimationState("movement", "egg")
monsters\dungeon\cleaningbot\behavior.lua
0a1,2
> require "/scripts/util.lua"
>
10c12
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
13,15c15,17
< entity.setAggressive(false)
< entity.setDeathParticleBurst("deathPoof")
< entity.setAnimationState("movement", "idle")
---
> monster.setAggressive(false)
> monster.setDeathParticleBurst("deathPoof")
> animator.setAnimationState("movement", "idle")
28c30
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
45c47
< timer = entity.randomizeParameterRange("moveTimeRange"),
---
> timer = util.randomInRange(config.getParameter("moveTimeRange")),
75c77
< return { timer = entity.randomizeParameterRange("cleanTimeRange") }
---
> return { timer = util.randomInRange(config.getParameter("cleanTimeRange")) }
91c93
< return { timer = entity.configParameter("attackTargetHoldTime") }
---
> return { timer = config.getParameter("attackTargetHoldTime") }
109c111
< if world.magnitude(toTarget) < entity.configParameter("attackDistance") then
---
> if world.magnitude(toTarget) < config.getParameter("attackDistance") then
120c122
< stateData.timer = entity.configParameter("attackTargetHoldTime")
---
> stateData.timer = config.getParameter("attackTargetHoldTime")
134,135c136,137
< entity.setAnimationState("movement", "attack")
< self.attackHoldTimer = entity.configParameter("attackHoldTime")
---
> animator.setAnimationState("movement", "attack")
> self.attackHoldTimer = config.getParameter("attackHoldTime")
137c139
< entity.setAnimationState("movement", "aggro")
---
> animator.setAnimationState("movement", "aggro")
140c142
< entity.setDamageOnTouch(enabled)
---
> monster.setDamageOnTouch(enabled)
147,148c149,150
< entity.setAnimationState("movement", "aggro")
< entity.setAggressive(true)
---
> animator.setAnimationState("movement", "aggro")
> monster.setAggressive(true)
150,151c152,153
< entity.setAnimationState("movement", "idle")
< entity.setAggressive(false)
---
> animator.setAnimationState("movement", "idle")
> monster.setAggressive(false)
monsters\dungeon\giftmonster\behavior.lua
1c1,2
< --------------------------------------------------------------------------------
---
> require "/scripts/util.lua"
>
10c11
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
14,16c15,17
< entity.setAggressive(false)
< entity.setDamageOnTouch(false)
< entity.setDeathParticleBurst("deathPoof")
---
> monster.setAggressive(false)
> monster.setDamageOnTouch(false)
> monster.setDeathParticleBurst("deathPoof")
21c22
< if util.trackTarget(entity.configParameter("noticeDistance")) then
---
> if util.trackTarget(config.getParameter("noticeDistance")) then
37c38
< return { timer = entity.randomizeParameterRange("idleTimeRange") }
---
> return { timer = util.randomInRange(config.getParameter("idleTimeRange")) }
51c52
< timer = entity.randomizeParameterRange("moveTimeRange"),
---
> timer = util.randomInRange(config.getParameter("moveTimeRange")),
57c58
< local bounds = entity.configParameter("metaBoundBox")
---
> local bounds = config.getParameter("metaBoundBox")
67c68
< stateData.changeDirectionTimer = entity.configParameter("moveChangeDirectionCooldown")
---
> stateData.changeDirectionTimer = config.getParameter("moveChangeDirectionCooldown")
71c72
< if entity.animationState("movement") == "idle" and stateData.timer <= 0 then
---
> if animator.animationState("movement") == "idle" and stateData.timer <= 0 then
76c77
< entity.setAnimationState("movement", "bounce")
---
> animator.setAnimationState("movement", "bounce")
93c94
< if entity.animationState("movement") == "idle" then
---
> if animator.animationState("movement") == "idle" then
98c99
< entity.setAnimationState("movement", "bounce")
---
> animator.setAnimationState("movement", "bounce")
monsters\dungeon\glitchknight\behavior.lua
6c6
< entity.setAnimationState("mount", stateName)
---
> animator.setAnimationState("mount", stateName)
9c9
< entity.setAnimationState("rider", "dismounted")
---
> animator.setAnimationState("rider", "dismounted")
11c11
< entity.setAnimationState("rider", stateName)
---
> animator.setAnimationState("rider", stateName)
20c20
< entity.setDamageOnTouch(false)
---
> monster.setDamageOnTouch(false)
23c23
< entity.setAggressive(false)
---
> monster.setAggressive(false)
33,34c33,34
< if util.trackTarget(entity.configParameter("targetNoticeRadius")) then
< entity.setAggressive(true)
---
> if util.trackTarget(config.getParameter("targetNoticeRadius")) then
> monster.setAggressive(true)
37c37
< entity.setAggressive(false)
---
> monster.setAggressive(false)
46,47c46
< local dismountHealth = entity.maxHealth() * entity.configParameter("dismountHealthRatio")
< if entity.health() < dismountHealth then
---
> if status.resourcePercentage("health") < config.getParameter("dismountHealthRatio") then
49c48
< world.spawnNpc(self.position, "glitch", "knight", entity.level())
---
> world.spawnNpc(self.position, "glitch", "knight", monster.level())
75c74
< entity.setDamageOnTouch(true)
---
> monster.setDamageOnTouch(true)
90c89
< if stateData.chargeDirection == nil or world.magnitude(toTarget) > entity.configParameter("chargeAttackOvershootDistance") then
---
> if stateData.chargeDirection == nil or world.magnitude(toTarget) > config.getParameter("chargeAttackOvershootDistance") then
92c91
< stateData.changeDirectionTimer = entity.configParameter("changeDirectionCooldown")
---
> stateData.changeDirectionTimer = config.getParameter("changeDirectionCooldown")
99c98
< stateData.changeDirectionTimer = entity.configParameter("changeDirectionCooldown")
---
> stateData.changeDirectionTimer = config.getParameter("changeDirectionCooldown")
monsters\dungeon\po\behavior.lua
1c1,2
< --------------------------------------------------------------------------------
---
> require "/scripts/util.lua"
>
13c14
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
18,21c19,22
< entity.setAggressive(true)
< entity.setDamageOnTouch(true)
< entity.setDeathParticleBurst("deathPoof")
< entity.setAnimationState("movement", "idle")
---
> monster.setAggressive(true)
> monster.setDamageOnTouch(true)
> monster.setDeathParticleBurst("deathPoof")
> animator.setAnimationState("movement", "idle")
26c27
< util.trackTarget(entity.configParameter("noticeDistance"))
---
> util.trackTarget(config.getParameter("noticeDistance"))
36c37
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
41c42
< entity.setAnimationState("movement", "fall")
---
> animator.setAnimationState("movement", "fall")
43c44
< entity.setAnimationState("movement", "jump")
---
> animator.setAnimationState("movement", "jump")
55c56
< return self.dead or entity.health() <= 0
---
> return self.dead or not status.resourcePositive("health")
61c62
< local size = entity.configParameter("poSize")
---
> local size = config.getParameter("poSize")
64c65
< local entityId = world.spawnMonster("micropo", entity.toAbsolutePosition({ -1, 4 }), { level = entity.level() })
---
> local entityId = world.spawnMonster("micropo", monster.toAbsolutePosition({ -1, 4 }), { level = monster.level() })
67c68
< entityId = world.spawnMonster("micropo", entity.toAbsolutePosition({ 1, 4 }), { level = entity.level() })
---
> entityId = world.spawnMonster("micropo", monster.toAbsolutePosition({ 1, 4 }), { level = monster.level() })
70c71
< local entityId = world.spawnMonster("po", entity.toAbsolutePosition({ -1, 3 }), { level = entity.level() })
---
> local entityId = world.spawnMonster("po", monster.toAbsolutePosition({ -1, 3 }), { level = monster.level() })
73c74
< entityId = world.spawnMonster("po", entity.toAbsolutePosition({ 1, 3 }), { level = entity.level() })
---
> entityId = world.spawnMonster("po", monster.toAbsolutePosition({ 1, 3 }), { level = monster.level() })
81c82
< local spawnVelocity = entity.configParameter("spawnVelocity")
---
> local spawnVelocity = config.getParameter("spawnVelocity")
87c88
< return entity.configParameter("poSize")
---
> return config.getParameter("poSize")
111,112c112,113
< if delta[2] > entity.configParameter("largeJumpYThreshold") then
< self.jumpHoldTime = entity.configParameter("largeHumpHoldTime")
---
> if delta[2] > config.getParameter("largeJumpYThreshold") then
> self.jumpHoldTime = config.getParameter("largeHumpHoldTime")
114c115
< self.jumpHoldTime = entity.configParameter("smallBounceHoldTime")
---
> self.jumpHoldTime = config.getParameter("smallBounceHoldTime")
159c160
< timer = entity.randomizeParameterRange("moveTimeRange"),
---
> timer = util.randomInRange(config.getParameter("moveTimeRange")),
173c174
< return true, entity.randomizeParameterRange("moveCooldownTimeRange")
---
> return true, util.randomInRange(config.getParameter("moveCooldownTimeRange"))
191c192
< if stateData.timer > entity.configParameter("attackSearchTime") then
---
> if stateData.timer > config.getParameter("attackSearchTime") then
monsters\dungeon\repairbot\behavior.lua
0a1,2
> require "/scripts/util.lua"
>
10,12c12,14
< entity.setAggressive(false)
< entity.setDeathParticleBurst("deathPoof")
< entity.setAnimationState("movement", "idle")
---
> monster.setAggressive(false)
> monster.setDeathParticleBurst("deathPoof")
> animator.setAnimationState("movement", "idle")
26c28
< if entity.health() > 0 then
---
> if status.resourcePositive("health") then
48c50
< local animation = entity.animationState("movement")
---
> local animation = animator.animationState("movement")
55c57
< entity.setAnimationState("movement", "attackStart")
---
> animator.setAnimationState("movement", "attackStart")
59c61
< entity.setAnimationState("movement", "repairStart")
---
> animator.setAnimationState("movement", "repairStart")
63c65
< entity.setAnimationState("movement", "attackEnd")
---
> animator.setAnimationState("movement", "attackEnd")
65c67
< entity.setAnimationState("movement", "repairEnd")
---
> animator.setAnimationState("movement", "repairEnd")
67c69
< entity.setAnimationState("movement", desiredAnimation)
---
> animator.setAnimationState("movement", desiredAnimation)
86c88
< timer = entity.randomizeParameterRange("moveTimeRange"),
---
> timer = util.randomInRange(config.getParameter("moveTimeRange")),
100c102
< return true, entity.randomizeParameterRange("idleTimeRange")
---
> return true, util.randomInRange(config.getParameter("idleTimeRange"))
127,128c129,130
< local animation = entity.animationState("movement")
< if world.magnitude(toTarget) < entity.configParameter("repairDistance") then
---
> local animation = animator.animationState("movement")
> if world.magnitude(toTarget) < config.getParameter("repairDistance") then
130c132
< entity.heal(stateData.targetId, entity.configParameter("repairHealthPerSecond") * dt)
---
> monster.heal(stateData.targetId, config.getParameter("repairHealthPerSecond") * dt)
142c144
< local entityIds = world.entityQuery(mcontroller.position(), entity.configParameter("repairResponseMaxDistance"), {includedTypes = {"monster"}})
---
> local entityIds = world.entityQuery(mcontroller.position(), config.getParameter("repairResponseMaxDistance"), {includedTypes = {"monster"}})
164c166
< return { timer = entity.configParameter("attackTargetHoldTime") }
---
> return { timer = config.getParameter("attackTargetHoldTime") }
170c172
< entity.setAggressive(true)
---
> monster.setAggressive(true)
175c177
< local attackRange = entity.configParameter("attackRange")
---
> local attackRange = config.getParameter("attackRange")
189c191
< -- entity.setFireDirection(entity.configParameter("projectileOffset"), { mcontroller.facingDirection(), 0 })
---
> -- monster.setFireDirection(config.getParameter("projectileOffset"), { mcontroller.facingDirection(), 0 })
196,197c198,199
< -- if not entity.isFiring() then
< -- entity.startFiring("projectile")
---
> -- if not monster.isFiring() then
> -- monster.startFiring("projectile")
200c202
< -- entity.stopFiring()
---
> -- monster.stopFiring()
206c208
< stateData.timer = entity.configParameter("attackTargetHoldTime")
---
> stateData.timer = config.getParameter("attackTargetHoldTime")
210c212
< entity.setAggressive(false)
---
> monster.setAggressive(false)
monsters\dungeon\robotchicken\behavior.lua
0a1,2
> require "/scripts/util.lua"
>
9c11
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
12,13c14,15
< entity.setAggressive(false)
< entity.setAnimationState("movement", "idle")
---
> monster.setAggressive(false)
> animator.setAnimationState("movement", "idle")
22c24
< if entity.health() > 0 then
---
> if status.resourcePositive("health") then
43c45
< timer = entity.randomizeParameterRange("moveTimeRange"),
---
> timer = util.randomInRange(config.getParameter("moveTimeRange")),
53c55
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
73,74c75,76
< timer = entity.configParameter("fleeMaxTime"),
< distance = entity.randomizeParameterRange("fleeDistanceRange")
---
> timer = config.getParameter("fleeMaxTime"),
> distance = util.randomInRange(config.getParameter("fleeDistanceRange"))
79c81
< entity.setAnimationState("movement", "run")
---
> animator.setAnimationState("movement", "run")
monsters\dungeon\swarpion\behavior.lua
0a1,2
> require "/scripts/util.lua"
>
10c12
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
13c15
< entity.setDeathParticleBurst("deathPoof")
---
> monster.setDeathParticleBurst("deathPoof")
18c20
< if util.trackTarget(entity.configParameter("targetNoticeDistance")) then
---
> if util.trackTarget(config.getParameter("targetNoticeDistance")) then
25c27
< if entity.animationState("movement") ~= "attack" then
---
> if animator.animationState("movement") ~= "attack" then
30c32
< table.insert(movements, { flockMovement, entity.configParameter("flockMovementWeight") })
---
> table.insert(movements, { flockMovement, config.getParameter("flockMovementWeight") })
63c65
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
77c79
< timer = entity.randomizeParameterRange("moveTimeRange"),
---
> timer = util.randomInRange(config.getParameter("moveTimeRange")),
91c93
< return true, entity.randomizeParameterRange("idleTimeRange")
---
> return true, util.randomInRange(config.getParameter("idleTimeRange"))
103c105
< entity.setAggressive(true)
---
> monster.setAggressive(true)
105c107
< timer = entity.configParameter("attackTargetHoldTime"),
---
> timer = config.getParameter("attackTargetHoldTime"),
112,113c114,115
< if entity.animationState("movement") == "attack" then
< entity.setDamageOnTouch(true)
---
> if animator.animationState("movement") == "attack" then
> monster.setDamageOnTouch(true)
116c118
< entity.setDamageOnTouch(false)
---
> monster.setDamageOnTouch(false)
126c128
< local attackRange = entity.configParameter("attackRange")
---
> local attackRange = config.getParameter("attackRange")
132,134c134,136
< stateData.attackPauseTimer = entity.configParameter("attackPauseTime")
< entity.setAnimationState("movement", "attack")
< entity.setDamageOnTouch(true)
---
> stateData.attackPauseTimer = config.getParameter("attackPauseTime")
> animator.setAnimationState("movement", "attack")
> monster.setDamageOnTouch(true)
141c143
< stateData.timer = entity.configParameter("attackTargetHoldTime")
---
> stateData.timer = config.getParameter("attackTargetHoldTime")
148,149c150,151
< entity.setAggressive(false)
< entity.setDamageOnTouch(false)
---
> monster.setAggressive(false)
> monster.setDamageOnTouch(false)
monsters\generated\flying\skills\flyingswoopattack.lua
9c9
< local swoopDiameter = entity.configParameter("swoopDiameter")
---
> local swoopDiameter = config.getParameter("swoopDiameter")
15c15
< timer = entity.configParameter("swoopTime"),
---
> timer = config.getParameter("swoopTime"),
32c32
< entity.setAggressive(true)
---
> monster.setAggressive(true)
36,37c36,37
< local ratio = stateData.timer / entity.configParameter("swoopTime")
< local xOffset = stateData.direction * (1.0 - ratio) * entity.configParameter("swoopDiameter")
---
> local ratio = stateData.timer / config.getParameter("swoopTime")
> local xOffset = stateData.direction * (1.0 - ratio) * config.getParameter("swoopDiameter")
43c43
< entity.setAnimationState("movement", "flying")
---
> animator.setAnimationState("movement", "flying")
45c45
< entity.setAnimationState("movement", "gliding")
---
> animator.setAnimationState("movement", "gliding")
53c53
< entity.flyTo(destination)
---
> monster.flyTo(destination)
monsters\generated\swimming\attackstate.lua
8c8
< return { timer = entity.configParameter("attackApproachTime"), stage = "approach" }
---
> return { timer = config.getParameter("attackApproachTime"), stage = "approach" }
24c24
< if vec2.mag(toTarget) <= entity.configParameter("attackStartDistance") then
---
> if vec2.mag(toTarget) <= config.getParameter("attackStartDistance") then
27c27
< stateData.timer = entity.configParameter("attackWindupTime")
---
> stateData.timer = config.getParameter("attackWindupTime")
30c30
< entity.setAnimationState("movement", "swimSlow")
---
> animator.setAnimationState("movement", "swimSlow")
35c35
< entity.setAnimationState("attack", "melee")
---
> animator.setAnimationState("attack", "melee")
37c37
< stateData.timer = entity.configParameter("attackChargeTime")
---
> stateData.timer = config.getParameter("attackChargeTime")
42,44c42,44
< if entity.animationState("attack") == "melee" then
< entity.setDamageOnTouch(true)
< mcontroller.controlParameters({flySpeed = entity.configParameter("attackChargeSpeed")})
---
> if animator.animationState("attack") == "melee" then
> monster.setDamageOnTouch(true)
> mcontroller.controlParameters({flySpeed = config.getParameter("attackChargeSpeed")})
47c47
< entity.setDamageOnTouch(false)
---
> monster.setDamageOnTouch(false)
56c56
< entity.setDamageOnTouch(false)
---
> monster.setDamageOnTouch(false)
monsters\generated\swimming\fleestate.lua
0a1,2
> require "/scripts/util.lua"
>
8c10
< return { timer = entity.randomizeParameterRange("fleeTimeRange"), fleeDirection = {-toTarget[1], -toTarget[2]} }
---
> return { timer = util.randomInRange(config.getParameter("fleeTimeRange")), fleeDirection = {-toTarget[1], -toTarget[2]} }
monsters\generated\swimming\flopstate.lua
0a1,2
> require "/scripts/util.lua"
>
18c20
< entity.setAnimationState("movement", "flopping")
---
> animator.setAnimationState("movement", "flopping")
38c40
< stateData.jumpTimer = entity.randomizeParameterRange("flopJumpInterval")
---
> stateData.jumpTimer = util.randomInRange(config.getParameter("flopJumpInterval"))
monsters\generated\swimming\swimmingmonster.lua
2c2
< local scripts = entity.configParameter("scripts")
---
> local scripts = config.getParameter("scripts")
6c6
< self.aggressive = entity.configParameter("aggressive", false)
---
> self.aggressive = config.getParameter("aggressive", false)
12c12
< self.moveRatioLimit = entity.configParameter("moveRatioLimit", false)
---
> self.moveRatioLimit = config.getParameter("moveRatioLimit", false)
17c17
< entity.setAnimationState("movement", "swimSlow")
---
> animator.setAnimationState("movement", "swimSlow")
19,20c19,20
< entity.setDeathSound("deathPuff")
< entity.setDeathParticleBurst(entity.configParameter("deathParticles"))
---
> monster.setDeathSound("deathPuff")
> monster.setDeathParticleBurst(config.getParameter("deathParticles"))
35c35
< local targetId = entity.closestValidTarget(entity.configParameter("targetSearchRadius"))
---
> local targetId = entity.closestValidTarget(config.getParameter("targetSearchRadius"))
43c43
< vec2.mag(entity.distanceToEntity(targetId)) <= entity.configParameter("targetHoldRadius")
---
> vec2.mag(entity.distanceToEntity(targetId)) <= config.getParameter("targetHoldRadius")
49c49
< self.targetChangeTimer = entity.configParameter("targetChangeCooldown")
---
> self.targetChangeTimer = config.getParameter("targetChangeCooldown")
59c59
< self.aggressive = entity.configParameter("aggressive", false)
---
> self.aggressive = config.getParameter("aggressive", false)
111c111
< self.directionChangeTimer = entity.configParameter("directionChangeCooldown")
---
> self.directionChangeTimer = config.getParameter("directionChangeCooldown")
121c121
< entity.setAnimationState("movement", "swimFast")
---
> animator.setAnimationState("movement", "swimFast")
124c124
< entity.setAnimationState("movement", "swimSlow")
---
> animator.setAnimationState("movement", "swimSlow")
129,131c129,131
< for i, sensor in ipairs(entity.configParameter(sensorGroup)) do
< -- world.debugPoint(entity.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), "blue")
< if world.pointTileCollision(entity.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), {"Dynamic", "Null", "Block"}) then
---
> for i, sensor in ipairs(config.getParameter(sensorGroup)) do
> -- world.debugPoint(monster.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), "blue")
> if world.pointTileCollision(monster.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), {"Dynamic", "Null", "Block"}) then
149c149
< entity.rotateGroup("all", self.rotation)
---
> animator.rotateGroup("all", self.rotation)
monsters\generated\swimming\wanderstate.lua
0a1,2
> require "/scripts/util.lua"
>
13c15
< self.wanderTime = entity.randomizeParameterRange("wanderTime")
---
> self.wanderTime = util.randomInRange(config.getParameter("wanderTime"))
29c31
< self.wanderTime = entity.randomizeParameterRange("wanderTime")
---
> self.wanderTime = util.randomInRange(config.getParameter("wanderTime"))
monsters\generated\swimming\smallfish\fleestate.lua
0a1,2
> require "/scripts/util.lua"
>
4c6
< local target = entity.closestValidTarget(entity.configParameter("fleeTriggerDistance"))
---
> local target = entity.closestValidTarget(config.getParameter("fleeTriggerDistance"))
8c10
< fleeDistance = entity.randomizeParameterRange("fleeDistanceRange"),
---
> fleeDistance = util.randomInRange(config.getParameter("fleeDistanceRange")),
37c39
< if targetDist > entity.configParameter("fleeTriggerDistance") then
---
> if targetDist > config.getParameter("fleeTriggerDistance") then
43c45
< self.movementWeight = entity.configParameter("fleeMovementWeight")
---
> self.movementWeight = config.getParameter("fleeMovementWeight")
monsters\generated\swimming\smallfish\investigatestate.lua
0a1,2
> require "/scripts/util.lua"
>
4c6
< local targetIds = world.entityQuery(mcontroller.position(), entity.configParameter("investigateTriggerDistance"), { includedTypes = {"itemDrop"}, order = "nearest" })
---
> local targetIds = world.entityQuery(mcontroller.position(), config.getParameter("investigateTriggerDistance"), { includedTypes = {"itemDrop"}, order = "nearest" })
9,10c11,12
< maxDistance = entity.randomizeParameterRange("investigateLoseInterestRange"),
< timer = entity.randomizeParameterRange("investigateTimeRange")
---
> maxDistance = util.randomInRange(config.getParameter("investigateLoseInterestRange")),
> timer = util.randomInRange(config.getParameter("investigateTimeRange"))
29c31
< return true, entity.configParameter("investigateCooldownTime")
---
> return true, config.getParameter("investigateCooldownTime")
38,39c40,41
< if distance < entity.configParameter("investigateStopDistance") then
< return true, entity.configParameter("investigateCooldownTime")
---
> if distance < config.getParameter("investigateStopDistance") then
> return true, config.getParameter("investigateCooldownTime")
monsters\generated\swimming\smallfish\scatterstate.lua
7c7
< timer = entity.configParameter("scatterTime")
---
> timer = config.getParameter("scatterTime")
22c22
< if distance > entity.configParameter("scatterDistance") then
---
> if distance > config.getParameter("scatterDistance") then
27c27
< self.movementWeight = entity.configParameter("scatterMovementWeight")
---
> self.movementWeight = config.getParameter("scatterMovementWeight")
monsters\generated\swimming\smallfish\smallfish.lua
0a1,2
> require "/scripts/util.lua"
>
7c9
< local scripts = entity.configParameter("scripts")
---
> local scripts = config.getParameter("scripts")
14c16
< entity.setAnimationState("movement", "swimming")
---
> animator.setAnimationState("movement", "swimming")
56c58
< entity.rotateGroup("all", rotateAmount)
---
> animator.rotateGroup("all", rotateAmount)
60c62
< entity.rotateGroup("all", 0)
---
> animator.rotateGroup("all", 0)
70c72
< if self.wanderTimer > entity.configParameter("wanderChangeDirectionTime") then
---
> if self.wanderTimer > config.getParameter("wanderChangeDirectionTime") then
75c77
< if self.wanderTimer > entity.configParameter("wanderChangeDirectionCooldown") then
---
> if self.wanderTimer > config.getParameter("wanderChangeDirectionCooldown") then
77c79
< self.movement[2] = entity.randomizeParameterRange("wanderChangeDirectionYRange")
---
> self.movement[2] = util.randomInRange(config.getParameter("wanderChangeDirectionYRange"))
90c92
< self.collisionAvoidance.timer = entity.configParameter("collisionAvoidanceTime")
---
> self.collisionAvoidance.timer = config.getParameter("collisionAvoidanceTime")
95c97
< table.insert(movements, { self.collisionAvoidance.movement, entity.configParameter("collisionAvoidanceWeight") })
---
> table.insert(movements, { self.collisionAvoidance.movement, config.getParameter("collisionAvoidanceWeight") })
123c125
< table.insert(movements, { flockMovement, entity.configParameter("flockMovementWeight") })
---
> table.insert(movements, { flockMovement, config.getParameter("flockMovementWeight") })
monsters\pets\groundpet.lua
21,22c21,22
< storage.petResources = storage.petResources or entity.configParameter("petResources")
< self.petResourceDeltas = entity.configParameter("petResourceDeltas")
---
> storage.petResources = storage.petResources or config.getParameter("petResources")
> self.petResourceDeltas = config.getParameter("petResourceDeltas")
25c25
< local states = stateMachine.scanScripts(entity.configParameter("scripts"), "(%a+State)%.lua")
---
> local states = stateMachine.scanScripts(config.getParameter("scripts"), "(%a+State)%.lua")
29c29
< local actions = stateMachine.scanScripts(entity.configParameter("scripts"), "(%a+Action)%.lua")
---
> local actions = stateMachine.scanScripts(config.getParameter("scripts"), "(%a+Action)%.lua")
42c42
< self.behaviorName = entity.configParameter("petBehavior")
---
> self.behaviorName = config.getParameter("petBehavior")
45,46c45,46
< storage.knownPlayers = storage.knownPlayers or entity.configParameter("knownPlayers", {})
< storage.foodLikings = storage.foodLikings or entity.configParameter("foodLikings", {})
---
> storage.knownPlayers = storage.knownPlayers or config.getParameter("knownPlayers", {})
> storage.foodLikings = storage.foodLikings or config.getParameter("foodLikings", {})
48c48
< self.querySurroundingsCooldown = entity.configParameter("querySurroundingsCooldown", 3)
---
> self.querySurroundingsCooldown = config.getParameter("querySurroundingsCooldown", 3)
50c50
< self.querySurroundingsRange = entity.configParameter("querySurroundingsRange", 50)
---
> self.querySurroundingsRange = config.getParameter("querySurroundingsRange", 50)
105c105
< seed = entity.seed()
---
> seed = monster.seed()
125c125
< local anchorName = entity.configParameter("anchorName", "humantechstation")
---
> local anchorName = config.getParameter("anchorName", "humantechstation")
181c181
< entity.burstParticleEmitter("emote"..emoteType)
---
> animator.burstParticleEmitter("emote"..emoteType)
262c262
< entity.setAnimationState("movement", "swim")
---
> animator.setAnimationState("movement", "swim")
268c268
< entity.setAnimationState("movement", "run")
---
> animator.setAnimationState("movement", "run")
270c270
< entity.setAnimationState("movement", "walk")
---
> animator.setAnimationState("movement", "walk")
276c276
< local currentState = entity.animationState("movement")
---
> local currentState = animator.animationState("movement")
278c278
< self.standTimer = entity.configParameter("idle.standTime", 2)
---
> self.standTimer = config.getParameter("idle.standTime", 2)
284c284
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
286c286
< entity.setAnimationState("movement", "stand")
---
> animator.setAnimationState("movement", "stand")
292c292
< entity.setAnimationState("movement", "jumping")
---
> animator.setAnimationState("movement", "jumping")
294c294
< entity.setAnimationState("movement", "falling")
---
> animator.setAnimationState("movement", "falling")
monsters\pets\idlestate.lua
0a1,2
> require "/scripts/util.lua"
>
4c6
< local idleTime = entity.randomizeParameterRange("idle.idleTime")
---
> local idleTime = util.randomInRange(config.getParameter("idle.idleTime"))
monsters\pets\petbehavior.lua
28,29c28,29
< self.actionParams = entity.configParameter("actionParams")
< self.actionInterruptThreshold = entity.configParameter("actionParams.interruptThreshold", 15)
---
> self.actionParams = config.getParameter("actionParams")
> self.actionInterruptThreshold = config.getParameter("actionParams.interruptThreshold", 15)
120c120
< if hunger > entity.configParameter("actionParams.hungerStarvingLevel") then
---
> if hunger > config.getParameter("actionParams.hungerStarvingLevel") then
monsters\pets\petcapturepod.lua
7c7
< local ownerUuid = entity.configParameter("ownerUuid")
---
> local ownerUuid = config.getParameter("ownerUuid")
47c47
< local parameters = entity.uniqueParameters()
---
> local parameters = monster.uniqueParameters()
55,57c55,57
< parameters.seed = entity.seed()
< parameters.level = entity.level()
< parameters.familyIndex = entity.familyIndex()
---
> parameters.seed = monster.seed()
> parameters.level = monster.level()
> parameters.familyIndex = monster.familyIndex()
72c72
< type = entity.type(),
---
> type = monster.type(),
80c80
< entity.setDropPool(nil)
---
> monster.setDropPool(nil)
monsters\pets\wanderstate.lua
0a1,2
> require "/scripts/util.lua"
>
9,11c11,13
< wanderTimer = entity.randomizeParameterRange("wander.wanderTime"),
< changeDirectionTimer = entity.randomizeParameterRange("wander.changeDirectionTime"),
< changeDirectionWait = entity.randomizeParameterRange("wander.changeDirectionWait"),
---
> wanderTimer = util.randomInRange(config.getParameter("wander.wanderTime")),
> changeDirectionTimer = util.randomInRange(config.getParameter("wander.changeDirectionTime")),
> changeDirectionWait = util.randomInRange(config.getParameter("wander.changeDirectionWait")),
43c45
< stateData.changeDirectionTimer = entity.randomizeParameterRange("wander.changeDirectionTime")
---
> stateData.changeDirectionTimer = util.randomInRange(config.getParameter("wander.changeDirectionTime"))
monsters\pets\actions\begaction.lua
12c12
< approachDistance = entity.configParameter("actionParams.beg.distance", 3),
---
> approachDistance = config.getParameter("actionParams.beg.distance", 3),
15c15
< emoteCooldown = entity.configParameter("actionParams.beg.emoteCooldown", 2),
---
> emoteCooldown = config.getParameter("actionParams.beg.emoteCooldown", 2),
39c39
< return true, entity.configParameter("actionParams.beg.distance", 10)
---
> return true, config.getParameter("actionParams.beg.distance", 10)
monsters\pets\actions\eataction.lua
7c7
< if status.resource("hunger") < entity.configParameter("actionParams.eat.minHunger", 40) then
---
> if status.resource("hunger") < config.getParameter("actionParams.eat.minHunger", 40) then
19c19
< approachDistance = entity.configParameter("actionParams.eat.distance", 2),
---
> approachDistance = config.getParameter("actionParams.eat.distance", 2),
47c47
< entity.setAnimationState("movement", "eat")
---
> animator.setAnimationState("movement", "eat")
58c58
< return true, entity.configParameter("actionParams.eat.cooldown")
---
> return true, config.getParameter("actionParams.eat.cooldown")
monsters\pets\actions\followaction.lua
6c6
< local startDistance = entity.configParameter("actionParams.follow.startDistance", 6)
---
> local startDistance = config.getParameter("actionParams.follow.startDistance", 6)
15c15
< stopDistance = entity.configParameter("actionParams.follow.stopDistance", 3),
---
> stopDistance = config.getParameter("actionParams.follow.stopDistance", 3),
17,18c17,18
< runDistance = entity.configParameter("actionParams.follow.runDistance", 20),
< curiosityDelta = entity.configParameter("actionParams.follow.curiosityDelta", -5),
---
> runDistance = config.getParameter("actionParams.follow.runDistance", 20),
> curiosityDelta = config.getParameter("actionParams.follow.curiosityDelta", -5),
21c21
< boredTimer = entity.configParameter("actionParams.follow.boredTime", 3)
---
> boredTimer = config.getParameter("actionParams.follow.boredTime", 3)
45c45
< return true, entity.configParameter("actionParams.follow.cooldown", 15)
---
> return true, config.getParameter("actionParams.follow.cooldown", 15)
54c54
< return true, entity.configParameter("actionParams.follow.cooldown", 15)
---
> return true, config.getParameter("actionParams.follow.cooldown", 15)
monsters\pets\actions\inspectaction.lua
37c37
< return true, entity.configParameter("actionParams.inspect.cooldown", 15)
---
> return true, config.getParameter("actionParams.inspect.cooldown", 15)
44c44
< entity.setAnimationState("movement", "inspect")
---
> animator.setAnimationState("movement", "inspect")
68c68
< return true, entity.configParameter("actionParams.inspect.cooldown", 15)
---
> return true, config.getParameter("actionParams.inspect.cooldown", 15)
monsters\pets\actions\pounceaction.lua
76c76
< return true, entity.configParameter("actionParams.play.cooldown", 10)
---
> return true, config.getParameter("actionParams.play.cooldown", 10)
monsters\pets\actions\sleepaction.lua
12c12
< if args.sleepTarget and status.resource("sleepy") < entity.configParameter("actions.sleep.minSleepy", 65) then
---
> if args.sleepTarget and status.resource("sleepy") < config.getParameter("actions.sleep.minSleepy", 65) then
27c27
< entity.setParticleEmitterActive("sleep", true)
---
> animator.setParticleEmitterActive("sleep", true)
35c35
< entity.setParticleEmitterActive("sleep", true)
---
> animator.setParticleEmitterActive("sleep", true)
42c42
< return true, entity.configParameter("actionParams.sleep.cooldown")
---
> return true, config.getParameter("actionParams.sleep.cooldown")
47c47
< entity.setParticleEmitterActive("sleep", true)
---
> animator.setParticleEmitterActive("sleep", true)
56c56
< return true, entity.configParameter("actionParams.sleep.cooldown", 15)
---
> return true, config.getParameter("actionParams.sleep.cooldown", 15)
58c58
< entity.setAnimationState("movement", "invisible")
---
> animator.setAnimationState("movement", "invisible")
60c60
< entity.setAnimationState("movement", "sleep")
---
> animator.setAnimationState("movement", "sleep")
64c64
< return true, entity.configParameter("actionParams.sleep.cooldown", 15)
---
> return true, config.getParameter("actionParams.sleep.cooldown", 15)
73c73
< entity.setParticleEmitterActive("sleep", false)
---
> animator.setParticleEmitterActive("sleep", false)
monsters\pets\actions\starvingaction.lua
13c13
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
21c21
< return true, entity.configParameter("actionParams.starving.cooldown", 3)
---
> return true, config.getParameter("actionParams.starving.cooldown", 3)
monsters\pets\petball\petball.lua
0a1,2
> require "/scripts/util.lua"
>
1a4
>
22,23c25,26
< local angle = entity.randomizeParameterRange("angleRange")
< local speed = entity.randomizeParameterRange("speedRange")
---
> local angle = util.randomInRange(config.getParameter("angleRange"))
> local speed = util.randomInRange(config.getParameter("speedRange"))
npcs\bmain.lua
26,27c26,27
< if entity.configParameter("behavior") then
< self.behavior = BTree:new(entity.configParameter("behavior"), entity.configParameter("behaviorConfig", {}))
---
> if config.getParameter("behavior") then
> self.behavior = BTree:new(config.getParameter("behavior"), config.getParameter("behaviorConfig", {}))
30c30
< entity.setInteractive(true)
---
> npc.setInteractive(true)
33c33
< self.behaviorConfig = entity.configParameter("behaviorConfig", {})
---
> self.behaviorConfig = config.getParameter("behaviorConfig", {})
38,41c38,41
< self.primary = entity.getItemSlot("primary")
< self.alt = entity.getItemSlot("alt")
< self.sheathedPrimary = entity.getItemSlot("sheathedprimary")
< self.sheathedAlt = entity.getItemSlot("sheathedalt")
---
> self.primary = npc.getItemSlot("primary")
> self.alt = npc.getItemSlot("alt")
> self.sheathedPrimary = npc.getItemSlot("sheathedprimary")
> self.sheathedAlt = npc.getItemSlot("sheathedalt")
137c137
< return util.weightedRandom(entity.configParameter("personalities"), entity.seed())
---
> return util.weightedRandom(config.getParameter("personalities"), npc.seed())
141c141
< local enabled = entity.configParameter("questGenerator.enableParticipation")
---
> local enabled = config.getParameter("questGenerator.enableParticipation")
159c159
< entity.setStatusText(options[math.random(#options)])
---
> npc.setStatusText(options[math.random(#options)])
161c161
< entity.setStatusText(nil)
---
> npc.setStatusText(nil)
163c163
< entity.setDisplayNametag(true)
---
> npc.setDisplayNametag(true)
174c174
< local portrait = entity.configParameter("chatPortrait")
---
> local portrait = config.getParameter("chatPortrait")
179c179
< entity.say(args.content, args.tags)
---
> npc.say(args.content, args.tags)
181c181
< entity.sayPortrait(args.content, portrait, args.tags)
---
> npc.sayPortrait(args.content, portrait, args.tags)
213c213
< entity.setLounging(entityId)
---
> npc.setLounging(entityId)
218,219c218,219
< if not entity.isLounging() then return false end
< entity.resetLounging()
---
> if not npc.isLounging() then return false end
> npc.resetLounging()
236c236
< level = args.level or entity.level()
---
> level = args.level or npc.level()
244c244
< entity.setItemSlot(args.slot, item)
---
> npc.setItemSlot(args.slot, item)
286c286
< entity.setItemSlot(slot, item)
---
> npc.setItemSlot(slot, item)
305c305
< entity.setAimPosition(position)
---
> npc.setAimPosition(position)
314c314
< entity.beginAltFire()
---
> npc.beginAltFire()
319c319
< entity.endAltFire()
---
> npc.endAltFire()
324c324
< entity.beginPrimaryFire()
---
> npc.beginPrimaryFire()
329c329
< entity.endPrimaryFire()
---
> npc.endPrimaryFire()
337c337
< entity.setDropPools(args.dropPools)
---
> npc.setDropPools(args.dropPools)
345c345
< entity.setDeathParticleBurst(args.deathParticleBurst)
---
> npc.setDeathParticleBurst(args.deathParticleBurst)
355c355
< entity.emote(args.emote)
---
> npc.emote(args.emote)
363c363
< entity.dance(args.dance)
---
> npc.dance(args.dance)
372c372
< entity.setItemSlot("primary", self.sheathedPrimary)
---
> npc.setItemSlot("primary", self.sheathedPrimary)
377c377
< entity.setItemSlot("alt", self.sheathedAlt)
---
> npc.setItemSlot("alt", self.sheathedAlt)
objects\explodingsmashable.lua
5c5
< world.spawnProjectile(entity.configParameter("explosionProjectile", fireexplosion), vec2.add(entity.position(), entity.configParameter("explosionOffset", {0,0})), entity.id(), {0,0})
---
> world.spawnProjectile(config.getParameter("explosionProjectile", fireexplosion), vec2.add(object.position(), config.getParameter("explosionOffset", {0,0})), entity.id(), {0,0})
objects\ancient\ancientconsole\ancientconsole.lua
2,4c2,4
< self.detectArea = entity.configParameter("detectArea")
< self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
< self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
---
> self.detectArea = config.getParameter("detectArea")
> self.detectArea[1] = object.toAbsolutePosition(self.detectArea[1])
> self.detectArea[2] = object.toAbsolutePosition(self.detectArea[2])
6,7c6,7
< entity.setAnimationState("console", "off")
< entity.setLightColor({0, 0, 0, 0})
---
> animator.setAnimationState("console", "off")
> object.setLightColor({0, 0, 0, 0})
16,23c16,23
< if #players > 0 and entity.animationState("console") == "off" then
< entity.setAnimationState("console", "turnon")
< entity.playSound("on");
< entity.setLightColor(entity.configParameter("lightColor", {255, 255, 255}))
< elseif #players == 0 and entity.animationState("console") == "on" then
< entity.setAnimationState("console", "turnoff")
< entity.playSound("off");
< entity.setLightColor({0, 0, 0, 0})
---
> if #players > 0 and animator.animationState("console") == "off" then
> animator.setAnimationState("console", "turnon")
> animator.playSound("on");
> object.setLightColor(config.getParameter("lightColor", {255, 255, 255}))
> elseif #players == 0 and animator.animationState("console") == "on" then
> animator.setAnimationState("console", "turnoff")
> animator.playSound("off");
> object.setLightColor({0, 0, 0, 0})
objects\ancient\challengedoor\challengedoor.lua
2,4c2,4
< self.detectArea = entity.configParameter("detectArea")
< self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
< self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
---
> self.detectArea = config.getParameter("detectArea")
> self.detectArea[1] = object.toAbsolutePosition(self.detectArea[1])
> self.detectArea[2] = object.toAbsolutePosition(self.detectArea[2])
6,7c6,7
< entity.setAnimationState("portal", "off")
< entity.setLightColor({0, 0, 0, 0})
---
> animator.setAnimationState("portal", "off")
> object.setLightColor({0, 0, 0, 0})
10c10
< entity.setInteractive(true)
---
> object.setInteractive(true)
13,16c13,16
< if not entity.configParameter("returnDoor") and not storage.vanishTime then
< storage.vanishTime = world.time() + entity.configParameter("vanishTime")
< if not (entity.animationState("portal") == "open" or entity.animationState("portal") == "on") then
< entity.setAnimationState("portal", "open")
---
> if not config.getParameter("returnDoor") and not storage.vanishTime then
> storage.vanishTime = world.time() + config.getParameter("vanishTime")
> if not (animator.animationState("portal") == "open" or animator.animationState("portal") == "on") then
> animator.setAnimationState("portal", "open")
23,24c23,24
< if entity.animationState("portal") == "gone" then
< entity.smash()
---
> if animator.animationState("portal") == "gone" then
> object.smash()
27c27
< entity.setAnimationState("portal", "vanish")
---
> animator.setAnimationState("portal", "vanish")
35,42c35,42
< if #players > 0 and entity.animationState("portal") == "off" then
< entity.setAnimationState("portal", "open")
< entity.playSound("on");
< entity.setLightColor(entity.configParameter("lightColor", {255, 255, 255}))
< elseif #players == 0 and entity.animationState("portal") == "on" and not storage.vanishTime then
< entity.setAnimationState("portal", "close")
< entity.playSound("off");
< entity.setLightColor({0, 0, 0, 0})
---
> if #players > 0 and animator.animationState("portal") == "off" then
> animator.setAnimationState("portal", "open")
> animator.playSound("on");
> object.setLightColor(config.getParameter("lightColor", {255, 255, 255}))
> elseif #players == 0 and animator.animationState("portal") == "on" and not storage.vanishTime then
> animator.setAnimationState("portal", "close")
> animator.playSound("off");
> object.setLightColor({0, 0, 0, 0})
47c47
< if entity.configParameter("returnDoor") then
---
> if config.getParameter("returnDoor") then
objects\apex\apexstoragelocker\apexstoragelocker.object
4a5
> "category" : "storage",
9,10d9
<
< "category" : "storage",
12c11
< "shortdescription" : "Apex Ship Locker",
---
> "shortdescription" : "Apex Storage Locker",
18,19c17,18
< "glitchDescription" : "Neutral. A metallic ship locker.",
< "humanDescription" : "It's an industrial looking ship locker.",
---
> "glitchDescription" : "Neutral. A metallic storage locker.",
> "humanDescription" : "It's an industrial looking storage locker.",
22d20
<
objects\apex\respawnpod\behavior.lua
8c8
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
11,12c11,12
< entity.setAnimationState("movement", "idle")
< entity.setInteractive(false)
---
> animator.setAnimationState("movement", "idle")
> object.setInteractive(false)
33c33
< local animation = entity.animationState("movement")
---
> local animation = animator.animationState("movement")
36c36
< return true, entity.configParameter("spawnCooldownTime")
---
> return true, config.getParameter("spawnCooldownTime")
38c38
< entity.setAnimationState("movement", "spawn")
---
> animator.setAnimationState("movement", "spawn")
43,44c43,44
< if not stateData.spawned and stateData.timer > entity.configParameter("spawnTime") then
< self.spawnedEntityId = world.spawnNpc(spawnState.spawnPosition(), "apex", "default", entity.level())
---
> if not stateData.spawned and stateData.timer > config.getParameter("spawnTime") then
> self.spawnedEntityId = world.spawnNpc(spawnState.spawnPosition(), "apex", "default", object.level())
50,51c50,51
< if stateData.timer > entity.configParameter("closeTime") then
< entity.setAnimationState("movement", "close")
---
> if stateData.timer > config.getParameter("closeTime") then
> animator.setAnimationState("movement", "close")
59c59
< return vec2.add(entity.position(), entity.configParameter("spawnOffset"))
---
> return vec2.add(object.position(), config.getParameter("spawnOffset"))
objects\apex\securitycamera\securitycamera.lua
7,9c7,9
< entity.setAnimationState("movement", "idle")
< entity.setInteractive(false)
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("movement", "idle")
> object.setInteractive(false)
> object.setAllOutboundNodes(false)
17,18c17,18
< if entity.direction() > 0 then
< return vec2.add(entity.position(), offset)
---
> if object.direction() > 0 then
> return vec2.add(object.position(), offset)
20c20
< return vec2.sub(entity.position(), offset)
---
> return vec2.sub(object.position(), offset)
25c25
< local baseOffset = entity.configParameter("baseOffset")
---
> local baseOffset = config.getParameter("baseOffset")
30c30
< entity.rotateGroup("camera", -targetAimAngle)
---
> animator.rotateGroup("camera", -targetAimAngle)
32c32
< local tipOffset = entity.configParameter("tipOffset")
---
> local tipOffset = config.getParameter("tipOffset")
35,36c35,36
< local aimAngle = entity.currentRotationAngle("camera")
< local facingDirection = entity.direction()
---
> local aimAngle = animator.currentRotationAngle("camera")
> local facingDirection = object.direction()
40c40
< tipOffset = world.distance(tipPosition, entity.position())
---
> tipOffset = world.distance(tipPosition, object.position())
45c45
< local laserVector = vec2.mul(aimVector, entity.configParameter("maxLaserLength"))
---
> local laserVector = vec2.mul(aimVector, config.getParameter("maxLaserLength"))
87c87
< timer = -entity.configParameter("rotationPauseTime"),
---
> timer = -config.getParameter("rotationPauseTime"),
93,94c93,94
< local rotationRange = vec2.mul(entity.configParameter("rotationRange"), math.pi / 180)
< local rotationTime = entity.configParameter("rotationTime")
---
> local rotationRange = vec2.mul(config.getParameter("rotationRange"), math.pi / 180)
> local rotationTime = config.getParameter("rotationTime")
107c107
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
109c109
< entity.setAnimationState("movement", "move")
---
> animator.setAnimationState("movement", "move")
123c123
< stateData.timer = -entity.configParameter("rotationPauseTime")
---
> stateData.timer = -config.getParameter("rotationPauseTime")
147,149c147,149
< entity.rotateGroup("camera", entity.currentRotationAngle("camera"))
< entity.setAnimationState("movement", "alert")
< entity.setAllOutboundNodes(true)
---
> animator.rotateGroup("camera", animator.currentRotationAngle("camera"))
> animator.setAnimationState("movement", "alert")
> object.setAllOutboundNodes(true)
156,157c156,157
< entity.setAnimationState("movement", "idle")
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("movement", "idle")
> object.setAllOutboundNodes(false)
164c164
< local desiredAimAngle = vec2.angle(toTarget) * entity.direction()
---
> local desiredAimAngle = vec2.angle(toTarget) * object.direction()
167c167
< local rotationRange = vec2.mul(entity.configParameter("rotationRange"), math.pi / 180)
---
> local rotationRange = vec2.mul(config.getParameter("rotationRange"), math.pi / 180)
173c173
< entity.rotateGroup("camera", entity.currentRotationAngle("camera"))
---
> animator.rotateGroup("camera", animator.currentRotationAngle("camera"))
180,181c180,181
< entity.setAnimationState("movement", "idle")
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("movement", "idle")
> object.setAllOutboundNodes(false)
objects\apex\turret\turret.lua
7,9c7,9
< entity.setAnimationState("movement", "idle")
< entity.setInteractive(false)
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("movement", "idle")
> object.setInteractive(false)
> object.setAllOutboundNodes(false)
19,20c19,20
< if entity.direction() > 0 then
< return vec2.add(entity.position(), offset)
---
> if object.direction() > 0 then
> return vec2.add(object.position(), offset)
22c22
< return vec2.sub(entity.position(), offset)
---
> return vec2.sub(object.position(), offset)
28c28
< local baseOffset = entity.configParameter("baseOffset")
---
> local baseOffset = config.getParameter("baseOffset")
34c34
< entity.rotateGroup("gun", -targetAimAngle)
---
> animator.rotateGroup("gun", -targetAimAngle)
36c36
< local tipOffset = entity.configParameter("tipOffset")
---
> local tipOffset = config.getParameter("tipOffset")
39,40c39,40
< local aimAngle = entity.currentRotationAngle("gun")
< local facingDirection = entity.direction()
---
> local aimAngle = animator.currentRotationAngle("gun")
> local facingDirection = object.direction()
44c44
< tipOffset = world.distance(tipPosition, entity.position())
---
> tipOffset = world.distance(tipPosition, object.position())
48c48
< local laserVector = vec2.mul(aimVector, entity.configParameter("maxLaserLength"))
---
> local laserVector = vec2.mul(aimVector, config.getParameter("maxLaserLength"))
90c90
< timer = -entity.configParameter("rotationPauseTime"),
---
> timer = -config.getParameter("rotationPauseTime"),
96c96
< entity.setAnimationState("beam", "visible")
---
> animator.setAnimationState("beam", "visible")
100,101c100,101
< local rotationRange = vec2.mul(entity.configParameter("rotationRange"), math.pi / 180)
< local rotationTime = entity.configParameter("rotationTime")
---
> local rotationRange = vec2.mul(config.getParameter("rotationRange"), math.pi / 180)
> local rotationTime = config.getParameter("rotationTime")
114c114
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
116c116
< entity.setAnimationState("movement", "idle")
---
> animator.setAnimationState("movement", "idle")
123c123
< entity.scaleGroup("beam", { length, 1.0 })
---
> object.scaleGroup("beam", { length, 1.0 })
133c133
< stateData.timer = -entity.configParameter("rotationPauseTime")
---
> stateData.timer = -config.getParameter("rotationPauseTime")
141c141
< entity.setAnimationState("beam", "invisible")
---
> animator.setAnimationState("beam", "invisible")
161,163c161,163
< entity.rotateGroup("gun", entity.currentRotationAngle("gun"))
< entity.setAnimationState("movement", "attack")
< entity.setAllOutboundNodes(true)
---
> animator.rotateGroup("gun", animator.currentRotationAngle("gun"))
> animator.setAnimationState("movement", "attack")
> object.setAllOutboundNodes(true)
175,176c175,176
< entity.setAnimationState("movement", "idle")
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("movement", "idle")
> object.setAllOutboundNodes(false)
183c183
< local desiredAimAngle = vec2.angle(toTarget) * entity.direction()
---
> local desiredAimAngle = vec2.angle(toTarget) * object.direction()
186c186
< local rotationRange = vec2.mul(entity.configParameter("rotationRange"), math.pi / 180)
---
> local rotationRange = vec2.mul(config.getParameter("rotationRange"), math.pi / 180)
192c192
< entity.rotateGroup("gun", entity.currentRotationAngle("gun"))
---
> animator.rotateGroup("gun", animator.currentRotationAngle("gun"))
199c199
< local fireOffsets = entity.configParameter("fireOffsets")
---
> local fireOffsets = config.getParameter("fireOffsets")
206c206
< stateData.fireTimer = entity.configParameter("fireCooldown")
---
> stateData.fireTimer = config.getParameter("fireCooldown")
213,215c213,215
< if stateData.timer > entity.configParameter("targetHoldTime") then
< entity.setAnimationState("movement", "idle")
< entity.setAllOutboundNodes(false)
---
> if stateData.timer > config.getParameter("targetHoldTime") then
> animator.setAnimationState("movement", "idle")
> object.setAllOutboundNodes(false)
objects\avian\avianstoragelocker\avianstoragelocker.object
11c11
< "shortdescription" : "Avian Ship Locker",
---
> "shortdescription" : "Avian Storage Locker",
13c13
<
---
>
17,18c17,18
< "glitchDescription" : "Neutral. A metallic ship locker.",
< "humanDescription" : "It's an industrial looking ship locker.",
---
> "glitchDescription" : "Neutral. A metallic storage locker.",
> "humanDescription" : "It's an industrial looking storage locker.",
objects\avian\earthemblem\earthemblem.object
18c18
< "novakidDescription" : "I reckon this is an Avian emblem for earth",
---
> "novakidDescription" : "I reckon this is an Avian emblem for earth.",
objects\biome\crystalline\crystallinebush1\crystallinebush1.object
37c37
< [ [ "crystal", 1, { } ], [ "crystal", 1, { } ], [ "crystal", 1, { } ] ]
---
> [ [ "geode", 1, { } ], [ "geode", 1, { } ], [ "geode", 1, { } ] ]
objects\biome\crystalline\crystallinebush2\crystallinebush2.object
37c37
< [ [ "crystal", 1, { } ], [ "crystal", 1, { } ], [ "crystal", 1, { } ] ]
---
> [ [ "geode", 1, { } ], [ "geode", 1, { } ], [ "geode", 1, { } ] ]
objects\biome\crystalline\crystallinebush3\crystallinebush3.object
37c37
< [ [ "crystal", 1, { } ], [ "crystal", 1, { } ], [ "crystal", 1, { } ] ]
---
> [ [ "geode", 1, { } ], [ "geode", 1, { } ], [ "geode", 1, { } ] ]
objects\biome\crystalline\crystallinebush4\crystallinebush4.object
37c37
< [ [ "crystal", 1, { } ], [ "crystal", 1, { } ], [ "crystal", 1, { } ] ]
---
> [ [ "geode", 1, { } ], [ "geode", 1, { } ], [ "geode", 1, { } ] ]
objects\colony\colonydeed\colonydeed.lua
1c1,2
< require("/scripts/quest/participant.lua")
---
> require "/scripts/quest/participant.lua"
> require "/scripts/util.lua"
4c5
< self = entity.configParameter("deed")
---
> self = config.getParameter("deed")
6c7
< world.logInfo("Colony deed at %s is missing configuration.", entity.position())
---
> world.logInfo("Colony deed at %s is missing configuration.", object.position())
10,11c11,12
< entity.setInteractive(self.interactive)
< self.position = entity.toAbsolutePosition(self.position)
---
> object.setInteractive(self.interactive)
> self.position = object.toAbsolutePosition(self.position)
79c80
< entity.setAnimationState("deedState", "beacon")
---
> animator.setAnimationState("deedState", "beacon")
177c178
< local currentState = entity.animationState("deedState")
---
> local currentState = animator.animationState("deedState")
184c185
< entity.setAnimationState("deedState", "vacated")
---
> animator.setAnimationState("deedState", "vacated")
187c188
< entity.setAnimationState("deedState", "rentdue")
---
> animator.setAnimationState("deedState", "rentdue")
191c192
< entity.setAnimationState("deedState", "grumbling")
---
> animator.setAnimationState("deedState", "grumbling")
193c194
< entity.setAnimationState("deedState", "healing")
---
> animator.setAnimationState("deedState", "healing")
195c196
< entity.setAnimationState("deedState", "occupied")
---
> animator.setAnimationState("deedState", "occupied")
199c200
< entity.setAnimationState("deedState", "scanning")
---
> animator.setAnimationState("deedState", "scanning")
260c261
< return entity.randomizeParameterRange("deed.questScanFrequency")
---
> return util.randomInRange(config.getParameter("deed.questScanFrequency"))
262c263
< return entity.randomizeParameterRange("deed.scanFrequency")
---
> return util.randomInRange(config.getParameter("deed.scanFrequency"))
268c269
< return entity.randomizeParameterRange("deed.rentPeriodRange", rent.periodRange)
---
> return util.randomInRange(config.getParameter("deed.rentPeriodRange", rent.periodRange))
410c411
< tenant.seed = world.callScriptedEntity(entity, "entity.seed")
---
> tenant.seed = world.callScriptedEntity(entity, "object.seed")
425c426
< local uniqueId = world.entityUniqueId(entity.id())
---
> local uniqueId = entity.uniqueId()
449c450
< if entity.configParameter("owner") then
---
> if config.getParameter("owner") then
452c453
< world.sendEntityMessage(entity.configParameter("owner"), "colonyDeed.newHome", storage.occupier.tenants, storage.house.objects, storage.house.boundary)
---
> world.sendEntityMessage(config.getParameter("owner"), "colonyDeed.newHome", storage.occupier.tenants, storage.house.objects, storage.house.boundary)
480c481
< entity.setAnimationState("particles", "newArrival")
---
> animator.setAnimationState("particles", "newArrival")
487c488
< entity.setAnimationState("deedState", "error")
---
> animator.setAnimationState("deedState", "error")
objects\colony\colonydeed\scanning.lua
95c95
< local objectTags = world.objectConfigParameter(objectId, "colonyTags", {})
---
> local objectTags = world.getObjectParameter(objectId, "colonyTags", {})
objects\colony\colonydeed\timer.lua
0a1,2
> require "/scripts/util.lua"
>
2,7c4,9
< key = nil,
< delay = nil,
< timeCallback = nil,
< completeCallback = nil,
< loop = false
< }
---
> key = nil,
> delay = nil,
> timeCallback = nil,
> completeCallback = nil,
> loop = false
> }
57c59
< return entity.randomizeParameterRange(delay)
---
> return util.randomInRange(config.getParameter(delay))
objects\crafting\alloyfurnace\alloyfurnace.object
13c13
< "file" : "/interface/crafting/alloyfurnace.png"
---
> "file" : "/interface/crafting/craftingfurnace2.png"
objects\crafting\apothecary\apothecary.object
13c13
< "file" : "/interface/crafting/apothecaryicon.png"
---
> "file" : "/interface/crafting/craftingmedical.png"
objects\crafting\farmtable\farmtable.object
16c16
< "file" : "/interface/crafting/foragingicon.png"
---
> "file" : "/interface/crafting/craftingfarm.png"
objects\crafting\ironanvil\ironanvil.object
17c17
< "file" : "/interface/crafting/anvil.png"
---
> "file" : "/interface/crafting/craftinganvil.png"
objects\crafting\metalworkstation\metalworkstation.object
13c13
< "file" : "/interface/crafting/metalwork.png"
---
> "file" : "/interface/crafting/craftinganvil2.png"
objects\crafting\pixelcompressor\pixelcompressor.object
8c8
< "config" : "/interface/windowconfig/craftingnocategories.config",
---
> "config" : "/interface/windowconfig/crafting.config",
objects\crafting\scifianvil\scifianvil.object
13c13
< "file" : "/interface/crafting/scifianvil.png"
---
> "file" : "/interface/crafting/craftinganvil3.png"
objects\crafting\scififurnace\scififurnace.object
13c13
< "file" : "/interface/crafting/scififurnace.png"
---
> "file" : "/interface/crafting/craftingfurnace3.png"
objects\crafting\upgradeablecraftingobjects\upgradeablecraftingobject.lua
5c5
< entity.setInteractive(true)
---
> object.setInteractive(true)
8c8
< self.maxUpgradeStage=entity.configParameter("maxUpgradeStage")
---
> self.maxUpgradeStage=config.getParameter("maxUpgradeStage")
11c11
< local startUpgradeStage = entity.configParameter("startingUpgradeStage")
---
> local startUpgradeStage = config.getParameter("startingUpgradeStage")
19c19
< self.stageDataList = entity.configParameter("upgradeStages")
---
> self.stageDataList = config.getParameter("upgradeStages")
72c72
< entity.stopAllSounds(stageData.soundEffect, 0.5)
---
> animator.stopAllSounds(stageData.soundEffect, 0.5)
76c76
< entity.setLightActive(stageData.lightEffect,false)
---
> animator.setLightActive(stageData.lightEffect,false)
87c87
< entity.playSound(stageData.upgradeSoundEffect)
---
> animator.playSound(stageData.upgradeSoundEffect)
91c91
< entity.burstParticleEmitter(stageData.upgradeParticleEffect)
---
> animator.burstParticleEmitter(stageData.upgradeParticleEffect)
98c98
< entity.setAnimationState("stage", stageData.animName)
---
> animator.setAnimationState("stage", stageData.animName)
101c101
< entity.playSound(stageData.soundEffect, -1) -- -1 means loop forever.
---
> animator.playSound(stageData.soundEffect, -1) -- -1 means loop forever.
105c105
< entity.setLightActive(stageData.lightEffect,true)
---
> animator.setLightActive(stageData.lightEffect,true)
116c116
< local itemDescriptor = {name=entity.configParameter("objectName"), count=1, parameters=stageData.itemSpawnParameters}
---
> local itemDescriptor = {name=config.getParameter("objectName"), count=1, parameters=stageData.itemSpawnParameters}
118c118
< world.spawnItem(itemDescriptor, vec2.add(entity.position(), {0,3}) )
---
> world.spawnItem(itemDescriptor, vec2.add(object.position(), {0,3}) )
objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil.animation
17a18,22
> },
> "craftinganvil3" : {
> "frames" : 4,
> "cycle" : 0.4,
> "mode" : "loop"
38a44,71
> "image" : "craftinganvil2lit.png:."
> }
> },
>
> "craftinganvil3" : {
> "properties" : {
> "image" : "craftinganvil3lit.png:."
> }
> }
> }
> }
> },
>
> "lights" : {
> "properties" : {
> "centered" : true,
> "fullbright" : true
> },
> "partStates" : {
> "stage" : {
> "craftinganvil" : {
> "properties" : {
> "image" : "craftinganvil.png:."
> }
> },
>
> "craftinganvil2" : {
> "properties" : {
40a74,79
> },
>
> "craftinganvil3" : {
> "properties" : {
> "image" : "craftinganvil3.png:."
> }
64a104,115
> },
>
> "replicatorglow" : {
> "active" : false,
> "color" : [89, 119, 179],
> "position" : [0, 1],
>
> "flickerPeriod" : 0.9,
> "flickerMinIntensity" : 0.75,
> "flickerMaxIntensity" : 0.8,
> "flickerPeriodVariance" : 0,
> "flickerIntensityVariance" : 0
objects\crafting\upgradeablecraftingobjects\craftinganvil\craftinganvil.object
19c19
< "animationPosition" : [4, 8],
---
> "animationPosition" : [0, 12],
26c26
< "placementImagePosition" : [-8, 0],
---
> "placementImagePosition" : [-24, 0],
41c41
< "maxUpgradeStage" : 2,
---
> "maxUpgradeStage" : 3,
50c50
< "placementImagePosition" : [-8, 0],
---
> "placementImagePosition" : [-24, 0],
71c71
< "file" : "/interface/crafting/anvil.png"
---
> "file" : "/interface/crafting/craftinganvil.png"
94c94
< "placementImagePosition" : [-8, 0],
---
> "placementImagePosition" : [-24, 0],
115c115
< "file" : "/interface/crafting/anvil.png"
---
> "file" : "/interface/crafting/craftinganvil2.png"
119c119,127
< "filter" : [ "craftinganvil", "craftinganvil2" ]
---
> "filter" : [ "craftinganvil", "craftinganvil2" ],
> "upgradeMaterials" : [
> { "item" : "refinedaegisalt", "count" : 5 },
> { "item" : "refinedrubium", "count" : 5 },
> { "item" : "refinedviolium", "count" : 5 },
> { "item" : "battery", "count" : 1 },
> { "item" : "siliconboard", "count" : 10 },
> { "item" : "wire", "count" : 20 }
> ]
124a133,171
> },
>
> {
> "animName" : "craftinganvil3",
>
> "itemSpawnParameters" : {
> "inventoryIcon" : "craftinganvil3icon.png",
> "placementImage" : "craftinganvil3.png:default.default",
> "placementImagePosition" : [-24, 0],
>
> "description" : "This module can turn strong ores into high quality equipment.",
> "shortdescription" : "^orange;Replicator^white;",
>
> "apexDescription" : "A replicator. I can create high quality equipment with this.",
> "avianDescription" : "I can turn ores into good quality equipment from here.",
> "floranDescription" : "Floran make ssstrong weapon here.",
> "glitchDescription" : "Neutral. I can make equipment and more with this.",
> "humanDescription" : "I can create super strong equipment from this replicator.",
> "hylotlDescription" : "This replicator enables me to create high quality equipment from good quality materials.",
> "novakidDescription" : "I can make myself some great equipment using this replicator."
> },
>
> "interactData" : {
> "config" : "/interface/windowconfig/craftinganvil.config",
> "paneLayoutOverride" : {
> "windowtitle" : {
> "title" : " REPLICATOR",
> "subtitle" : " Armor and Weapons",
> "icon" : {
> "file" : "/interface/crafting/craftinganvil3.png"
> }
> }
> },
> "filter" : [ "craftinganvil", "craftinganvil2", "craftinganvil3" ]
> },
>
> "learnBlueprintsOnPickup" : [ "acceleratoraddon", "manipulatoraddon", "separatoraddon"],
>
> "lightEffect" : "replicatorglow"
133c180
< "imagePosition" : [-8, 0],
---
> "imagePosition" : [-24, 0],
141c188
< "imagePosition" : [-8, 0],
---
> "imagePosition" : [-24, 0],
objects\crafting\upgradeablecraftingobjects\craftinganvil\default.frames
3c3
< "size" : [24, 16],
---
> "size" : [48, 24],
objects\crafting\upgradeablecraftingobjects\craftingfarm\craftingfarm.object
75c75
< "file" : "/interface/crafting/foragingicon.png"
---
> "file" : "/interface/crafting/craftingfarm.png"
121c121
< "file" : "/interface/crafting/foragingicon.png"
---
> "file" : "/interface/crafting/craftingfarm2.png"
objects\crafting\upgradeablecraftingobjects\craftingfurniture\craftingfurniture.object
71c71
< "file" : "/interface/crafting/craftingtable.png"
---
> "file" : "/interface/crafting/craftingfurniture.png"
115c115
< "file" : "/interface/crafting/craftingtable.png"
---
> "file" : "/interface/crafting/craftingfurniture2.png"
objects\crafting\upgradeablecraftingobjects\craftingmedical\craftingmedical.object
71c71
< "file" : "/interface/crafting/apothecaryicon.png"
---
> "file" : "/interface/crafting/craftingmedical.png"
119c119
< "file" : "/interface/crafting/apothecaryicon.png"
---
> "file" : "/interface/crafting/craftingmedical2.png"
objects\crafting\upgradeablecraftingobjects\craftingwheel\craftingwheel.object
76c76
< "file" : "/interface/crafting/spinningwheel.png"
---
> "file" : "/interface/crafting/craftingwheel.png"
122c122
< "file" : "/interface/crafting/spinningwheel.png"
---
> "file" : "/interface/crafting/craftingwheel2.png"
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable.animation
20,21c20,21
< "frames" : 1,
< "cycle" : 1,
---
> "frames" : 8,
> "cycle" : 0.8,
49a50,78
> "image" : "inventorstable3lit.png:."
> }
> }
>
> }
> }
> },
>
> "light" : {
> "properties" : {
> "centered" : true,
> "fullbright" : true
> },
> "partStates" : {
> "stage" : {
> "inventorstable" : {
> "properties" : {
> "image" : "inventorstable.png:."
> }
> },
>
> "inventorstable2" : {
> "properties" : {
> "image" : "inventorstable2.png:."
> }
> },
>
> "inventorstable3" : {
> "properties" : {
65a95,107
> },
>
> "lights" : {
> "scifiglow" : {
> "active" : false,
> "position" : [0, 1],
> "color" : [31, 66, 102],
> "flickerPeriod" : 0.5,
> "flickerMinIntensity" : 0.95,
> "flickerMaxIntensity" : 1.0,
> "flickerPeriodVariance" : 0.0,
> "flickerIntensityVariance" : 0.0
> }
objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable.object
19c19
< "animationPosition" : [0, 19],
---
> "animationPosition" : [0, 18],
26c26
< "placementImagePosition" : [-16, 0],
---
> "placementImagePosition" : [-16, -1],
50c50
< "placementImagePosition" : [-16, 0],
---
> "placementImagePosition" : [-16, -1],
71c71
< "file" : "/interface/crafting/researchtable.png"
---
> "file" : "/interface/crafting/inventorstable.png"
97c97
< "placementImagePosition" : [-16, 0],
---
> "placementImagePosition" : [-16, -1],
118c118
< "file" : "/interface/crafting/researchtable.png"
---
> "file" : "/interface/crafting/inventorstable2.png"
125c125,127
< { "item" : "goldbar", "count" : 5 }
---
> { "item" : "battery", "count" : 1 },
> { "item" : "siliconboard", "count" : 5 },
> { "item" : "wire", "count" : 10 }
143c145
< "placementImagePosition" : [-16, 0],
---
> "placementImagePosition" : [-16, -1],
164c166
< "file" : "/interface/crafting/researchtable.png"
---
> "file" : "/interface/crafting/inventorstable3.png"
171c173,175
< "learnBlueprintsOnPickup" : []
---
> "learnBlueprintsOnPickup" : [],
>
> "lightEffect" : "scifiglow"
184c188
< "spaceScan" : 0.1,
---
> "spaces" : [ [-2,0], [-1,0], [0,0], [1,0], [-2,1], [-1,1], [0,1], [1,1], [-2,2], [-1,2], [0,2], [1,2], [-2,3], [-1,3], [0,3], [1,3], [-2,4], [-1,4], [0,4], [1,4] ],
191c195
< "spaceScan" : 0.1,
---
> "spaces" : [ [-2,0], [-1,0], [0,0], [1,0], [-2,1], [-1,1], [0,1], [1,1], [-2,2], [-1,2], [0,2], [1,2], [-2,3], [-1,3], [0,3], [1,3], [-2,4], [-1,4], [0,4], [1,4] ],
objects\crafting\wiringstation\wiringstation.object
7c7
< "config" : "/interface/windowconfig/craftingnocategories.config",
---
> "config" : "/interface/windowconfig/wiringstation.config",
17c17
< "filter" : [ "wiringstation" ]
---
> "filter" : [ "craftingwiring" ]
objects\crafting\woodencraftingtable\woodencraftingtable.object
13c13
< "file" : "/interface/crafting/researchtable.png"
---
> "file" : "/interface/crafting/inventorstable.png"
objects\farmables\flowerred\flowerred.object
17c17
< "novakidDescription" : "A red flower, I always wanna stop nΓÇÖ smell ΓÇÿem. I wonder why?",
---
> "novakidDescription" : "A red flower, I always wanna stop n' smell 'em. I wonder why?",
objects\farmables\toxictop\toxictopseed.object
6c6
< "description" : "A Toxic Top. Toxic, but also top!",
---
> "description" : "Toxic looking fruit, but is it all that bad?",
14,16c14,16
< "floranDescription" : "Floran feed Toxic Tops to friends as joke.",
< "glitchDescription" : "Analysis. This plant is toxic to every known species bar penguins.",
< "humanDescription" : "A toxic pineapple. My favourite dish.",
---
> "floranDescription" : "Floran feeds toxic tops to friendsss for fun.",
> "glitchDescription" : "Perplexed. This plant is toxic to every known species bar penguins.",
> "humanDescription" : "A toxic pineapple, for when a regular pineapple just isn't toxic enough.",
17a18
> "novakidDescription" : "I wouldnΓÇÖt trust anythinΓÇÖ with \"toxic\" in the name.",
objects\farmables\toxictop\wildtoxictopseed.object
6c6
< "description" : "A Toxic Top. Toxic, but also top!",
---
> "description" : "Toxic looking fruit, but is it all that bad?",
15,17c15,17
< "floranDescription" : "Floran feed Toxic Tops to friends as joke.",
< "glitchDescription" : "Analysis. This plant is toxic to every known species bar penguins.",
< "humanDescription" : "A toxic pineapple. My favourite dish.",
---
> "floranDescription" : "Floran feeds toxic tops to friendsss for fun.",
> "glitchDescription" : "Perplexed. This plant is toxic to every known species bar penguins.",
> "humanDescription" : "A toxic pineapple, for when a regular pineapple just isn't toxic enough.",
18a19
> "novakidDescription" : "I wouldnΓÇÖt trust anythinΓÇÖ with \"toxic\" in the name.",
objects\farmables\wartweed\wartweedseed.object
6c6
< "description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "description" : "Not a fussy plant, wartweed grow easily under any condition.",
12c12
< "apexDescription" : "An easily-sustainable crop.",
---
> "apexDescription" : "Wartweed is an easily-sustainable crop.",
14,17c14,18
< "floranDescription" : "Perfeccct for Floran to eat or kick.",
< "glitchDescription" : "Statement. The wartweed's skin is almost as tough as the Glitch's.",
< "humanDescription" : "Looking at this plant makes me feel a bit weird.",
< "hylotlDescription" : "A tough, dull plant favoured by poor farmers.",
---
> "floranDescription" : "Warweedss are perfect for Floran to eat or kick.",
> "glitchDescription" : "Observant. The skin of a wartweed is almost as tough as mine",
> "humanDescription" : "Looking at a warweed makes me feel a bit weird.",
> "hylotlDescription" : "Wartweed are tough, dull plants favoured for their ability to thrive in poor conditions.",
> "novakidDescription" : "I canΓÇÖt see a use for a crop so tough as a wartweed.",
objects\farmables\wartweed\wildwartweedseed.object
6c6
< "description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "description" : "Not a fussy plant, wartweed grow easily under any condition.",
13c13
< "apexDescription" : "An easily-sustainable crop.",
---
> "apexDescription" : "Wartweed is an easily-sustainable crop.",
15,18c15,19
< "floranDescription" : "Perfeccct for Floran to eat or kick.",
< "glitchDescription" : "Statement. The wartweed's skin is almost as tough as the Glitch's.",
< "humanDescription" : "Looking at this plant makes me feel a bit weird.",
< "hylotlDescription" : "A tough, dull plant favoured by poor farmers.",
---
> "floranDescription" : "Warweedss are perfect for Floran to eat or kick.",
> "glitchDescription" : "Observant. The skin of a wartweed is almost as tough as mine",
> "humanDescription" : "Looking at a warweed makes me feel a bit weird.",
> "hylotlDescription" : "Wartweed are tough, dull plants favoured for their ability to thrive in poor conditions.",
> "novakidDescription" : "I canΓÇÖt see a use for a crop so tough as a wartweed.",
objects\farmables\wheat\wheatseed.object
6c6
< "description" : "Wheat-- a staple crop!",
---
> "description" : "Wheat, a staple crop with many uses.",
12,16c12,16
< "apexDescription" : "Wheat is unpleasant on its own, but can be used to make banana bread.",
< "avianDescription" : "Delicious on its own, or when used to make breadcrumbs.",
< "floranDescription" : "Wheat has earsss. Floran pull off earsss.",
< "glitchDescription" : "Scientific. The Glitch wonder if all possible uses for wheat have been discovered yet.",
< "humanDescription" : "Wheat. Maybe it's time to bake some fresh bread.",
---
> "apexDescription" : "Wheat is unpleasant when unprocressed, but can be used to make all manner of dishes.",
> "avianDescription" : "Wheat is delicious on its own, or when used to make breadcrumbs.",
> "floranDescription" : "Wheat has earsss. Floran pull off earsss for fun.",
> "glitchDescription" : "Thoughtful. I wonder if all the possible uses for wheat have been found.",
> "humanDescription" : "Wheat, perfect for baking some fresh bread.",
17a18
> "novakidDescription" : "I get a hankerin' for fresh bread whenever I see wheat.",
objects\farmables\wheat\wildwheatseed.object
6c6
< "description" : "Wheat-- a staple crop!",
---
> "description" : "Wheat, a staple crop with many uses.",
13,17c13,17
< "apexDescription" : "Wheat is unpleasant on its own, but can be used to make banana bread.",
< "avianDescription" : "Delicious on its own, or when used to make breadcrumbs.",
< "floranDescription" : "Wheat has earsss. Floran pull off earsss.",
< "glitchDescription" : "Scientific. The Glitch wonder if all possible uses for wheat have been discovered yet.",
< "humanDescription" : "Wheat. Maybe it's time to bake some fresh bread.",
---
> "apexDescription" : "Wheat is unpleasant when unprocressed, but can be used to make all manner of dishes.",
> "avianDescription" : "Wheat is delicious on its own, or when used to make breadcrumbs.",
> "floranDescription" : "Wheat has earsss. Floran pull off earsss for fun.",
> "glitchDescription" : "Thoughtful. I wonder if all the possible uses for wheat have been found.",
> "humanDescription" : "Wheat, perfect for baking some fresh bread.",
18a19
> "novakidDescription" : "I get a hankerin' for fresh bread whenever I see wheat.",
objects\floran\floranbench\floranbench.object
14c14
< "glitchDescription" : "Perceptive. There is logic in the construction of this bench that one would assume is beyond the Floran.",
---
> "glitchDescription" : "Skeptical. There is logic in the construction of this bench that one would assume is beyond the Floran.",
16a17
> "novakidDescription" : "This bench seems as good a place as any to park my keister.",
objects\floran\floranbonedisplay1\floranbonedisplay1.object
8c8
< "description" : "Whoa! What kind of bone is that?",
---
> "description" : "The result of a successful Floran hunt.",
12,13c12,13
< "apexDescription" : "A gigantic bone. It looks like a trophy.",
< "avianDescription" : "What huge creature did this originate from?",
---
> "apexDescription" : "A gigantic bone being displayed like a trophy.",
> "avianDescription" : "What huge creature did this bone originate from?",
15c15
< "glitchDescription" : "Extrapolate. Based on the size of this bone, the creature it came from is likely bigger than an entire Glitch castle.",
---
> "glitchDescription" : "Fearful. Based on the size of this bone, the creature it came from is likely bigger than an entire Glitch castle.",
17c17,18
< "hylotlDescription" : "What creature did the Floran kill to obtain this... trophy?",
---
> "hylotlDescription" : "What creature did the Floran kill to obtain this... Trophy?",
> "novakidDescription" : "It must've taken some serious skill to take this guy down.",
objects\floran\floranstoragelocker\floranstoragelocker.object
11c11
< "shortdescription" : "Storage Locker",
---
> "shortdescription" : "Floran Storage Locker",
12a13,20
>
> "apexDescription" : "A locker made from metal.",
> "avianDescription" : "A place to keep your things.",
> "floranDescription" : "Floran can ssstuff things into locker.",
> "glitchDescription" : "Neutral. A metallic storage locker.",
> "humanDescription" : "It's an industrial looking storage locker.",
> "hylotlDescription" : "Somewhere to store personal belongings.",
> "novakidDescription" : "A locker in the wall.",
objects\generic\arcadegame\arcadegameobject.lua
3c3
< world.spawnItem(entity.configParameter("winningItem"), vec2.add(entity.position(), {0, 3}))
---
> world.spawnItem(config.getParameter("winningItem"), vec2.add(object.position(), {0, 3}))
objects\generic\foodbowl\foodbowl.lua
6c6
< entity.setAnimationState("bowl", "full")
---
> animator.setAnimationState("bowl", "full")
11c11
< entity.setAnimationState("bowl", "empty")
---
> animator.setAnimationState("bowl", "empty")
objects\glitch\anvil\anvil.object
17c17
< "file" : "/interface/crafting/anvil.png"
---
> "file" : "/interface/crafting/craftinganvil.png"
objects\glitch\glitchstoragelocker\glitchstoragelocker.object
5c5
< "printable" : false,
---
> "category" : "storage",
6a7
> "printable" : false,
9,10d9
<
< "category" : "storage",
12c11
< "shortdescription" : "Storage Locker",
---
> "shortdescription" : "Glitch Storage Locker",
13a13,20
>
> "apexDescription" : "A locker made from metal.",
> "avianDescription" : "A place to keep your things.",
> "floranDescription" : "Floran can ssstuff things into locker.",
> "glitchDescription" : "Neutral. A metallic storage locker.",
> "humanDescription" : "It's an industrial looking storage locker.",
> "hylotlDescription" : "Somewhere to store personal belongings.",
> "novakidDescription" : "A locker in the wall.",
objects\holiday\giftmonsterbox\giftmonsterbox.lua
7,8c7,8
< world.spawnMonster(entity.configParameter("monsterType"), entity.position())
< entity.smash()
---
> world.spawnMonster(config.getParameter("monsterType"), object.position())
> object.smash()
objects\human\bunkerrobotfactory\behavior.lua
12c12
< entity.setInteractive(false)
---
> object.setInteractive(false)
34c34
< local animation = entity.animationState("movement")
---
> local animation = animator.animationState("movement")
40c40
< entity.setAnimationState("movement", desiredAnimation)
---
> animator.setAnimationState("movement", desiredAnimation)
43c43
< entity.setAnimationState("movement", "close")
---
> animator.setAnimationState("movement", "close")
53c53
< if #self.spawnedEntityIds >= entity.configParameter("maxSpawnedRobots") then return nil end
---
> if #self.spawnedEntityIds >= config.getParameter("maxSpawnedRobots") then return nil end
69c69
< local animation = entity.animationState("movement")
---
> local animation = animator.animationState("movement")
72c72
< return true, entity.configParameter("spawnCooldownTime")
---
> return true, config.getParameter("spawnCooldownTime")
79c79
< if not stateData.spawned and stateData.timer > entity.configParameter("spawnTime") then
---
> if not stateData.spawned and stateData.timer > config.getParameter("spawnTime") then
89c89
< return vec2.add(entity.position(), entity.configParameter(configKey))
---
> return vec2.add(object.position(), config.getParameter(configKey))
objects\human\humanstoragelocker\humanstoragelocker.object
5c5
< "printable" : false,
---
> "category" : "storage",
6a7
> "printable" : false,
9,10d9
<
< "category" : "storage",
12c11
< "shortdescription" : "Storage Locker",
---
> "shortdescription" : "Human Storage Locker",
13a13,20
>
> "apexDescription" : "A locker made from metal.",
> "avianDescription" : "A place to keep your things.",
> "floranDescription" : "Floran can ssstuff things into locker.",
> "glitchDescription" : "Neutral. A metallic storage locker.",
> "humanDescription" : "It's an industrial looking storage locker.",
> "hylotlDescription" : "Somewhere to store personal belongings.",
> "novakidDescription" : "A locker in the wall.",
objects\hylotl\hylotlredalert\hylotlredalert.lua
3c3
< self.alarmSoundDuration = entity.configParameter("alarmSoundDuration")
---
> self.alarmSoundDuration = config.getParameter("alarmSoundDuration")
5c5
< self.lightColor = entity.configParameter("lightColor", {0, 187, 255})
---
> self.lightColor = config.getParameter("lightColor", {0, 187, 255})
9,10c9,10
< if entity.getInboundNodeLevel(0) then
< entity.setAnimationState("alarmState", "on")
---
> if object.getInboundNodeLevel(0) then
> animator.setAnimationState("alarmState", "on")
13c13
< entity.setLightColor({lightWave * self.lightColor[1], lightWave * self.lightColor[2], lightWave * self.lightColor[3]})
---
> object.setLightColor({lightWave * self.lightColor[1], lightWave * self.lightColor[2], lightWave * self.lightColor[3]})
16c16
< entity.playSound("alarm")
---
> animator.playSound("alarm")
23,24c23,24
< entity.setAnimationState("alarmState", "off")
< entity.setLightColor({0, 0, 0, 0})
---
> animator.setAnimationState("alarmState", "off")
> object.setLightColor({0, 0, 0, 0})
objects\hylotl\hylotlstoragelocker\hylotlstoragelocker.object
11c11
< "shortdescription" : "Storage Locker",
---
> "shortdescription" : "Hylotl Storage Locker",
12a13,20
>
> "apexDescription" : "A locker made from metal.",
> "avianDescription" : "A place to keep your things.",
> "floranDescription" : "Floran can ssstuff things into locker.",
> "glitchDescription" : "Neutral. A metallic storage locker.",
> "humanDescription" : "It's an industrial looking storage locker.",
> "hylotlDescription" : "Somewhere to store personal belongings.",
> "novakidDescription" : "A locker in the wall.",
objects\mission\lunarbaselaser\lunarbaselaser.lua
5c5
< entity.setInteractive(true)
---
> object.setInteractive(true)
8c8
< entity.setOutboundNodeLevel(1, storage.missionComplete)
---
> object.setOutboundNodeLevel(1, storage.missionComplete)
16c16
< entity.playSound("blip")
---
> animator.playSound("blip")
18c18
< entity.playSound("activate")
---
> animator.playSound("activate")
27c27
< entity.playSound("error")
---
> animator.playSound("error")
35c35
< entity.playSound("charge")
---
> animator.playSound("charge")
37c37
< entity.setAnimationState("laserState", "on")
---
> animator.setAnimationState("laserState", "on")
41,46c41,46
< entity.setOutboundNodeLevel(0, true)
< local power = entity.configParameter("projectilePower")
< local projectile = entity.configParameter("projectileType")
< local offset = entity.configParameter("projectileOffset")
< world.spawnProjectile(projectile, entity.toAbsolutePosition(offset), entity.id(), {0, 1}, true, {power = power, damageType = "IgnoresDef"})
< entity.playSound("fire")
---
> object.setOutboundNodeLevel(0, true)
> local power = config.getParameter("projectilePower")
> local projectile = config.getParameter("projectileType")
> local offset = config.getParameter("projectileOffset")
> world.spawnProjectile(projectile, object.toAbsolutePosition(offset), entity.id(), {0, 1}, true, {power = power, damageType = "IgnoresDef"})
> animator.playSound("fire")
49c49
< entity.setOutboundNodeLevel(0, false)
---
> object.setOutboundNodeLevel(0, false)
53c53
< entity.setAnimationState("laserState", "off."..activeNodes)
---
> animator.setAnimationState("laserState", "off."..activeNodes)
55c55
< entity.setAnimationState("laserState", "charged")
---
> animator.setAnimationState("laserState", "charged")
63c63
< if entity.getInboundNodeLevel(i) then
---
> if object.getInboundNodeLevel(i) then
72c72
< entity.setOutboundNodeLevel(1, true)
---
> object.setOutboundNodeLevel(1, true)
objects\mission\proximitywallsensor\proximitywallsensor.lua
2,5c2,5
< self.detectEntityTypes = entity.configParameter("detectEntityTypes")
< self.detectBoundMode = entity.configParameter("detectBoundMode", "CollisionArea")
< local detectArea = entity.configParameter("detectArea")
< local pos = entity.position()
---
> self.detectEntityTypes = config.getParameter("detectEntityTypes")
> self.detectBoundMode = config.getParameter("detectBoundMode", "CollisionArea")
> local detectArea = config.getParameter("detectArea")
> local pos = object.position()
20,22c20,22
< entity.setInteractive(entity.configParameter("interactive", true))
< entity.setAllOutboundNodes(false)
< entity.setAnimationState("switchState", "off")
---
> object.setInteractive(config.getParameter("interactive", true))
> object.setAllOutboundNodes(false)
> animator.setAnimationState("switchState", "off")
27,29c27,29
< entity.setAllOutboundNodes(true)
< entity.setAnimationState("switchState", "on")
< self.triggerTimer = entity.configParameter("detectDuration")
---
> object.setAllOutboundNodes(true)
> animator.setAnimationState("switchState", "on")
> self.triggerTimer = config.getParameter("detectDuration")
48,49c48,49
< entity.setAllOutboundNodes(false)
< entity.setAnimationState("switchState", "off")
---
> object.setAllOutboundNodes(false)
> animator.setAnimationState("switchState", "off")
objects\mission\templepressureplatform\templepressureplatform.object
51,52c51,52
< "stayClosedTime" : 0.5, // before the platform disappears
< "stayOpenTime" : 3.0 // after the platform has disappeared and all players have left
---
> "stayClosedTime" : 0.18, // before the platform disappears
> "stayOpenTime" : 2.0 // after the platform has disappeared and all players have left
objects\noisy\noisy.lua
2,4c2,4
< self.sounds = entity.configParameter("sounds", {})
< entity.setSoundPool("noise", self.sounds)
< entity.setInteractive(true)
---
> self.sounds = config.getParameter("sounds", {})
> animator.setSoundPool("noise", self.sounds)
> object.setInteractive(true)
9c9
< entity.playSound("noise")
---
> animator.playSound("noise")
14c14
< local interact = entity.configParameter("npcToy.interactOnNpcPlayStart")
---
> local interact = config.getParameter("npcToy.interactOnNpcPlayStart")
objects\novakid\novakidstoragelocker\novakidstoragelocker.object
5c5
< "printable" : false,
---
> "category" : "storage",
6a7
> "printable" : false,
9,10d9
<
< "category" : "storage",
12c11
< "shortdescription" : "Storage Locker",
---
> "shortdescription" : "Novakid Storage Locker",
13a13,20
>
> "apexDescription" : "A locker made from metal.",
> "avianDescription" : "A place to keep your things.",
> "floranDescription" : "Floran can ssstuff things into locker.",
> "glitchDescription" : "Neutral. A metallic storage locker.",
> "humanDescription" : "It's an industrial looking storage locker.",
> "hylotlDescription" : "Somewhere to store personal belongings.",
> "novakidDescription" : "A locker in the wall.",
objects\outpost\customsign\customsign.lua
2,6c2,6
< self.signDirectiveStrings = entity.configParameter("signData")
< self.lightFrames = entity.configParameter("lightData")
< self.signLight = entity.configParameter("signLight")
< self.signBacking = entity.configParameter("signBacking")
< self.frameColors = entity.configParameter("frameColors")
---
> self.signDirectiveStrings = config.getParameter("signData")
> self.lightFrames = config.getParameter("lightData")
> self.signLight = config.getParameter("signLight")
> self.signBacking = config.getParameter("signBacking")
> self.frameColors = config.getParameter("frameColors")
8c8
< entity.setAnimationState("displayedState", "idle")
---
> animator.setAnimationState("displayedState", "idle")
10,11c10,11
< self.isWired = entity.configParameter("isWired")
< self.isContainer = entity.configParameter("isContainer")
---
> self.isWired = config.getParameter("isWired")
> self.isContainer = config.getParameter("isContainer")
15,16c15,16
< entity.setInteractive(not entity.isInboundNodeConnected(0))
< entity.setAllOutboundNodes(storage.isOn)
---
> object.setInteractive(not object.isInboundNodeConnected(0))
> object.setAllOutboundNodes(storage.isOn)
19c19
< self.scanCooldown = entity.configParameter("scanCooldown", 1)
---
> self.scanCooldown = config.getParameter("scanCooldown", 1)
22c22
< self.drawCooldown = entity.configParameter("drawCooldown", 0.5)
---
> self.drawCooldown = config.getParameter("drawCooldown", 0.5)
55,57c55,57
< entity.setInteractive(not entity.isInboundNodeConnected(0))
< if entity.isInboundNodeConnected(0) then
< onInboundNodeChange({ level = entity.getInboundNodeLevel(0) })
---
> object.setInteractive(not object.isInboundNodeConnected(0))
> if object.isInboundNodeConnected(0) then
> onInboundNodeChange({ level = object.getInboundNodeLevel(0) })
72c72
< entity.setAllOutboundNodes(storage.isOn)
---
> object.setAllOutboundNodes(storage.isOn)
78c78
< entity.setLightColor({math.random(0,255), math.random(0,255), math.random(0,255), math.random(0,255)})
---
> object.setLightColor({math.random(0,255), math.random(0,255), math.random(0,255), math.random(0,255)})
83c83
< entity.setAllOutboundNodes(false)
---
> object.setAllOutboundNodes(false)
87c87
< entity.setAllOutboundNodes(true)
---
> object.setAllOutboundNodes(true)
144c144
< --world.logInfo("%s %s at %s", entity.name(), entity.id(), entity.position())
---
> --world.logInfo("%s %s at %s", object.name(), entity.id(), object.position())
149,150c149,150
< if world.tileIsOccupied({entity.position()[1] + v[1][1], entity.position()[2] + v[1][2]}) then
< local nearObjects = world.entityQuery({entity.position()[1] + v[1][1] + 0.5, entity.position()[2] + v[1][2] + 0.5}, 0.2, { includedTypes = { "object" }, boundMode = "CollisionArea", withoutEntityId = entity.id() })
---
> if world.tileIsOccupied({object.position()[1] + v[1][1], object.position()[2] + v[1][2]}) then
> local nearObjects = world.entityQuery({object.position()[1] + v[1][1] + 0.5, object.position()[2] + v[1][2] + 0.5}, 0.2, { includedTypes = { "object" }, boundMode = "CollisionArea", withoutEntityId = entity.id() })
153c153
< local signPos = world.distance(world.entityPosition(objectId) , entity.position())
---
> local signPos = world.distance(world.entityPosition(objectId) , object.position())
194c194
< -- entity.setLightColor({lightRGB[1], lightRGB[2], lightRGB[3], 255})
---
> -- object.setLightColor({lightRGB[1], lightRGB[2], lightRGB[3], 255})
196c196
< -- entity.setLightColor({0, 0, 0, 0})
---
> -- object.setLightColor({0, 0, 0, 0})
199c199
< entity.setLightColor(convertRGBAtoArray(self.signLight))
---
> object.setLightColor(convertRGBAtoArray(self.signLight))
201c201
< entity.setLightColor({0, 0, 0, 0})
---
> object.setLightColor({0, 0, 0, 0})
217c217
< entity.setProcessingDirectives(storage.storedDirectiveString..frameDirectiveString)
---
> object.setProcessingDirectives(storage.storedDirectiveString..frameDirectiveString)
objects\outpost\frogfurnishing\frogfurnishing.lua
2c2
< self.buyFactor = entity.configParameter("buyFactor", root.assetJson("/merchant.config").defaultBuyFactor)
---
> self.buyFactor = config.getParameter("buyFactor", root.assetJson("/merchant.config").defaultBuyFactor)
4c4
< entity.setInteractive(true)
---
> object.setInteractive(true)
8c8
< local interactData = entity.configParameter("interactData")
---
> local interactData = config.getParameter("interactData")
17c17
< local storeInventory = entity.configParameter("storeInventory")
---
> local storeInventory = config.getParameter("storeInventory")
22c22
< local featureCycle = math.floor(os.time() / (entity.configParameter("rotationTime") * #storeInventory.featured))
---
> local featureCycle = math.floor(os.time() / (config.getParameter("rotationTime") * #storeInventory.featured))
26c26
< local currentFeature = math.floor(os.time() / entity.configParameter("rotationTime")) % #storeInventory.featured + 1
---
> local currentFeature = math.floor(os.time() / config.getParameter("rotationTime")) % #storeInventory.featured + 1
objects\outpost\penguinbay\penguinbay.lua
2,4c2,4
< self.detectArea = entity.configParameter("detectArea")
< self.detectArea[1] = entity.toAbsolutePosition(self.detectArea[1])
< self.detectArea[2] = entity.toAbsolutePosition(self.detectArea[2])
---
> self.detectArea = config.getParameter("detectArea")
> self.detectArea[1] = object.toAbsolutePosition(self.detectArea[1])
> self.detectArea[2] = object.toAbsolutePosition(self.detectArea[2])
6c6
< entity.setAnimationState("proximity", "off")
---
> animator.setAnimationState("proximity", "off")
15,18c15,18
< if #players > 0 and entity.animationState("proximity") == "off" then
< entity.setAnimationState("proximity", "open")
< elseif #players == 0 and entity.animationState("proximity") == "on" then
< entity.setAnimationState("proximity", "close")
---
> if #players > 0 and animator.animationState("proximity") == "off" then
> animator.setAnimationState("proximity", "open")
> elseif #players == 0 and animator.animationState("proximity") == "on" then
> animator.setAnimationState("proximity", "close")
23c23
< local chatOptions = entity.configParameter("chatOptions", {})
---
> local chatOptions = config.getParameter("chatOptions", {})
25c25
< entity.say(chatOptions[math.random(1, #chatOptions)])
---
> object.say(chatOptions[math.random(1, #chatOptions)])
objects\outpost\repairo\repairo.lua
2c2
< self.chatOptions = entity.configParameter("chatOptions", {})
---
> self.chatOptions = config.getParameter("chatOptions", {})
9c9
< local players = world.entityQuery(entity.position(), entity.configParameter("chatRadius"), {
---
> local players = world.entityQuery(object.position(), config.getParameter("chatRadius"), {
15,16c15,16
< entity.say(self.chatOptions[math.random(1, #self.chatOptions)])
< self.chatTimer = entity.configParameter("chatCooldown")
---
> object.say(self.chatOptions[math.random(1, #self.chatOptions)])
> self.chatTimer = config.getParameter("chatCooldown")
27c27
< healthFactor = math.min(healthFactor + entity.configParameter("chipRepairFactor", 1.0), 1.0)
---
> healthFactor = math.min(healthFactor + config.getParameter("chipRepairFactor", 1.0), 1.0)
objects\outpost\signstore\signdispenser.lua
3c3
< matchingEaselList = world.objectQuery({entity.position()[1]-4,entity.position()[2]},1)
---
> matchingEaselList = world.objectQuery({object.position()[1]-4,object.position()[2]},1)
objects\outpost\signstore\signstoreobject.lua
2c2
< storeData(entity.configParameter("storedStorage"), entity.configParameter("storedTemplates"))
---
> storeData(config.getParameter("storedStorage"), config.getParameter("storedTemplates"))
17c17
< local matchingCabinetList = world.objectQuery({entity.position()[1]+7,entity.position()[2]},1)
---
> local matchingCabinetList = world.objectQuery({object.position()[1]+7,object.position()[2]},1)
objects\scripts\autofill.lua
2c2
< self.autofillContents = entity.configParameter("autofillContents", {})
---
> self.autofillContents = config.getParameter("autofillContents", {})
objects\spawner\monsterspawner.lua
0a1,2
> require "/scripts/util.lua"
>
2c4
< self = entity.configParameter("spawner")
---
> self = config.getParameter("spawner")
4c6
< world.logInfo("Monster spawner at %s is missing configuration! Prepare for some serious Lua errors!", entity.position())
---
> world.logInfo("Monster spawner at %s is missing configuration! Prepare for some serious Lua errors!", object.position())
8,10c10,12
< entity.setInteractive(self.trigger == "interact")
< self.position = entity.toAbsolutePosition(self.position)
< storage.cooldown = storage.cooldown or entity.randomizeParameterRange("spawner.frequency")
---
> object.setInteractive(self.trigger == "interact")
> self.position = object.toAbsolutePosition(self.position)
> storage.cooldown = storage.cooldown or util.randomInRange(config.getParameter("spawner.frequency"))
24c26
< if storage.cooldown <= 0 and ((not self.trigger) or (self.trigger == "wire" and entity.getInboundNodeLevel(0))) then
---
> if storage.cooldown <= 0 and ((not self.trigger) or (self.trigger == "wire" and object.getInboundNodeLevel(0))) then
26c28
< storage.cooldown = entity.randomizeParameterRange("spawner.frequency")
---
> storage.cooldown = util.randomInRange(config.getParameter("spawner.frequency"))
44,45c46,47
< local monsterType = entity.randomizeParameter("spawner.monsterTypes")
< self.monsterParams.level = entity.randomizeParameterRange("spawner.monsterLevel")
---
> local monsterType = util.randomFromList(config.getParameter("spawner.monsterTypes"))
> self.monsterParams.level = util.randomInRange(config.getParameter("spawner.monsterLevel"))
objects\spawner\shippetspawner.lua
6,7c6,7
< self.monsterType = entity.configParameter("shipPetType", "petcat")
< self.spawnOffset = entity.configParameter("spawnOffset", {0, 2})
---
> self.monsterType = config.getParameter("shipPetType", "petcat")
> self.spawnOffset = config.getParameter("spawnOffset", {0, 2})
30c30
< self.petId = world.spawnMonster(self.monsterType, entity.toAbsolutePosition(self.spawnOffset), storage.petParams)
---
> self.petId = world.spawnMonster(self.monsterType, object.toAbsolutePosition(self.spawnOffset), storage.petParams)
objects\spawner\spawners\spawner.lua
0a1,2
> require "/scripts/util.lua"
>
2,3c4,5
< entity.setInteractive(false)
< entity.setAnimationState("switchState", "on")
---
> object.setInteractive(false)
> animator.setAnimationState("switchState", "on")
7c9
< if world.isVisibleToPlayer(entity.boundBox()) then
---
> if world.isVisibleToPlayer(object.boundBox()) then
10,15c12,17
< local npcSpecies = entity.randomizeParameter("spawner.npcSpeciesOptions")
< local npcType = entity.randomizeParameter("spawner.npcTypeOptions")
< local npcParameter = entity.randomizeParameter("spawner.npcParameterOptions")
< npcParameter.scriptConfig = { spawnedBy = entity.position() }
< world.spawnNpc(entity.toAbsolutePosition({ 0.0, 2.0 }), npcSpecies, npcType, math.max(entity.level(), 1), nil, npcParameter);
< entity.smash()
---
> local npcSpecies = util.randomFromList(config.getParameter("spawner.npcSpeciesOptions"))
> local npcType = util.randomFromList(config.getParameter("spawner.npcTypeOptions"))
> local npcParameter = util.randomFromList(config.getParameter("spawner.npcParameterOptions"))
> npcParameter.scriptConfig = { spawnedBy = object.position() }
> world.spawnNpc(object.toAbsolutePosition({ 0.0, 2.0 }), npcSpecies, npcType, math.max(object.level(), 1), nil, npcParameter);
> object.smash()
objects\themed\island\hulagirl\hulagirl.lua
2,3c2,3
< entity.setInteractive(true)
< entity.setAnimationState("sway", "stop")
---
> object.setInteractive(true)
> animator.setAnimationState("sway", "stop")
7c7
< entity.setAnimationState("sway", "sway1")
---
> animator.setAnimationState("sway", "sway1")
objects\themed\saloon\saloondoor\saloondoor.lua
2,3c2,3
< local detectArea = entity.configParameter("detectArea")
< local pos = entity.position()
---
> local detectArea = config.getParameter("detectArea")
> local pos = object.position()
20c20
< if entity.animationState("doorState") == "closed" then
---
> if animator.animationState("doorState") == "closed" then
29,30c29,30
< entity.setAnimationState("doorState", "swingRight")
< entity.playSound("swing")
---
> animator.setAnimationState("doorState", "swingRight")
> animator.playSound("swing")
32,33c32,33
< entity.setAnimationState("doorState", "swingLeft")
< entity.playSound("swing")
---
> animator.setAnimationState("doorState", "swingLeft")
> animator.playSound("swing")
40,41c40,41
< local relative = {position[1] - entity.position()[1], position[2] - entity.position()[2]}
< for _, space in ipairs(entity.spaces()) do
---
> local relative = {position[1] - object.position()[1], position[2] - object.position()[2]}
> for _, space in ipairs(object.spaces()) do
objects\wired\alarm\alarm.lua
3c3
< self.alarmSoundDuration = entity.configParameter("alarmSoundDuration")
---
> self.alarmSoundDuration = config.getParameter("alarmSoundDuration")
5c5
< self.lightColor = entity.configParameter("lightColor", {255, 0, 0})
---
> self.lightColor = config.getParameter("lightColor", {255, 0, 0})
9,10c9,10
< if entity.getInboundNodeLevel(0) then
< entity.setAnimationState("alarmState", "on")
---
> if object.getInboundNodeLevel(0) then
> animator.setAnimationState("alarmState", "on")
13c13
< entity.setLightColor({lightWave * self.lightColor[1], lightWave * self.lightColor[2], lightWave * self.lightColor[3]})
---
> object.setLightColor({lightWave * self.lightColor[1], lightWave * self.lightColor[2], lightWave * self.lightColor[3]})
16c16
< entity.playSound("alarm")
---
> animator.playSound("alarm")
23,24c23,24
< entity.setAnimationState("alarmState", "off")
< entity.setLightColor({0, 0, 0, 0})
---
> animator.setAnimationState("alarmState", "off")
> object.setLightColor({0, 0, 0, 0})
objects\wired\door\door.lua
2c2
< setDirection(storage.doorDirection or entity.direction())
---
> setDirection(storage.doorDirection or object.direction())
5c5
< storage.locked = entity.configParameter("locked", false)
---
> storage.locked = config.getParameter("locked", false)
11c11
< entity.setAnimationState("doorState", storage.state and "open" or "closed")
---
> animator.setAnimationState("doorState", storage.state and "open" or "closed")
21,22c21,22
< if entity.isInboundNodeConnected(0) then
< onInboundNodeChange({ level = entity.getInboundNodeLevel(0) })
---
> if object.isInboundNodeConnected(0) then
> onInboundNodeChange({ level = object.getInboundNodeLevel(0) })
36c36
< entity.playSound("locked")
---
> animator.playSound("locked")
48c48
< entity.setLightColor(entity.configParameter("closedLight", {0,0,0,0}))
---
> object.setLightColor(config.getParameter("closedLight", {0,0,0,0}))
50c50
< entity.setLightColor(entity.configParameter("openLight", {0,0,0,0}))
---
> object.setLightColor(config.getParameter("openLight", {0,0,0,0}))
55c55
< entity.setInteractive(entity.configParameter("interactive", true) and not entity.isInboundNodeConnected(0))
---
> object.setInteractive(config.getParameter("interactive", true) and not object.isInboundNodeConnected(0))
59,60c59,60
< entity.setColliding(not storage.state)
< entity.setAllOutboundNodes(storage.state)
---
> object.setColliding(not storage.state)
> object.setAllOutboundNodes(storage.state)
65c65
< entity.setGlobalTag("doorDirection", direction < 0 and "Left" or "Right")
---
> animator.setGlobalTag("doorDirection", direction < 0 and "Left" or "Right")
69c69
< if entity.isInboundNodeConnected(0) or storage.locked then
---
> if object.isInboundNodeConnected(0) or storage.locked then
83,84c83,84
< local relative = {position[1] - entity.position()[1], position[2] - entity.position()[2]}
< for _, space in ipairs(entity.spaces()) do
---
> local relative = {position[1] - object.position()[1], position[2] - object.position()[2]}
> for _, space in ipairs(object.spaces()) do
99,100c99,100
< entity.playSound("close")
< entity.setAnimationState("doorState", "locking")
---
> animator.playSound("close")
> animator.setAnimationState("doorState", "locking")
103c103
< entity.setAnimationState("doorState", "locked")
---
> animator.setAnimationState("doorState", "locked")
112c112
< entity.setAnimationState("doorState", "closed")
---
> animator.setAnimationState("doorState", "closed")
119,120c119,120
< entity.playSound("close")
< entity.setAnimationState("doorState", "closing")
---
> animator.playSound("close")
> animator.setAnimationState("doorState", "closing")
130,132c130,132
< setDirection((direction == nil or direction * entity.direction() < 0) and -1 or 1)
< entity.playSound("open")
< entity.setAnimationState("doorState", "open")
---
> setDirection((direction == nil or direction * object.direction() < 0) and -1 or 1)
> animator.playSound("open")
> animator.setAnimationState("doorState", "open")
objects\wired\door\trapdoor.lua
9,12c9,12
< self.detectEntityTypes = entity.configParameter("detectEntityTypes", {"player", "npc"})
< self.detectBoundMode = entity.configParameter("detectBoundMode", "CollisionArea")
< local detectArea = entity.configParameter("detectArea")
< local pos = entity.position()
---
> self.detectEntityTypes = config.getParameter("detectEntityTypes", {"player", "npc"})
> self.detectBoundMode = config.getParameter("detectBoundMode", "CollisionArea")
> local detectArea = config.getParameter("detectArea")
> local pos = object.position()
14c14
< local boundBox = entity.boundBox()
---
> local boundBox = object.boundBox()
33,34c33,34
< self.stayClosedTime = entity.configParameter("stayClosedTime", 0.5)
< self.stayOpenTime = entity.configParameter("stayOpenTime", 0.5)
---
> self.stayClosedTime = config.getParameter("stayClosedTime", 0.5)
> self.stayOpenTime = config.getParameter("stayOpenTime", 0.5)
39c39
< entity.setInteractive(false)
---
> object.setInteractive(false)
43,44c43,44
< if not entity.isInboundNodeConnected(0) then
< if entity.animationState("doorState") == "closed" then
---
> if not object.isInboundNodeConnected(0) then
> if animator.animationState("doorState") == "closed" then
54c54
< elseif entity.animationState("doorState") == "open" then
---
> elseif animator.animationState("doorState") == "open" then
objects\wired\drain\drain.lua
2c2
< self.drainPos = entity.position()
---
> self.drainPos = object.position()
15c15
< entity.setAnimationState("drainState", "on")
---
> animator.setAnimationState("drainState", "on")
17c17
< entity.setAnimationState("drainState", "off")
---
> animator.setAnimationState("drainState", "off")
30c30
< if not entity.isInboundNodeConnected(0) or entity.getInboundNodeLevel(0) then
---
> if not object.isInboundNodeConnected(0) or object.getInboundNodeLevel(0) then
objects\wired\forcepad\forcepad.lua
14c14
< local active = not entity.isInboundNodeConnected(0) or entity.getInboundNodeLevel(0)
---
> local active = not object.isInboundNodeConnected(0) or object.getInboundNodeLevel(0)
16c16
< entity.setAnimationState("padState", active and "on" or "off")
---
> animator.setAnimationState("padState", active and "on" or "off")
objects\wired\invisiblesound\invisiblesound.lua
14c14
< local newState = entity.isInboundNodeConnected(0) and entity.getInboundNodeLevel(0)
---
> local newState = object.isInboundNodeConnected(0) and object.getInboundNodeLevel(0)
18,20c18,20
< entity.playSound("on")
< entity.setSoundEffectEnabled(true)
< entity.setAnimationState("soundState", "on")
---
> animator.playSound("on")
> object.setSoundEffectEnabled(true)
> animator.setAnimationState("soundState", "on")
22,24c22,24
< entity.playSound("off")
< entity.setSoundEffectEnabled(false)
< entity.setAnimationState("soundState", "off")
---
> animator.playSound("off")
> object.setSoundEffectEnabled(false)
> animator.setAnimationState("soundState", "off")
objects\wired\ironbeacon\decoyprincess.lua
2c2
< if world.underground(entity.position()) then
---
> if world.underground(object.position()) then
6,7c6,7
< local ll = entity.toAbsolutePosition({ -4.0, 1.0 })
< local tr = entity.toAbsolutePosition({ 4.0, 32.0 })
---
> local ll = object.toAbsolutePosition({ -4.0, 1.0 })
> local tr = object.toAbsolutePosition({ 4.0, 32.0 })
19c19
< entity.setInteractive(true)
---
> object.setInteractive(true)
26,28c26,28
< entity.smash()
< world.spawnProjectile("regularexplosionknockback", entity.toAbsolutePosition({ 0.0, 1.0 }))
< world.spawnMonster("dragonboss", entity.toAbsolutePosition({ 0.0, 30.0 }), { level = 3 })
---
> object.smash()
> world.spawnProjectile("regularexplosionknockback", object.toAbsolutePosition({ 0.0, 1.0 }))
> world.spawnMonster("dragonboss", object.toAbsolutePosition({ 0.0, 30.0 }), { level = 3 })
objects\wired\ironbeacon\ironbeacon.lua
2c2
< if world.underground(entity.position()) then
---
> if world.underground(object.position()) then
6,7c6,7
< local ll = entity.toAbsolutePosition({ -4.0, 1.0 })
< local tr = entity.toAbsolutePosition({ 4.0, 32.0 })
---
> local ll = object.toAbsolutePosition({ -4.0, 1.0 })
> local tr = object.toAbsolutePosition({ 4.0, 32.0 })
19c19
< entity.setInteractive(true)
---
> object.setInteractive(true)
21c21
< entity.setAnimationState("beaconState", "idle")
---
> animator.setAnimationState("beaconState", "idle")
23c23
< entity.setAnimationState("beaconState", "active")
---
> animator.setAnimationState("beaconState", "active")
29c29
< entity.setAnimationState("beaconState", "idle")
---
> animator.setAnimationState("beaconState", "idle")
32,35c32,35
< entity.setAnimationState("beaconState", "active")
< world.spawnProjectile("regularexplosionknockback", entity.toAbsolutePosition({ 0.0, 1.0 }))
< entity.smash()
< world.spawnMonster("penguinUfo", entity.toAbsolutePosition({ 0.0, 32.0 }), { level = 1 })
---
> animator.setAnimationState("beaconState", "active")
> world.spawnProjectile("regularexplosionknockback", object.toAbsolutePosition({ 0.0, 1.0 }))
> object.smash()
> world.spawnMonster("penguinUfo", object.toAbsolutePosition({ 0.0, 32.0 }), { level = 1 })
objects\wired\ironbeacon\jellyboss.lua
2c2
< if world.underground(entity.position()) then
---
> if world.underground(object.position()) then
6,7c6,7
< local ll = entity.toAbsolutePosition({ -4.0, 1.0 })
< local tr = entity.toAbsolutePosition({ 4.0, 32.0 })
---
> local ll = object.toAbsolutePosition({ -4.0, 1.0 })
> local tr = object.toAbsolutePosition({ 4.0, 32.0 })
19c19
< entity.setInteractive(true)
---
> object.setInteractive(true)
26,30c26,30
< entity.smash()
< world.spawnProjectile("regularexplosionknockback", entity.toAbsolutePosition({ 0.0, 1.0 }))
< world.spawnMonster("jellyboss", entity.toAbsolutePosition({ 0.0, 40.0 }), { level = 4 })
< world.spawnMonster("skeyejelly", entity.toAbsolutePosition({ 20.0, 40.0 }), { level = 4 })
< world.spawnMonster("skeyejelly", entity.toAbsolutePosition({ -20.0, 40.0 }), { level = 4 })
---
> object.smash()
> world.spawnProjectile("regularexplosionknockback", object.toAbsolutePosition({ 0.0, 1.0 }))
> world.spawnMonster("jellyboss", object.toAbsolutePosition({ 0.0, 40.0 }), { level = 4 })
> world.spawnMonster("skeyejelly", object.toAbsolutePosition({ 20.0, 40.0 }), { level = 4 })
> world.spawnMonster("skeyejelly", object.toAbsolutePosition({ -20.0, 40.0 }), { level = 4 })
objects\wired\ironbeacon\robot.lua
2c2
< if world.underground(entity.position()) then
---
> if world.underground(object.position()) then
6,7c6,7
< local ll = entity.toAbsolutePosition({ -4.0, 1.0 })
< local tr = entity.toAbsolutePosition({ 4.0, 32.0 })
---
> local ll = object.toAbsolutePosition({ -4.0, 1.0 })
> local tr = object.toAbsolutePosition({ 4.0, 32.0 })
19c19
< entity.setInteractive(true)
---
> object.setInteractive(true)
26,28c26,28
< entity.smash()
< world.spawnProjectile("robotwake", entity.toAbsolutePosition({ 0.0, 1.0 }))
< world.spawnMonster("robotboss", entity.toAbsolutePosition({ 0.0, 5.0 }), { level = 2 })
---
> object.smash()
> world.spawnProjectile("robotwake", object.toAbsolutePosition({ 0.0, 1.0 }))
> world.spawnMonster("robotboss", object.toAbsolutePosition({ 0.0, 5.0 }), { level = 2 })
objects\wired\landmine\landmine.lua
2,4c2,4
< entity.setInteractive(true)
< entity.setAllOutboundNodes(false)
< entity.setAnimationState("switchState", "off")
---
> object.setInteractive(true)
> object.setAllOutboundNodes(false)
> animator.setAnimationState("switchState", "off")
9,12c9,12
< entity.setAllOutboundNodes(true)
< entity.setAnimationState("switchState", "on")
< if entity.configParameter("firstProjectile") ~= nil then
< world.spawnProjectile(entity.configParameter("firstProjectile"), entity.toAbsolutePosition({ 0.0, 0.2 }))
---
> object.setAllOutboundNodes(true)
> animator.setAnimationState("switchState", "on")
> if config.getParameter("firstProjectile") ~= nil then
> world.spawnProjectile(config.getParameter("firstProjectile"), object.toAbsolutePosition({ 0.0, 0.2 }))
14c14
< self.projectileCooldown = entity.configParameter("timer")
---
> self.projectileCooldown = config.getParameter("timer")
25,26c25,26
< if entity.configParameter("secondProjectile") ~= nil then
< world.spawnProjectile(entity.configParameter("secondProjectile"), entity.toAbsolutePosition({ 0.0, 0.2 }))
---
> if config.getParameter("secondProjectile") ~= nil then
> world.spawnProjectile(config.getParameter("secondProjectile"), object.toAbsolutePosition({ 0.0, 0.2 }))
28c28
< entity.smash()
---
> object.smash()
31,32c31,32
< local radius = entity.configParameter("detectRadius")
< local entityIds = world.entityQuery(entity.position(), radius, { includedTypes = {"creature"} })
---
> local radius = config.getParameter("detectRadius")
> local entityIds = world.entityQuery(object.position(), radius, { includedTypes = {"creature"} })
34c34
< if entity.isTouching(entityIds[1]) then
---
> if object.isTouching(entityIds[1]) then
objects\wired\light\light.lua
2c2
< if storage.state == nil then storage.state = entity.configParameter("defaultLightState", true) end
---
> if storage.state == nil then storage.state = config.getParameter("defaultLightState", true) end
4,5c4,5
< self.interactive = entity.configParameter("interactive", true)
< entity.setInteractive(self.interactive)
---
> self.interactive = config.getParameter("interactive", true)
> object.setInteractive(self.interactive)
7c7
< if entity.configParameter("inboundNodes") then
---
> if config.getParameter("inboundNodes") then
23c23
< if not entity.configParameter("inboundNodes") or not entity.isInboundNodeConnected(0) then
---
> if not config.getParameter("inboundNodes") or not object.isInboundNodeConnected(0) then
30,32c30,32
< if entity.isInboundNodeConnected(0) then
< entity.setInteractive(false)
< storage.state = entity.getInboundNodeLevel(0)
---
> if object.isInboundNodeConnected(0) then
> object.setInteractive(false)
> storage.state = object.getInboundNodeLevel(0)
35c35
< entity.setInteractive(true)
---
> object.setInteractive(true)
41,44c41,44
< entity.setAnimationState("light", "on")
< entity.setSoundEffectEnabled(true)
< if entity.hasSound("on") then
< entity.playSound("on");
---
> animator.setAnimationState("light", "on")
> object.setSoundEffectEnabled(true)
> if animator.hasSound("on") then
> animator.playSound("on");
47c47
< entity.setLightColor(entity.configParameter("lightColor", {255, 255, 255}))
---
> object.setLightColor(config.getParameter("lightColor", {255, 255, 255}))
49,52c49,52
< entity.setAnimationState("light", "off")
< entity.setSoundEffectEnabled(false)
< if entity.hasSound("off") then
< entity.playSound("off");
---
> animator.setAnimationState("light", "off")
> object.setSoundEffectEnabled(false)
> if animator.hasSound("off") then
> animator.playSound("off");
54c54
< entity.setLightColor({0, 0, 0, 0})
---
> object.setLightColor({0, 0, 0, 0})
objects\wired\lightsensor\lightsensor.lua
2,3c2,3
< self.detectThresholdHigh = entity.configParameter("detectThresholdHigh")
< self.detectThresholdLow = entity.configParameter("detectThresholdLow")
---
> self.detectThresholdHigh = config.getParameter("detectThresholdHigh")
> self.detectThresholdLow = config.getParameter("detectThresholdLow")
7c7
< local sample = world.lightLevel(entity.position())
---
> local sample = world.lightLevel(object.position())
15,16c15,16
< entity.setOutboundNodeLevel(0, true)
< entity.setAnimationState("sensorState", "med")
---
> object.setOutboundNodeLevel(0, true)
> animator.setAnimationState("sensorState", "med")
18,19c18,19
< entity.setOutboundNodeLevel(0, false)
< entity.setAnimationState("sensorState", "min")
---
> object.setOutboundNodeLevel(0, false)
> animator.setAnimationState("sensorState", "min")
23,24c23,24
< entity.setOutboundNodeLevel(1, true)
< entity.setAnimationState("sensorState", "max")
---
> object.setOutboundNodeLevel(1, true)
> animator.setAnimationState("sensorState", "max")
26c26
< entity.setOutboundNodeLevel(1, false)
---
> object.setOutboundNodeLevel(1, false)
objects\wired\lightsensor\unwiredlightsensor.lua
2,3c2,3
< self.detectThresholdHigh = entity.configParameter("detectThresholdHigh")
< self.detectThresholdLow = entity.configParameter("detectThresholdLow")
---
> self.detectThresholdHigh = config.getParameter("detectThresholdHigh")
> self.detectThresholdLow = config.getParameter("detectThresholdLow")
7c7
< local sample = world.lightLevel(entity.position())
---
> local sample = world.lightLevel(object.position())
15c15
< entity.setAnimationState("sensorState", "med")
---
> animator.setAnimationState("sensorState", "med")
17c17
< entity.setAnimationState("sensorState", "min")
---
> animator.setAnimationState("sensorState", "min")
21c21
< entity.setAnimationState("sensorState", "max")
---
> animator.setAnimationState("sensorState", "max")
23c23
< entity.setAnimationState("sensorState", "min")
---
> animator.setAnimationState("sensorState", "min")
objects\wired\liquidsensor\liquidsensor.lua
2c2
< return world.liquidAt(entity.position())
---
> return world.liquidAt(object.position())
9,10c9,10
< entity.setOutboundNodeLevel(0, false)
< entity.setAnimationState("sensorState", "off")
---
> object.setOutboundNodeLevel(0, false)
> animator.setAnimationState("sensorState", "off")
12,13c12,13
< entity.setOutboundNodeLevel(0, true)
< entity.setAnimationState("sensorState", "water")
---
> object.setOutboundNodeLevel(0, true)
> animator.setAnimationState("sensorState", "water")
15,16c15,16
< entity.setOutboundNodeLevel(0, true)
< entity.setAnimationState("sensorState", "poison")
---
> object.setOutboundNodeLevel(0, true)
> animator.setAnimationState("sensorState", "poison")
18,19c18,19
< entity.setOutboundNodeLevel(0, true)
< entity.setAnimationState("sensorState", "lava")
---
> object.setOutboundNodeLevel(0, true)
> animator.setAnimationState("sensorState", "lava")
21,22c21,22
< entity.setOutboundNodeLevel(0, true)
< entity.setAnimationState("sensorState", "other")
---
> object.setOutboundNodeLevel(0, true)
> animator.setAnimationState("sensorState", "other")
objects\wired\logic\countdowntimer.lua
3c3
< storage.timerDuration = storage.timerDuration or entity.configParameter("duration", 5)
---
> storage.timerDuration = storage.timerDuration or config.getParameter("duration", 5)
7c7
< entity.setInteractive(true)
---
> object.setInteractive(true)
11c11
< if entity.getInboundNodeLevel(0) then
---
> if object.getInboundNodeLevel(0) then
17c17
< entity.setOutboundNodeLevel(0, storage.timer > 0)
---
> object.setOutboundNodeLevel(0, storage.timer > 0)
24c24
< entity.setAnimationState("timerState", "on"..storage.timerDuration)
---
> animator.setAnimationState("timerState", "on"..storage.timerDuration)
26c26
< entity.setAnimationState("timerState", "count"..math.ceil(storage.timer))
---
> animator.setAnimationState("timerState", "count"..math.ceil(storage.timer))
28c28
< entity.setAnimationState("timerState", "off"..storage.timerDuration)
---
> animator.setAnimationState("timerState", "off"..storage.timerDuration)
objects\wired\logic\delay.lua
2c2
< self.queueSize = math.floor(entity.configParameter("delay", 1.0) / script.updateDt() + 0.5)
---
> self.queueSize = math.floor(config.getParameter("delay", 1.0) / script.updateDt() + 0.5)
18c18
< self.queue[self.index] = entity.getInboundNodeLevel(0)
---
> self.queue[self.index] = object.getInboundNodeLevel(0)
25c25
< entity.setOutboundNodeLevel(0, state)
---
> object.setOutboundNodeLevel(0, state)
27c27
< entity.setAnimationState("switchState", "on")
---
> animator.setAnimationState("switchState", "on")
29c29
< entity.setAnimationState("switchState", "off")
---
> animator.setAnimationState("switchState", "off")
objects\wired\logic\dlatch.lua
2c2
< entity.setInteractive(false)
---
> object.setInteractive(false)
13c13
< entity.setAllOutboundNodes(state)
---
> object.setAllOutboundNodes(state)
15c15
< entity.setAnimationState("switchState", "on")
---
> animator.setAnimationState("switchState", "on")
17c17
< entity.setAnimationState("switchState", "off")
---
> animator.setAnimationState("switchState", "off")
24,25c24,25
< if entity.getInboundNodeLevel(1) then
< output(entity.getInboundNodeLevel(0))
---
> if object.getInboundNodeLevel(1) then
> output(object.getInboundNodeLevel(0))
objects\wired\logic\logic.lua
2c2
< entity.setInteractive(false)
---
> object.setInteractive(false)
6c6
< entity.setAllOutboundNodes(storage.state)
---
> object.setAllOutboundNodes(storage.state)
8c8
< entity.setAnimationState("switchState", "on")
---
> animator.setAnimationState("switchState", "on")
10c10
< entity.setAnimationState("switchState", "off")
---
> animator.setAnimationState("switchState", "off")
13,14c13,14
< self.gates = entity.configParameter("gates")
< self.truthtable = entity.configParameter("truthtable")
---
> self.gates = config.getParameter("gates")
> self.truthtable = config.getParameter("truthtable")
20c20
< entity.setAllOutboundNodes(state)
---
> object.setAllOutboundNodes(state)
22c22
< entity.setAnimationState("switchState", "on")
---
> animator.setAnimationState("switchState", "on")
24c24
< entity.setAnimationState("switchState", "off")
---
> animator.setAnimationState("switchState", "off")
39c39
< output(self.truthtable[toIndex(entity.getInboundNodeLevel(0))])
---
> output(self.truthtable[toIndex(object.getInboundNodeLevel(0))])
41c41
< output(self.truthtable[toIndex(entity.getInboundNodeLevel(0))][toIndex(entity.getInboundNodeLevel(1))])
---
> output(self.truthtable[toIndex(object.getInboundNodeLevel(0))][toIndex(object.getInboundNodeLevel(1))])
43c43
< output(self.truthtable[toIndex(entity.getInboundNodeLevel(0))][toIndex(entity.getInboundNodeLevel(1))][toIndex(entity.getInboundNodeLevel(2))])
---
> output(self.truthtable[toIndex(object.getInboundNodeLevel(0))][toIndex(object.getInboundNodeLevel(1))][toIndex(object.getInboundNodeLevel(2))])
objects\wired\logic\timer.lua
10c10
< self.interval = entity.configParameter("interval")
---
> self.interval = config.getParameter("interval")
16c16
< entity.setAllOutboundNodes(state)
---
> object.setAllOutboundNodes(state)
18c18
< entity.setAnimationState("switchState", "on")
---
> animator.setAnimationState("switchState", "on")
20c20
< entity.setAnimationState("switchState", "off")
---
> animator.setAnimationState("switchState", "off")
27c27
< if (not entity.isInboundNodeConnected(0)) or entity.getInboundNodeLevel(0) then
---
> if (not object.isInboundNodeConnected(0)) or object.getInboundNodeLevel(0) then
objects\wired\momentaryswitch\momentaryswitch.lua
2c2
< entity.setInteractive(true)
---
> object.setInteractive(true)
11c11
< self.interval = entity.configParameter("interval")
---
> self.interval = config.getParameter("interval")
19c19
< entity.playSound("on");
---
> animator.playSound("on");
30c30
< entity.setAllOutboundNodes(state)
---
> object.setAllOutboundNodes(state)
32,33c32,33
< entity.setAnimationState("switchState", "on")
< entity.playSound("on");
---
> animator.setAnimationState("switchState", "on")
> animator.playSound("on");
35,36c35,36
< entity.setAnimationState("switchState", "off")
< entity.playSound("off");
---
> animator.setAnimationState("switchState", "off")
> animator.playSound("off");
objects\wired\movingplatform\movingplatform.lua
7,9c7,9
< self.platformStart = entity.configParameter("platformStart")
< self.platformEnd = entity.configParameter("platformEnd")
< self.platformMoveTime = entity.configParameter("platformMoveTime")
---
> self.platformStart = config.getParameter("platformStart")
> self.platformEnd = config.getParameter("platformEnd")
> self.platformMoveTime = config.getParameter("platformMoveTime")
13c13
< if not entity.isInboundNodeConnected(0) then
---
> if not object.isInboundNodeConnected(0) then
15c15
< elseif entity.getInboundNodeLevel(0) then
---
> elseif object.getInboundNodeLevel(0) then
56c56
< entity.setAnimationState("moving", "off")
---
> animator.setAnimationState("moving", "off")
58c58
< entity.setAnimationState("moving", "on")
---
> animator.setAnimationState("moving", "on")
63,64c63,64
< entity.resetTransformationGroup("platform")
< entity.translateTransformationGroup("platform", pos)
---
> animator.resetTransformationGroup("platform")
> animator.translateTransformationGroup("platform", pos)
67c67
< entity.playSound("changeDir")
---
> animator.playSound("changeDir")
objects\wired\projectiletrap\projectiletrap.lua
7c7
< entity.setSoundEffectEnabled(storage.active)
---
> object.setSoundEffectEnabled(storage.active)
9,14c9,14
< self.fireTime = entity.configParameter("fireTime", 1)
< self.fireTimeVariance = entity.configParameter("fireTimeVariance", 0)
< self.projectile = entity.configParameter("projectile")
< self.projectileConfig = entity.configParameter("projectileConfig", {})
< self.projectilePosition = entity.configParameter("projectilePosition", {0, 0})
< self.projectileDirection = entity.configParameter("projectileDirection", {1, 0})
---
> self.fireTime = config.getParameter("fireTime", 1)
> self.fireTimeVariance = config.getParameter("fireTimeVariance", 0)
> self.projectile = config.getParameter("projectile")
> self.projectileConfig = config.getParameter("projectileConfig", {})
> self.projectilePosition = config.getParameter("projectilePosition", {0, 0})
> self.projectileDirection = config.getParameter("projectileDirection", {1, 0})
16c16
< self.projectilePosition = entity.toAbsolutePosition(self.projectilePosition)
---
> self.projectilePosition = object.toAbsolutePosition(self.projectilePosition)
38c38
< entity.playSound("shoot")
---
> animator.playSound("shoot")
43c43
< local active = (not entity.isInboundNodeConnected(0)) or entity.getInboundNodeLevel(0)
---
> local active = (not object.isInboundNodeConnected(0)) or object.getInboundNodeLevel(0)
48,51c48,51
< entity.setAnimationState("trapState", "on")
< entity.setLightColor(entity.configParameter("activeLightColor", {0, 0, 0, 0}))
< entity.setSoundEffectEnabled(true)
< entity.playSound("on");
---
> animator.setAnimationState("trapState", "on")
> object.setLightColor(config.getParameter("activeLightColor", {0, 0, 0, 0}))
> object.setSoundEffectEnabled(true)
> animator.playSound("on");
53,56c53,56
< entity.setAnimationState("trapState", "off")
< entity.setLightColor(entity.configParameter("inactiveLightColor", {0, 0, 0, 0}))
< entity.setSoundEffectEnabled(false)
< entity.playSound("off");
---
> animator.setAnimationState("trapState", "off")
> object.setLightColor(config.getParameter("inactiveLightColor", {0, 0, 0, 0}))
> object.setSoundEffectEnabled(false)
> animator.playSound("off");
objects\wired\proximitysensor\proximitysensor.lua
2,5c2,5
< self.detectEntityTypes = entity.configParameter("detectEntityTypes")
< self.detectBoundMode = entity.configParameter("detectBoundMode", "CollisionArea")
< local detectArea = entity.configParameter("detectArea")
< local pos = entity.position()
---
> self.detectEntityTypes = config.getParameter("detectEntityTypes")
> self.detectBoundMode = config.getParameter("detectBoundMode", "CollisionArea")
> local detectArea = config.getParameter("detectArea")
> local pos = object.position()
20,22c20,22
< entity.setInteractive(entity.configParameter("interactive", true))
< entity.setAllOutboundNodes(false)
< entity.setAnimationState("switchState", "off")
---
> object.setInteractive(config.getParameter("interactive", true))
> object.setAllOutboundNodes(false)
> animator.setAnimationState("switchState", "off")
27,29c27,29
< entity.setAllOutboundNodes(true)
< entity.setAnimationState("switchState", "on")
< self.triggerTimer = entity.configParameter("detectDuration")
---
> object.setAllOutboundNodes(true)
> animator.setAnimationState("switchState", "on")
> self.triggerTimer = config.getParameter("detectDuration")
48,49c48,49
< entity.setAllOutboundNodes(false)
< entity.setAnimationState("switchState", "off")
---
> object.setAllOutboundNodes(false)
> animator.setAnimationState("switchState", "off")
objects\wired\proximitysensor\proximitysensor.object
9,10c9,10
< "description" : "Watch your step!",
< "shortdescription" : "Proximity Sensor",
---
> "description" : "This pressure plate activates when stepped on.",
> "shortdescription" : "Pressure Plate",
objects\wired\shieldgenerator\shieldgenerator.lua
4c4
< self.dungeonId = world.dungeonId(entity.position())
---
> self.dungeonId = world.dungeonId(object.position())
6c6
< entity.setInteractive(entity.configParameter("interactive", true) and not (entity.inboundNodeCount() > 0 and entity.isInboundNodeConnected(0)))
---
> object.setInteractive(config.getParameter("interactive", true) and not (object.inboundNodeCount() > 0 and object.isInboundNodeConnected(0)))
9c9
< storage.state = entity.configParameter("defaultState", true);
---
> storage.state = config.getParameter("defaultState", true);
14,15c14,15
< if entity.outboundNodeCount() > 0 then
< entity.setOutboundNodeLevel(0, storage.state)
---
> if object.outboundNodeCount() > 0 then
> object.setOutboundNodeLevel(0, storage.state)
26c26
< entity.setInteractive(entity.configParameter("interactive", true) and not entity.isInboundNodeConnected(0))
---
> object.setInteractive(config.getParameter("interactive", true) and not object.isInboundNodeConnected(0))
30c30
< output(entity.getInboundNodeLevel(0))
---
> output(object.getInboundNodeLevel(0))
38,39c38,39
< if entity.outboundNodeCount() > 0 then
< entity.setOutboundNodeLevel(0, storage.state)
---
> if object.outboundNodeCount() > 0 then
> object.setOutboundNodeLevel(0, storage.state)
48,49c48,49
< if entity.configParameter("explodeOnSmash") and smash then
< world.spawnProjectile(entity.configParameter("explosionProjectile"), vec2.add(entity.position(), entity.configParameter("explosionOffset", {0,0})), entity.id(), {0,0})
---
> if config.getParameter("explodeOnSmash") and smash then
> world.spawnProjectile(config.getParameter("explosionProjectile"), vec2.add(object.position(), config.getParameter("explosionOffset", {0,0})), entity.id(), {0,0})
55,57c55,57
< entity.setAnimationState("switchState", "on")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor(entity.configParameter("lightColor", {0, 0, 0, 0})) end
< entity.playSound("on");
---
> animator.setAnimationState("switchState", "on")
> if not (config.getParameter("alwaysLit")) then object.setLightColor(config.getParameter("lightColor", {0, 0, 0, 0})) end
> animator.playSound("on");
59,61c59,61
< entity.setAnimationState("switchState", "off")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor({0, 0, 0, 0}) end
< entity.playSound("off");
---
> animator.setAnimationState("switchState", "off")
> if not (config.getParameter("alwaysLit")) then object.setLightColor({0, 0, 0, 0}) end
> animator.playSound("off");
objects\wired\standingturret\standingturret.lua
6,8c6,8
< self.baseOffset = entity.configParameter("baseOffset")
< self.basePosition = vec2.add(entity.position(), self.baseOffset)
< self.tipOffset = entity.configParameter("tipOffset") --This is offset from BASE position, not object origin
---
> self.baseOffset = config.getParameter("baseOffset")
> self.basePosition = vec2.add(object.position(), self.baseOffset)
> self.tipOffset = config.getParameter("tipOffset") --This is offset from BASE position, not object origin
10,11c10,11
< self.rotationSpeed = util.toRadians(entity.configParameter("rotationSpeed"))
< self.offAngle = util.toRadians(entity.configParameter("offAngle", -30))
---
> self.rotationSpeed = util.toRadians(config.getParameter("rotationSpeed"))
> self.offAngle = util.toRadians(config.getParameter("offAngle", -30))
14,17c14,17
< self.targetQueryRange = entity.configParameter("targetQueryRange")
< self.targetMinRange = entity.configParameter("targetMinRange")
< self.targetMaxRange = entity.configParameter("targetMaxRange")
< self.targetAngleRange = util.toRadians(entity.configParameter("targetAngleRange"))
---
> self.targetQueryRange = config.getParameter("targetQueryRange")
> self.targetMinRange = config.getParameter("targetMinRange")
> self.targetMaxRange = config.getParameter("targetMaxRange")
> self.targetAngleRange = util.toRadians(config.getParameter("targetAngleRange"))
22,28c22,28
< self.energyRegen = entity.configParameter("energyRegen")
< self.maxEnergy = entity.configParameter("maxEnergy")
< self.energyRegenBlock = entity.configParameter("energyRegenBlock")
<
< self.energyBarOffset = entity.configParameter("energyBarOffset")
< self.verticalScaling = entity.configParameter("verticalScaling")
< entity.translateTransformationGroup("energy", self.energyBarOffset)
---
> self.energyRegen = config.getParameter("energyRegen")
> self.maxEnergy = config.getParameter("maxEnergy")
> self.energyRegenBlock = config.getParameter("energyRegenBlock")
>
> self.energyBarOffset = config.getParameter("energyBarOffset")
> self.verticalScaling = config.getParameter("verticalScaling")
> animator.translateTransformationGroup("energy", self.energyBarOffset)
31c31
< entity.setInteractive(false)
---
> object.setInteractive(false)
64,66c64,66
< entity.resetTransformationGroup("energy")
< entity.scaleTransformationGroup("energy", scale)
< entity.translateTransformationGroup("energy", self.energyBarOffset)
---
> animator.resetTransformationGroup("energy")
> animator.scaleTransformationGroup("energy", scale)
> animator.translateTransformationGroup("energy", self.energyBarOffset)
68c68
< entity.setAnimationState("energy", animationState)
---
> animator.setAnimationState("energy", animationState)
75,76c75,76
< entity.setAnimationState("attack", "dead")
< entity.playSound("powerDown")
---
> animator.setAnimationState("attack", "dead")
> animator.playSound("powerDown")
79c79
< entity.rotateGroup("gun", self.offAngle)
---
> animator.rotateGroup("gun", self.offAngle)
85c85
< entity.playSound("powerUp")
---
> animator.playSound("powerUp")
91c91
< entity.setAnimationState("attack", "idle")
---
> animator.setAnimationState("attack", "idle")
93c93
< entity.playSound("scan")
---
> animator.playSound("scan")
97,98c97,98
< local scanInterval = entity.configParameter("scanInterval")
< local scanAngle = util.toRadians(entity.configParameter("scanAngle"))
---
> local scanInterval = config.getParameter("scanInterval")
> local scanAngle = util.toRadians(config.getParameter("scanAngle"))
111c111
< entity.rotateGroup("gun", scanAngle * math.sin(timer * math.pi*2))
---
> animator.rotateGroup("gun", scanAngle * math.sin(timer * math.pi*2))
123,124c123,124
< entity.setAnimationState("attack", "attack")
< entity.playSound("foundTarget")
---
> animator.setAnimationState("attack", "attack")
> animator.playSound("foundTarget")
126c126
< local maxFireAngle = util.toRadians(entity.configParameter("maxFireAngle"))
---
> local maxFireAngle = util.toRadians(config.getParameter("maxFireAngle"))
137c137
< local targetAngle = math.atan(toTarget[2], entity.direction() * toTarget[1])
---
> local targetAngle = math.atan(toTarget[2], object.direction() * toTarget[1])
142c142
< entity.rotateGroup("gun", targetAngle)
---
> animator.rotateGroup("gun", targetAngle)
144c144
< local rotation = entity.currentRotationAngle("gun")
---
> local rotation = animator.currentRotationAngle("gun")
167,168c167,168
< if entity.isInboundNodeConnected(0) then
< return entity.getInboundNodeLevel(0)
---
> if object.isInboundNodeConnected(0) then
> return object.getInboundNodeLevel(0)
176,178c176,178
< local animationPosition = vec2.div(entity.configParameter("animationPosition"), 8)
< local fireOffset = vec2.add(animationPosition, entity.partPoint("gun", "projectileSource"))
< return vec2.add(entity.position(), fireOffset)
---
> local animationPosition = vec2.div(config.getParameter("animationPosition"), 8)
> local fireOffset = vec2.add(animationPosition, animator.partPoint("gun", "projectileSource"))
> return vec2.add(object.position(), fireOffset)
184c184
< local power = entity.configParameter("power", 2)
---
> local power = config.getParameter("power", 2)
186,188c186,188
< local fireTime = entity.configParameter("fireTime", 0.1)
< local projectileParameters = entity.configParameter("projectileParameters", {})
< local energyUsage = entity.configParameter("energyUsage")
---
> local fireTime = config.getParameter("fireTime", 0.1)
> local projectileParameters = config.getParameter("projectileParameters", {})
> local energyUsage = config.getParameter("energyUsage")
193,194c193,194
< local rotation = entity.currentRotationAngle("gun")
< local aimVector = {entity.direction() * math.cos(rotation), math.sin(rotation)}
---
> local rotation = animator.currentRotationAngle("gun")
> local aimVector = {object.direction() * math.cos(rotation), math.sin(rotation)}
196c196
< entity.playSound("fire")
---
> animator.playSound("fire")
209c209
< local targetAngle = math.atan(toTarget[2], entity.direction() * toTarget[1])
---
> local targetAngle = math.atan(toTarget[2], object.direction() * toTarget[1])
objects\wired\standingturret\standingturret.object
21c21
< [ [ "circuitboard", 1, { } ], [ "laserdiode", 1, { } ] ]
---
> [ [ "siliconboard", 1, { } ], [ "laserdiode", 1, { } ] ]
objects\wired\switch\persistentswitch.lua
2c2
< entity.setInteractive(entity.configParameter("interactive", true))
---
> object.setInteractive(config.getParameter("interactive", true))
4c4
< output(entity.configParameter("defaultSwitchState", false))
---
> output(config.getParameter("defaultSwitchState", false))
27,30c27,30
< entity.setAnimationState("switchState", "on")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor(entity.configParameter("lightColor", {0, 0, 0, 0})) end
< entity.playSound("on");
< entity.setAllOutboundNodes(true)
---
> animator.setAnimationState("switchState", "on")
> if not (config.getParameter("alwaysLit")) then object.setLightColor(config.getParameter("lightColor", {0, 0, 0, 0})) end
> animator.playSound("on");
> object.setAllOutboundNodes(true)
32,35c32,35
< entity.setAnimationState("switchState", "off")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor({0, 0, 0, 0}) end
< entity.playSound("off");
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("switchState", "off")
> if not (config.getParameter("alwaysLit")) then object.setLightColor({0, 0, 0, 0}) end
> animator.playSound("off");
> object.setAllOutboundNodes(false)
objects\wired\switch\switch.lua
2c2
< entity.setInteractive(true)
---
> object.setInteractive(true)
4c4
< output(entity.configParameter("defaultSwitchState", false))
---
> output(config.getParameter("defaultSwitchState", false))
25,29c25,29
< entity.setAnimationState("switchState", "on")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor(entity.configParameter("lightColor", {0, 0, 0, 0})) end
< entity.setSoundEffectEnabled(true)
< entity.playSound("on");
< entity.setAllOutboundNodes(true)
---
> animator.setAnimationState("switchState", "on")
> if not (config.getParameter("alwaysLit")) then object.setLightColor(config.getParameter("lightColor", {0, 0, 0, 0})) end
> object.setSoundEffectEnabled(true)
> animator.playSound("on");
> object.setAllOutboundNodes(true)
31,35c31,35
< entity.setAnimationState("switchState", "off")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor({0, 0, 0, 0}) end
< entity.setSoundEffectEnabled(false)
< entity.playSound("off");
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("switchState", "off")
> if not (config.getParameter("alwaysLit")) then object.setLightColor({0, 0, 0, 0}) end
> object.setSoundEffectEnabled(false)
> animator.playSound("off");
> object.setAllOutboundNodes(false)
objects\wired\switch\switchwithinput.lua
2c2
< entity.setInteractive(entity.configParameter("interactive", true))
---
> object.setInteractive(config.getParameter("interactive", true))
4c4
< output(entity.configParameter("defaultSwitchState", false))
---
> output(config.getParameter("defaultSwitchState", false))
29,32c29,32
< entity.setAnimationState("switchState", "on")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor(entity.configParameter("lightColor", {0, 0, 0, 0})) end
< entity.playSound("on");
< entity.setAllOutboundNodes(true)
---
> animator.setAnimationState("switchState", "on")
> if not (config.getParameter("alwaysLit")) then object.setLightColor(config.getParameter("lightColor", {0, 0, 0, 0})) end
> animator.playSound("on");
> object.setAllOutboundNodes(true)
34,37c34,37
< entity.setAnimationState("switchState", "off")
< if not (entity.configParameter("alwaysLit")) then entity.setLightColor({0, 0, 0, 0}) end
< entity.playSound("off");
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("switchState", "off")
> if not (config.getParameter("alwaysLit")) then object.setLightColor({0, 0, 0, 0}) end
> animator.playSound("off");
> object.setAllOutboundNodes(false)
42c42
< if entity.getInboundNodeLevel(0) and not storage.triggered then
---
> if object.getInboundNodeLevel(0) and not storage.triggered then
45c45
< elseif storage.triggered and not entity.getInboundNodeLevel(0) then
---
> elseif storage.triggered and not object.getInboundNodeLevel(0) then
objects\wired\switch\switchwithinputalwayslit.lua
2c2
< entity.setInteractive(entity.configParameter("interactive", true))
---
> object.setInteractive(config.getParameter("interactive", true))
4c4
< output(entity.configParameter("defaultSwitchState", false))
---
> output(config.getParameter("defaultSwitchState", false))
25,27c25,27
< entity.setAnimationState("switchState", "on")
< entity.playSound("on");
< entity.setAllOutboundNodes(true)
---
> animator.setAnimationState("switchState", "on")
> animator.playSound("on");
> object.setAllOutboundNodes(true)
29,31c29,31
< entity.setAnimationState("switchState", "off")
< entity.playSound("off");
< entity.setAllOutboundNodes(false)
---
> animator.setAnimationState("switchState", "off")
> animator.playSound("off");
> object.setAllOutboundNodes(false)
36c36
< if entity.getInboundNodeLevel(0) and not storage.triggered then
---
> if object.getInboundNodeLevel(0) and not storage.triggered then
39c39
< elseif storage.triggered and not entity.getInboundNodeLevel(0) then
---
> elseif storage.triggered and not object.getInboundNodeLevel(0) then
projectiles\activeitems\boomerang\boomerangprojectile.lua
4,11c4,11
< self.returning = config.configParameter("returning", false)
< self.returnOnHit = config.configParameter("returnOnHit", false)
< self.controlForce = config.configParameter("controlForce")
< self.pickupDistance = config.configParameter("pickupDistance")
< self.snapDistance = config.configParameter("snapDistance")
< self.timeToLive = config.configParameter("timeToLive")
< self.speed = config.configParameter("speed")
< self.ignoreTerrain = config.configParameter("ignoreTerrain")
---
> self.returning = config.getParameter("returning", false)
> self.returnOnHit = config.getParameter("returnOnHit", false)
> self.controlForce = config.getParameter("controlForce")
> self.pickupDistance = config.getParameter("pickupDistance")
> self.snapDistance = config.getParameter("snapDistance")
> self.timeToLive = config.getParameter("timeToLive")
> self.speed = config.getParameter("speed")
> self.ignoreTerrain = config.getParameter("ignoreTerrain")
projectiles\activeitems\boomerang\lunarangprojectile.lua
6,7c6,7
< self.shardCount = config.configParameter("shardCount", 1)
< self.shardType = config.configParameter("shardType")
---
> self.shardCount = config.getParameter("shardCount", 1)
> self.shardType = config.getParameter("shardType")
17,18c17,18
< params.powerMultiplier = config.configParameter("powerMultiplier", 1.0)
< params.power = config.configParameter("power") / self.shardCount
---
> params.powerMultiplier = config.getParameter("powerMultiplier", 1.0)
> params.power = config.getParameter("power") / self.shardCount
projectiles\activeitems\boomerang\wormerangprojectile.lua
7,8c7,8
< self.wobbleRate = config.configParameter("wobbleRate")
< self.wobbleIntensity = config.configParameter("wobbleIntensity")
---
> self.wobbleRate = config.getParameter("wobbleRate")
> self.wobbleIntensity = config.getParameter("wobbleIntensity")
projectiles\activeitems\chakram\chakramprojectile.lua
4,8c4,8
< self.returning = config.configParameter("returning", false)
< self.returnOnHit = config.configParameter("returnOnHit", false)
< self.pickupDistance = config.configParameter("pickupDistance")
< self.timeToLive = config.configParameter("timeToLive")
< self.speed = config.configParameter("speed")
---
> self.returning = config.getParameter("returning", false)
> self.returnOnHit = config.getParameter("returnOnHit", false)
> self.pickupDistance = config.getParameter("pickupDistance")
> self.timeToLive = config.getParameter("timeToLive")
> self.speed = config.getParameter("speed")
11,12c11,12
< self.maxDistance = config.configParameter("maxDistance")
< self.stickTime = config.configParameter("stickTime", 0)
---
> self.maxDistance = config.getParameter("maxDistance")
> self.stickTime = config.getParameter("stickTime", 0)
projectiles\activeitems\chakram\hoverchakramprojectile.lua
4,8c4,8
< self.returning = config.configParameter("returning", false)
< self.returnOnHit = config.configParameter("returnOnHit", false)
< self.pickupDistance = config.configParameter("pickupDistance")
< self.timeToLive = config.configParameter("timeToLive")
< self.speed = config.configParameter("speed")
---
> self.returning = config.getParameter("returning", false)
> self.returnOnHit = config.getParameter("returnOnHit", false)
> self.pickupDistance = config.getParameter("pickupDistance")
> self.timeToLive = config.getParameter("timeToLive")
> self.speed = config.getParameter("speed")
11,12c11,12
< self.hoverMaxDistance = config.configParameter("hoverMaxDistance")
< self.hoverTime = config.configParameter("hoverTime")
---
> self.hoverMaxDistance = config.getParameter("hoverMaxDistance")
> self.hoverTime = config.getParameter("hoverTime")
15c15
< local aimPosition = config.configParameter("ownerAimPosition")
---
> local aimPosition = config.getParameter("ownerAimPosition")
projectiles\activeitems\delaybullet\delaybullet.lua
4c4
< self.delayTimer = config.configParameter("delayTime")
---
> self.delayTimer = config.getParameter("delayTime")
18c18
< mcontroller.setVelocity(vec2.mul(vec2.norm(mcontroller.velocity()), config.configParameter("triggerSpeed")))
---
> mcontroller.setVelocity(vec2.mul(vec2.norm(mcontroller.velocity()), config.getParameter("triggerSpeed")))
projectiles\activeitems\fuelaircloud\fuelaircloud.lua
2,3c2,3
< self.chainProjectile = config.configParameter("chainProjectile")
< self.igniteAction = config.configParameter("igniteAction")
---
> self.chainProjectile = config.getParameter("chainProjectile")
> self.igniteAction = config.getParameter("igniteAction")
19c19
< if projectile.timeToLive() < config.configParameter("cutoffTime") then return end
---
> if projectile.timeToLive() < config.getParameter("cutoffTime") then return end
24c24
< self.chainTimer = config.configParameter("chainTime")
---
> self.chainTimer = config.getParameter("chainTime")
projectiles\activeitems\guidedrocket\guidedrocket.lua
5,6c5,6
< self.trailProjectile = config.configParameter("trailProjectile")
< self.trailDistance = config.configParameter("trailDistance")
---
> self.trailProjectile = config.getParameter("trailProjectile")
> self.trailDistance = config.getParameter("trailDistance")
18,19c18,19
< if math.abs(angleDelta) <= config.configParameter("maxTrackingAngle") then
< local rotateAmount = util.clamp(angleDelta, -config.configParameter("rotationRate") * dt, config.configParameter("rotationRate") * dt)
---
> if math.abs(angleDelta) <= config.getParameter("maxTrackingAngle") then
> local rotateAmount = util.clamp(angleDelta, -config.getParameter("rotationRate") * dt, config.getParameter("rotationRate") * dt)
projectiles\activeitems\translocatordisc\translocatordisc.lua
21c21
< local resolvedPoint = world.resolvePolyCollision(collidePoly, vec2.add(mcontroller.position(), config.configParameter("teleportOffset")), config.configParameter("teleportTolerance"))
---
> local resolvedPoint = world.resolvePolyCollision(collidePoly, vec2.add(mcontroller.position(), config.getParameter("teleportOffset")), config.getParameter("teleportTolerance"))
projectiles\boss\spiderboss\ixolingspawn.lua
13c13
< world.spawnMonster("ixoling", mcontroller.position(), { level = config.configParameter("level", 1.0) } )
---
> world.spawnMonster("ixoling", mcontroller.position(), { level = config.getParameter("level", 1.0) } )
projectiles\explosions\globeexplosions\redglobeexplosion\redglobeexplosion.projectile
13c13
< "damageTeam" : { "type" : "indiscriminate" },
---
> //"damageTeam" : { "type" : "indiscriminate" },
projectiles\explosions\lightblockexplosion\lightblockexplosion.projectile
11c11
< "damageTeam" : { "type" : "indiscriminate" },
---
> //"damageTeam" : { "type" : "indiscriminate" },
projectiles\explosions\vlightblockexplosion\vlightblockexplosion.projectile
11c11
< "damageTeam" : { "type" : "indiscriminate" },
---
> //"damageTeam" : { "type" : "indiscriminate" },
projectiles\guns\arrows\chargedicearrow\chargedicearrow.projectile
9c9
< "damageKindImage" : "/interface/statuses/cold.png",
---
> "damageKindImage" : "/interface/statuses/ice.png",
projectiles\guns\arrows\icebolt\icebolt.projectile
8c8
< "damageKindImage" : "/interface/statuses/cold.png",
---
> "damageKindImage" : "/interface/statuses/ice.png",
projectiles\guns\arrows\ironarrow\ironarrow.projectile
9c9
< "knockback" : 5,
---
> "knockback" : 10,
projectiles\guns\arrows\woodenarrow\woodenarrow.projectile
9c9
< "knockback" : 5,
---
> "knockback" : 10,
projectiles\guns\rockets\homingrocket\homingrocket.lua
4,5c4,5
< self.controlForce = config.configParameter("controlForce")
< self.maxSpeed = config.configParameter("maxSpeed")
---
> self.controlForce = config.getParameter("controlForce")
> self.maxSpeed = config.getParameter("maxSpeed")
projectiles\guns\rockets\minirocket\minirocket.lua
6,7c6,7
< self.maxSpeed = config.configParameter("maxSpeed")
< self.controlForce = config.configParameter("controlForce")
---
> self.maxSpeed = config.getParameter("maxSpeed")
> self.controlForce = config.getParameter("controlForce")
projectiles\guns\unsorted\icethrower\icethrower.projectile
16c16
< "damageKindImage" : "/interface/statuses/cold.png",
---
> "damageKindImage" : "/interface/statuses/ice.png",
projectiles\homingarrow\homingarrow.lua
5c5
< self.controlForce = config.configParameter("baseHomingControlForce") * self.targetSpeed
---
> self.controlForce = config.getParameter("baseHomingControlForce") * self.targetSpeed
projectiles\staves\racialstaves\crystal\cardinalschalcedony\chalcedonyspawner.projectile
27c27
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
34c34
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
42c42
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
50c50
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
58c58
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
66c66
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
74c74
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
82c82
< "type" : "regularexplosionuniversal",
---
> "type" : "regularexplosion",
projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzpulse\quartzpulse.projectile
11c11
< "damageTeam" : { "type" : "indiscriminate" },
---
> //"damageTeam" : { "type" : "indiscriminate" },
projectiles\swoosh\spear\frostspearswoosh\frostspearswoosh.projectile
14c14
< "damageKindImage" : "/interface/statuses/cold.png",
---
> "damageKindImage" : "/interface/statuses/ice.png",
projectiles\throwable\capturepod\capturepod.lua
4c4
< self.matchTypes = config.configParameter("capturableTypes")
---
> self.matchTypes = config.getParameter("capturableTypes")
quests\scripts\main.lua
13,14c13,14
< if quest.configParameter("completionLogValues") then
< table.insert(conditions, buildPlayerLogCondition(quest.configParameter("completionLogValues")))
---
> if config.getParameter("completionLogValues") then
> table.insert(conditions, buildPlayerLogCondition(config.getParameter("completionLogValues")))
17,18c17,18
< if quest.configParameter("shipLevel") then
< table.insert(conditions, buildShipLevelCondition(quest.configParameter("shipLevel")))
---
> if config.getParameter("shipLevel") then
> table.insert(conditions, buildShipLevelCondition(config.getParameter("shipLevel")))
21c21
< local gatherRequirements = quest.configParameter("gatherRequirements")
---
> local gatherRequirements = config.getParameter("gatherRequirements")
31,32c31,32
< if quest.configParameter("scanObjects") then
< table.insert(conditions, buildScanObjectsCondition(quest.configParameter("scanObjects")))
---
> if config.getParameter("scanObjects") then
> table.insert(conditions, buildScanObjectsCondition(config.getParameter("scanObjects")))
51c51
< local acceptItems = quest.configParameter("acceptItems", {})
---
> local acceptItems = config.getParameter("acceptItems", {})
56c56
< local associatedMission = quest.configParameter("associatedMission")
---
> local associatedMission = config.getParameter("associatedMission")
67c67
< local enableAiCommands = quest.configParameter("enableAiCommands")
---
> local enableAiCommands = config.getParameter("enableAiCommands")
74c74
< local associatedMission = quest.configParameter("associatedMission")
---
> local associatedMission = config.getParameter("associatedMission")
79c79
< local enableTech = quest.configParameter("enableTech")
---
> local enableTech = config.getParameter("enableTech")
86c86
< local equipTech = quest.configParameter("equipTech")
---
> local equipTech = config.getParameter("equipTech")
94c94
< local followUp = quest.configParameter("followUp")
---
> local followUp = config.getParameter("followUp")
119c119
< if quest.configParameter("requireTurnIn", false) then
---
> if config.getParameter("requireTurnIn", false) then
quests\scripts\generated\clothing.lua
6c6
< self.questClient:setEventHandler({"friend", quest.configParameter("clothingCraftedEventName")}, onClothingCrafted)
---
> self.questClient:setEventHandler({"friend", config.getParameter("clothingCraftedEventName")}, onClothingCrafted)
8c8
< self.questClient:setEventHandler({"questGiver", quest.configParameter("clothingAcceptedEventName")}, onClothingAccepted)
---
> self.questClient:setEventHandler({"questGiver", config.getParameter("clothingAcceptedEventName")}, onClothingAccepted)
16c16
< notifyNpc("friend", quest.configParameter("requestClothingCraftNotification"))
---
> notifyNpc("friend", config.getParameter("requestClothingCraftNotification"))
26,27c26,27
< local parcelDescriptionConfig = quest.configParameter("parcelDescription")
< local parcelNameConfig = quest.configParameter("parcelName")
---
> local parcelDescriptionConfig = config.getParameter("parcelDescription")
> local parcelNameConfig = config.getParameter("parcelName")
45c45
< notifyNpc("questGiver", quest.configParameter("wearClothingNotification"))
---
> notifyNpc("questGiver", config.getParameter("wearClothingNotification"))
quests\scripts\generated\collect_fine.lua
9c9
< player.giveItem(generateNoteItem("crime", quest.configParameter("crimeNotice"), "Crime Notice"))
---
> player.giveItem(generateNoteItem("crime", config.getParameter("crimeNotice"), "Crime Notice"))
quests\scripts\generated\collect_gift.lua
5c5
< self.questClient:setEventHandler({"target", quest.configParameter("giftReceivedEventName")}, onGiftReceived)
---
> self.questClient:setEventHandler({"target", config.getParameter("giftReceivedEventName")}, onGiftReceived)
12c12
< notifyNpc(target, quest.configParameter("requestGiftNotification"))
---
> notifyNpc(target, config.getParameter("requestGiftNotification"))
quests\scripts\generated\common.lua
15c15
< storage.indicators = storage.indicators or quest.configParameter("indicators", {})
---
> storage.indicators = storage.indicators or config.getParameter("indicators", {})
68c68
< if quest.configParameter("requireTurnIn") then
---
> if config.getParameter("requireTurnIn") then
quests\scripts\generated\fetch.lua
4c4
< local giveItems = quest.configParameter("giveItems")
---
> local giveItems = config.getParameter("giveItems")
20c20
< local fetchList = quest.configParameter("fetchList")
---
> local fetchList = config.getParameter("fetchList")
29c29
< local paramName = quest.configParameter("fetchList")
---
> local paramName = config.getParameter("fetchList")
quests\scripts\generated\gift.lua
5,6c5,6
< self.questClient:setEventHandler({"target", quest.configParameter("giftAcceptedEventName")}, onGiftAccepted)
< self.questClient:setEventHandler({"target", quest.configParameter("requestAdditionToHouseEventName")}, onRequestAdditionToHouse)
---
> self.questClient:setEventHandler({"target", config.getParameter("giftAcceptedEventName")}, onGiftAccepted)
> self.questClient:setEventHandler({"target", config.getParameter("requestAdditionToHouseEventName")}, onRequestAdditionToHouse)
13c13
< notifyNpc(target, quest.configParameter("provideGiftNotification"))
---
> notifyNpc(target, config.getParameter("provideGiftNotification"))
38c38
< notifyNpc("target", quest.configParameter("objectAddedNotification"))
---
> notifyNpc("target", config.getParameter("objectAddedNotification"))
quests\scripts\generated\new_stock.lua
6c6
< self.questClient:setEventHandler({"target", quest.configParameter("tradeAcceptedEventName")}, onTradeAccepted)
---
> self.questClient:setEventHandler({"target", config.getParameter("tradeAcceptedEventName")}, onTradeAccepted)
8c8
< self.questClient:setEventHandler({"questGiver", quest.configParameter("stockAcceptedEventName")}, onStockAccepted)
---
> self.questClient:setEventHandler({"questGiver", config.getParameter("stockAcceptedEventName")}, onStockAccepted)
16c16
< notifyNpc("target", quest.configParameter("requestTradeNotification"))
---
> notifyNpc("target", config.getParameter("requestTradeNotification"))
26,27c26,27
< local parcelDescriptionConfig = quest.configParameter("parcelDescription")
< local parcelNameConfig = quest.configParameter("parcelName")
---
> local parcelDescriptionConfig = config.getParameter("parcelDescription")
> local parcelNameConfig = config.getParameter("parcelName")
45c45
< notifyNpc("questGiver", quest.configParameter("stockDeliveredNotification"))
---
> notifyNpc("questGiver", config.getParameter("stockDeliveredNotification"))
quests\scripts\generated\recruit_guard.lua
34c34
< local amountNeeded = quest.configParameter("amountOfFurnitureNeeded")
---
> local amountNeeded = config.getParameter("amountOfFurnitureNeeded")
quests\scripts\generated\secret_note.lua
21c21
< player.giveItem(generateNoteItem("response", quest.configParameter("responseNote")))
---
> player.giveItem(generateNoteItem("response", config.getParameter("responseNote")))
26c26
< player.giveItem(generateNoteItem("message", quest.configParameter("secretNote")))
---
> player.giveItem(generateNoteItem("message", config.getParameter("secretNote")))
quests\scripts\generated\themed_build.lua
9c9
< local amountNeeded = quest.configParameter("amountOfFurnitureNeeded")
---
> local amountNeeded = config.getParameter("amountOfFurnitureNeeded")
recipes\anvil1\armor\tier2\apextier2chest.recipe
4c4,5
< { "item" : "apextier1chest", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 },
> { "item" : "leather", "count" : 1 }
recipes\anvil1\armor\tier2\apextier2head.recipe
4c4
< { "item" : "apextier1head", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 }
recipes\anvil1\armor\tier2\apextier2pants.recipe
4c4
< { "item" : "apextier1pants", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 1 }
recipes\anvil1\armor\tier2\aviantier2chest.recipe
4c4,5
< { "item" : "aviantier1chest", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 },
> { "item" : "leather", "count" : 1 }
recipes\anvil1\armor\tier2\aviantier2head.recipe
4c4
< { "item" : "aviantier1head", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 }
recipes\anvil1\armor\tier2\aviantier2pants.recipe
4c4
< { "item" : "aviantier1pants", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 1 }
recipes\anvil1\armor\tier2\florantier2chest.recipe
4c4,5
< { "item" : "florantier1chest", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 },
> { "item" : "leather", "count" : 1 }
recipes\anvil1\armor\tier2\florantier2head.recipe
4c4
< { "item" : "florantier1head", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 }
recipes\anvil1\armor\tier2\florantier2pants.recipe
4c4
< { "item" : "florantier1pants", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 1 }
recipes\anvil1\armor\tier2\glitchtier2chest.recipe
4c4,5
< { "item" : "glitchtier1chest", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 },
> { "item" : "leather", "count" : 1 }
recipes\anvil1\armor\tier2\glitchtier2head.recipe
4c4
< { "item" : "glitchtier1head", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 }
recipes\anvil1\armor\tier2\glitchtier2pants.recipe
4c4
< { "item" : "glitchtier1pants", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 1 }
recipes\anvil1\armor\tier2\humantier2chest.recipe
4c4,5
< { "item" : "humantier1chest", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 },
> { "item" : "leather", "count" : 1 }
recipes\anvil1\armor\tier2\humantier2head.recipe
4c4
< { "item" : "humantier1head", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 }
recipes\anvil1\armor\tier2\humantier2pants.recipe
4c4
< { "item" : "humantier1pants", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 1 }
recipes\anvil1\armor\tier2\hylotltier2chest.recipe
4c4,5
< { "item" : "hylotltier1chest", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 },
> { "item" : "leather", "count" : 1 }
recipes\anvil1\armor\tier2\hylotltier2head.recipe
4c4
< { "item" : "hylotltier1head", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 }
recipes\anvil1\armor\tier2\hylotltier2pants.recipe
4c4
< { "item" : "hylotltier1pants", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 1 }
recipes\anvil1\armor\tier2\novatier2chest.recipe
4c4,5
< { "item" : "novatier1chest", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 },
> { "item" : "leather", "count" : 1 }
recipes\anvil1\armor\tier2\novatier2head.recipe
4c4
< { "item" : "novatier1head", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 5 }
recipes\anvil1\armor\tier2\novatier2pants.recipe
4c4
< { "item" : "novatier1pants", "count" : 1 }
---
> { "item" : "cottonwool", "count" : 1 }
recipes\anvil2\armor\tier3\apextier3chest.recipe
3c3,5
< { "item" : "titaniumbar", "count" : 10 }
---
> { "item" : "titaniumbar", "count" : 10 },
> { "item" : "leather", "count" : 1 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier3\apextier3head.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 6 }
---
> { "item" : "titaniumbar", "count" : 6 },
> { "item" : "canvas", "count" : 3 }
recipes\anvil2\armor\tier3\apextier3pants.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 4 }
---
> { "item" : "titaniumbar", "count" : 4 },
> { "item" : "canvas", "count" : 1 }
recipes\anvil2\armor\tier3\aviantier3chest.recipe
3c3,5
< { "item" : "titaniumbar", "count" : 10 }
---
> { "item" : "titaniumbar", "count" : 10 },
> { "item" : "leather", "count" : 1 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier3\aviantier3head.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 6 }
---
> { "item" : "titaniumbar", "count" : 6 },
> { "item" : "canvas", "count" : 3 }
recipes\anvil2\armor\tier3\aviantier3pants.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 4 }
---
> { "item" : "titaniumbar", "count" : 4 },
> { "item" : "canvas", "count" : 1 }
recipes\anvil2\armor\tier3\florantier3chest.recipe
3c3,5
< { "item" : "titaniumbar", "count" : 10 }
---
> { "item" : "titaniumbar", "count" : 10 },
> { "item" : "leather", "count" : 1 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier3\florantier3head.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 6 }
---
> { "item" : "titaniumbar", "count" : 6 },
> { "item" : "canvas", "count" : 3 }
recipes\anvil2\armor\tier3\florantier3pants.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 4 }
---
> { "item" : "titaniumbar", "count" : 4 },
> { "item" : "canvas", "count" : 1 }
recipes\anvil2\armor\tier3\glitchtier3chest.recipe
3c3,5
< { "item" : "titaniumbar", "count" : 10 }
---
> { "item" : "titaniumbar", "count" : 10 },
> { "item" : "leather", "count" : 1 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier3\glitchtier3head.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 6 }
---
> { "item" : "titaniumbar", "count" : 6 },
> { "item" : "canvas", "count" : 3 }
recipes\anvil2\armor\tier3\glitchtier3pants.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 4 }
---
> { "item" : "titaniumbar", "count" : 4 },
> { "item" : "canvas", "count" : 1 }
recipes\anvil2\armor\tier3\humantier3chest.recipe
3c3,5
< { "item" : "titaniumbar", "count" : 10 }
---
> { "item" : "titaniumbar", "count" : 10 },
> { "item" : "leather", "count" : 1 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier3\humantier3head.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 6 }
---
> { "item" : "titaniumbar", "count" : 6 },
> { "item" : "canvas", "count" : 3 }
recipes\anvil2\armor\tier3\humantier3pants.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 4 }
---
> { "item" : "titaniumbar", "count" : 4 },
> { "item" : "canvas", "count" : 1 }
recipes\anvil2\armor\tier3\hylotltier3chest.recipe
3c3,5
< { "item" : "titaniumbar", "count" : 10 }
---
> { "item" : "titaniumbar", "count" : 10 },
> { "item" : "leather", "count" : 1 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier3\hylotltier3head.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 6 }
---
> { "item" : "titaniumbar", "count" : 6 },
> { "item" : "canvas", "count" : 3 }
recipes\anvil2\armor\tier3\hylotltier3pants.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 4 }
---
> { "item" : "titaniumbar", "count" : 4 },
> { "item" : "canvas", "count" : 1 }
recipes\anvil2\armor\tier3\novatier3chest.recipe
3c3,5
< { "item" : "titaniumbar", "count" : 10 }
---
> { "item" : "titaniumbar", "count" : 10 },
> { "item" : "leather", "count" : 1 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier3\novatier3head.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 6 }
---
> { "item" : "titaniumbar", "count" : 6 },
> { "item" : "canvas", "count" : 3 }
recipes\anvil2\armor\tier3\novatier3pants.recipe
3c3,4
< { "item" : "titaniumbar", "count" : 4 }
---
> { "item" : "titaniumbar", "count" : 4 },
> { "item" : "canvas", "count" : 1 }
recipes\anvil2\armor\tier4\apextier4chest.recipe
4c4,5
< { "item" : "apextier3chest", "count" : 1 }
---
> { "item" : "leather", "count" : 3 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier4\apextier4head.recipe
4c4
< { "item" : "apextier3head", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\apextier4pants.recipe
4c4
< { "item" : "apextier3pants", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\aviantier4chest.recipe
4c4,5
< { "item" : "aviantier3chest", "count" : 1 }
---
> { "item" : "leather", "count" : 3 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier4\aviantier4head.recipe
4c4
< { "item" : "aviantier3head", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\aviantier4pants.recipe
4c4
< { "item" : "aviantier3pants", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\florantier4chest.recipe
4c4,5
< { "item" : "florantier3chest", "count" : 1 }
---
> { "item" : "leather", "count" : 3 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier4\florantier4head.recipe
4c4
< { "item" : "florantier3head", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\florantier4pants.recipe
4c4
< { "item" : "florantier3pants", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\glitchtier4chest.recipe
4c4,5
< { "item" : "glitchtier3chest", "count" : 1 }
---
> { "item" : "leather", "count" : 3 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier4\glitchtier4head.recipe
4c4
< { "item" : "glitchtier3head", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\glitchtier4pants.recipe
4c4
< { "item" : "glitchtier3pants", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\humantier4chest.recipe
4c4,5
< { "item" : "humantier3chest", "count" : 1 }
---
> { "item" : "leather", "count" : 3 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier4\humantier4head.recipe
4c4
< { "item" : "humantier3head", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\humantier4pants.recipe
4c4
< { "item" : "humantier3pants", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\hylotltier4chest.recipe
4c4,5
< { "item" : "hylotltier3chest", "count" : 1 }
---
> { "item" : "leather", "count" : 3 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier4\hylotltier4head.recipe
4c4
< { "item" : "hylotltier3head", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\hylotltier4pants.recipe
4c4
< { "item" : "hylotltier3pants", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\novatier4chest.recipe
4c4,5
< { "item" : "novatier3chest", "count" : 1 }
---
> { "item" : "leather", "count" : 3 },
> { "item" : "silk", "count" : 1 }
recipes\anvil2\armor\tier4\novatier4head.recipe
4c4
< { "item" : "novatier3head", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\anvil2\armor\tier4\novatier4pants.recipe
4c4
< { "item" : "novatier3pants", "count" : 1 }
---
> { "item" : "leather", "count" : 1 }
recipes\farmtable1\hunting\bow.recipe
7,10c7
< "output" : {
< "item" : "bow",
< "count" : 1
< },
---
> "output" : { "item" : "bow", "count" : 1 },
recipes\furnace2\bars\durasteelbar.recipe
3,4c3
< { "item" : "titaniumbar", "count" : 1 },
< { "item" : "silverbar", "count" : 1 }
---
> { "item" : "durasteelore", "count" : 2 }
6,9c5
< "output" : {
< "item" : "durasteelbar",
< "count" : 1
< },
---
> "output" : { "item" : "durasteelbar", "count" : 1 },
recipes\furniture2\beds\tier4bed.recipe
4c4,5
< { "item" : "fabric", "count" : 10 }
---
> { "item" : "fabric", "count" : 10 },
> { "item" : "silk", "count" : 5 }
recipes\furniture2\decorative\tier4chair.recipe
3c3,5
< { "item" : "durasteelbar", "count" : 2 }
---
> { "item" : "durasteelbar", "count" : 2 },
> { "item" : "leather", "count" : 5 },
> { "item" : "blackdye", "count" : 1 }
recipes\furniture2\decorative\tier4table.recipe
3c3,4
< { "item" : "durasteelbar", "count" : 2 }
---
> { "item" : "durasteelbar", "count" : 2 },
> { "item" : "canvas", "count" : 2 }
recipes\furniture2\doors\tier4door.recipe
3c3,4
< { "item" : "durasteelbar", "count" : 2 }
---
> { "item" : "durasteelbar", "count" : 2 },
> { "item" : "ironbar", "count" : 2 }
recipes\furniture2\lights\tier4light.recipe
3c3,5
< { "item" : "durasteelbar", "count" : 1 }
---
> { "item" : "durasteelbar", "count" : 1 },
> { "item" : "glass", "count" : 2 },
> { "item" : "smallbattery", "count" : 1 }
recipes\inventorstable3\wiringstation.recipe
5,6c5,7
< { "item" : "stickofram", "count" : 5 },
< { "item" : "wire", "count" : 10 }
---
> { "item" : "stickofram", "count" : 2 },
> { "item" : "wire", "count" : 10 },
> { "item" : "battery", "count" : 1 }
recipes\refinery\silverbar.recipe
5c5
< "output" : { "item" : "money", "count" : 20 },
---
> "output" : { "item" : "money", "count" : 18 },
recipes\refinery\silverore.recipe
5c5
< "output" : { "item" : "money", "count" : 8 },
---
> "output" : { "item" : "money", "count" : 9 },
recipes\refinery\titaniumore.recipe
5c5
< "output" : { "item" : "money", "count" : 24 },
---
> "output" : { "item" : "money", "count" : 25 },
scripts\behavior.lua
59c59
< return self.behaviorConfig or entity.configParameter("behaviorConfig", {})
---
> return self.behaviorConfig or config.getParameter("behaviorConfig", {})
397c397,398
< local value = entity.configParameter(args.path, default)
---
>
> local value = config.getParameter(args.path, args.default)
scripts\chattyobject.lua
2c2
< entity.setInteractive(true)
---
> object.setInteractive(true)
6c6
< local chatOptions = entity.configParameter("chatOptions", {})
---
> local chatOptions = config.getParameter("chatOptions", {})
8c8
< entity.say(chatOptions[math.random(1, #chatOptions)])
---
> object.say(chatOptions[math.random(1, #chatOptions)])
scripts\npctoyobject.lua
7c7
< return entity.configParameter("npcToy.influence")
---
> return config.getParameter("npcToy.influence")
11c11
< return entity.configParameter("npcToy.defaultReactions")
---
> return config.getParameter("npcToy.defaultReactions")
15,16c15,16
< if entity.direction() < 0 then
< return entity.configParameter("npcToy.preciseStandPositionLeft")
---
> if object.direction() < 0 then
> return config.getParameter("npcToy.preciseStandPositionLeft")
18c18
< return entity.configParameter("npcToy.preciseStandPositionRight")
---
> return config.getParameter("npcToy.preciseStandPositionRight")
23c23
< local standXRange = entity.configParameter("npcToy.randomStandXRange")
---
> local standXRange = config.getParameter("npcToy.randomStandXRange")
32c32
< return entity.configParameter("npcToy.maxNpcs")
---
> return config.getParameter("npcToy.maxNpcs")
49c49
< return entity.configParameter("npcToy.ownerOnly", false)
---
> return config.getParameter("npcToy.ownerOnly", false)
scripts\pathing.lua
168c168
< if entity.configParameter("pathing.forceWalkingBackwards", false) then
---
> if config.getParameter("pathing.forceWalkingBackwards", false) then
252c252
< if entity.configParameter("pathing.canOpenDoors", false) and not self:openDoors() then
---
> if config.getParameter("pathing.canOpenDoors", false) and not self:openDoors() then
279c279
< if #closedDoorIds == 0 or not entity.configParameter("pathing.canOpenDoors", true) then
---
> if #closedDoorIds == 0 or not config.getParameter("pathing.canOpenDoors", true) then
scripts\sensors.lua
43,44c43,44
< for i, sensor in ipairs(entity.configParameter(sensorGroup)) do
< local sensorPosition = entity.toAbsolutePosition(sensor)
---
> for i, sensor in ipairs(config.getParameter(sensorGroup)) do
> local sensorPosition = monster.toAbsolutePosition(sensor)
115d114
<
scripts\spawnpoint.lua
10c10
< local underground = world.underground(world.entityPosition(entity.id()))
---
> local underground = world.underground(entity.position())
scripts\statemachine.lua
300c300
< -- Example: stateMachine.scanScripts(entity.configParameter("scripts"), "(%a+)State%.lua")
---
> -- Example: stateMachine.scanScripts(config.getParameter("scripts"), "(%a+)State%.lua")
scripts\statusprojectileobject.lua
2c2
< self.activationTime = entity.configParameter("activationTime") or 600
---
> self.activationTime = config.getParameter("activationTime") or 600
6c6
< entity.setAnimationState("podState", storage.active and "active" or "expire")
---
> animator.setAnimationState("podState", storage.active and "active" or "expire")
16c16
< if isTimeToActivate() and not world.isVisibleToPlayer(entity.boundBox()) then
---
> if isTimeToActivate() and not world.isVisibleToPlayer(object.boundBox()) then
27c27
< entity.playSound("use")
---
> animator.playSound("use")
33c33
< for i, option in ipairs(entity.configParameter("projectileOptions"), {}) do
---
> for i, option in ipairs(config.getParameter("projectileOptions"), {}) do
41c41
< world.spawnProjectile(projectile.projectileType, entity.position(), entity.id(), args.source, false, projectile.projectileParams)
---
> world.spawnProjectile(projectile.projectileType, object.position(), entity.id(), args.source, false, projectile.projectileParams)
49c49
< entity.setAnimationState("podState", "active")
---
> animator.setAnimationState("podState", "active")
52c52
< entity.setInteractive(true)
---
> object.setInteractive(true)
56c56
< entity.setAnimationState("podState", "expire")
---
> animator.setAnimationState("podState", "expire")
59c59
< entity.setInteractive(false)
---
> object.setInteractive(false)
scripts\tenant.lua
12,13c12,13
< entity.setDeathParticleBurst(nil)
< entity.setDropPools({})
---
> npc.setDeathParticleBurst(nil)
> npc.setDropPools({})
38c38
< entity.setItemSlot(slot, item)
---
> npc.setItemSlot(slot, item)
53c53
< local uniqueId = world.entityUniqueId(entity.id())
---
> local uniqueId = entity.uniqueId()
scripts\util.lua
10c10
< for i, sensor in ipairs(entity.configParameter(sensorGroup)) do
---
> for i, sensor in ipairs(config.getParameter(sensorGroup)) do
15c15
< if world.pointTileCollision(entity.toAbsolutePosition(sensor), {"Null", "Block", "Dynamic"}) then
---
> if world.pointTileCollision(monster.toAbsolutePosition(sensor), {"Null", "Block", "Dynamic"}) then
scripts\actions\crawling.lua
139c139
< local groundRect = {bounds[1], bounds[2] - entity.configParameter("crawlMaxGroundDistance", 0.5), bounds[3], bounds[2]}
---
> local groundRect = {bounds[1], bounds[2] - config.getParameter("crawlMaxGroundDistance", 0.5), bounds[3], bounds[2]}
scripts\actions\dialog.lua
2c2
< local configEntry = entity.configParameter(dialogKey)
---
> local configEntry = config.getParameter(dialogKey)
23c23
< local species = entity.species()
---
> local species = npc.species()
36c36
< math.randomseed(entity.seed())
---
> math.randomseed(npc.seed())
59c59
< entity.say(dialog, args.tags)
---
> npc.say(dialog, args.tags)
86c86
< local portrait = entity.configParameter("chatPortrait")
---
> local portrait = config.getParameter("chatPortrait")
91c91
< entity.say(self.currentDialog[1], args.tags)
---
> npc.say(self.currentDialog[1], args.tags)
93c93
< entity.sayPortrait(self.currentDialog[1], portrait, args.tags)
---
> npc.sayPortrait(self.currentDialog[1], portrait, args.tags)
scripts\actions\entities.lua
0a1,10
> function entityLevel()
> if entity.entityType() == "monster" then
> return monster.level()
> elseif entity.entityType() == "npc" then
> return npc.level()
> else
> return 1
> end
> end
>
271c281
< return world.objectConfigParameter(entityId, "objectType") == "loungeable"
---
> return world.getObjectParameter(entityId, "objectType") == "loungeable"
358,361c368,371
< if args.scalePower and world.entityType(entity.id()) == "monster" then
< projectileConfig.power = root.evalFunction("monsterLevelPowerMultiplier", entity.level()) * (projectileConfig.power or 10)
< elseif args.scalePower and world.entityType(entity.id()) == "npc" then
< projectileConfig.power = (1.0 + root.evalFunction("npcLevelPowerMultiplierModifier", entity.level())) * (projectileConfig.power or 10)
---
> if args.scalePower and entity.entityType() == "monster" then
> projectileConfig.power = root.evalFunction("monsterLevelPowerMultiplier", entityLevel()) * (projectileConfig.power or 10)
> elseif args.scalePower and entity.entityType() == "npc" then
> projectileConfig.power = (1.0 + root.evalFunction("npcLevelPowerMultiplierModifier", entityLevel())) * (projectileConfig.power or 10)
380c390
< if entity.level then projectileConfig.level = entity.level() end
---
> projectileConfig.level = entityLevel()
433c443
< level = entity.level()
---
> level = entityLevel()
486c496
< -- param config
---
> -- param stagehandConfig
491c501
< config = {}
---
> stagehandConfig = {}
497c507
< world.spawnStagehand(position, args.type, args.config)
---
> world.spawnStagehand(position, args.type, args.stagehandConfig)
scripts\actions\merchant.lua
1c1
< require("/scripts/util.lua")
---
> require "/scripts/util.lua"
5c5
< local level = entity.level()
---
> local level = npc.level()
7c7
< self.merchantPools = root.assetJson(entity.configParameter("merchant.poolsFile", "/npcs/merchantpools.config"))
---
> self.merchantPools = root.assetJson(config.getParameter("merchant.poolsFile", "/npcs/merchantpools.config"))
21c21
< if item.item.parameters then item.item.parameters.level = entity.level() end
---
> if item.item.parameters then item.item.parameters.level = npc.level() end
32c32
< local seed = tonumber(entity.seed())
---
> local seed = tonumber(npc.seed())
42c42
< local numItems = entity.configParameter("merchant.numItems")
---
> local numItems = config.getParameter("merchant.numItems")
66c66
< local level = entity.level()
---
> local level = npc.level()
78c78
< storage.buyFactor = entity.randomizeParameterRange("merchant.buyFactorRange")
---
> storage.buyFactor = util.randomInRange(config.getParameter("merchant.buyFactorRange"))
81c81
< storage.sellFactor = entity.randomizeParameterRange("merchant.sellFactorRange")
---
> storage.sellFactor = util.randomInRange(config.getParameter("merchant.sellFactorRange"))
90c90
< paneLayoutOverride = entity.configParameter("merchant.paneLayoutOverride", nil)
---
> paneLayoutOverride = config.getParameter("merchant.paneLayoutOverride", nil)
140,144c140,144
< local species = entity.species()
< if entity.configParameter("merchant.categories.override") then
< return entity.configParameter("merchant.categories.override")
< elseif entity.configParameter("merchant.categories."..species) then
< return entity.configParameter("merchant.categories."..species)
---
> local species = npc.species()
> if config.getParameter("merchant.categories.override") then
> return config.getParameter("merchant.categories.override")
> elseif config.getParameter("merchant.categories."..species) then
> return config.getParameter("merchant.categories."..species)
146c146
< return entity.configParameter("merchant.categories.default")
---
> return config.getParameter("merchant.categories.default")
scripts\actions\movement.lua
16c16
< local facingMode = entity.configParameter("facingMode", "control")
---
> local facingMode = config.getParameter("facingMode", "control")
19,20c19,20
< if entity.setAimPosition then
< entity.setAimPosition(vec2.add(mcontroller.position(), {direction, -1}))
---
> if entity.entityType() == "npc" then
> npc.setAimPosition(vec2.add(mcontroller.position(), {direction, -1}))
24,25c24,25
< entity.resetTransformationGroup("facing")
< entity.scaleTransformationGroup("facing", {util.toDirection(direction), 1})
---
> animator.resetTransformationGroup("facing")
> animator.scaleTransformationGroup("facing", {util.toDirection(direction), 1})
60c60
< if entity.configParameter("pathing.forceWalkingBackwards", false) then
---
> if config.getParameter("pathing.forceWalkingBackwards", false) then
170c170
< if entity.configParameter("pathing.forceWalkingBackwards", false) then
---
> if config.getParameter("pathing.forceWalkingBackwards", false) then
261c261
< if entity.resetLounging then entity.resetLounging() end
---
> if entity.entityType() == "npc" then npc.resetLounging() end
498c498
< -- param config
---
> -- param parameters
501c501
< config = {}
---
> parameters = {}
504,505c504,505
< local config = copy(args.config)
< config.gravityMultiplier = BData:getNumber(args.config.gravityMultiplier)
---
> local parameters = copy(args.parameters)
> parameters.gravityMultiplier = BData:getNumber(args.parameters.gravityMultiplier)
507c507
< mcontroller.controlParameters(config)
---
> mcontroller.controlParameters(parameters)
567c567
< if not closed and entity.configParameter("canOpenDoors", true) and #npcs == 0 then
---
> if not closed and config.getParameter("canOpenDoors", true) and #npcs == 0 then
scripts\actions\quests.lua
48c48
< return world.objectConfigParameter(entityId, "shortdescription")
---
> return world.getObjectParameter(entityId, "shortdescription")
137c137
< entity.say(dialog, tags)
---
> npc.say(dialog, tags)
154c154
< if not entity.configParameter("questGenerator.enableParticipation") then
---
> if not config.getParameter("questGenerator.enableParticipation") then
165c165
< local position = world.entityPosition(entity.id())
---
> local position = entity.position()
scripts\actions\reaction.lua
12c12
< variantReactions = entity.configParameter("reactions", {})
---
> variantReactions = config.getParameter("reactions", {})
399c399
< entity.emote(reactionConfig.emote)
---
> npc.emote(reactionConfig.emote)
402c402
< entity.dance(reactionConfig.dance)
---
> npc.dance(reactionConfig.dance)
scripts\actions\boss\kluexboss.lua
25c25
< local power = BData:getNumber(args.power) * root.evalFunction("monsterLevelPowerMultiplier", entity.level())
---
> local power = BData:getNumber(args.power) * root.evalFunction("monsterLevelPowerMultiplier", monster.level())
scripts\projectiles\chainbullet.lua
5,7c5,7
< self.seekSpeed = config.configParameter("seekSpeed", 30)
< self.triggered = config.configParameter("triggered", false)
< self.targets = config.configParameter("targets")
---
> self.seekSpeed = config.getParameter("seekSpeed", 30)
> self.triggered = config.getParameter("triggered", false)
> self.targets = config.getParameter("targets")
10c10
< self.chainPower = config.configParameter("power")
---
> self.chainPower = config.getParameter("power")
33c33
< type = config.configParameter("chainProjectile"),
---
> type = config.getParameter("chainProjectile"),
scripts\quest\manager.lua
79c79
< for questId, plugin in pairs(entity.configParameter("plugins", {})) do
---
> for questId, plugin in pairs(config.getParameter("plugins", {})) do
97c97
< self.data.expiration = world.time() + entity.configParameter("quest.expiration", 300)
---
> self.data.expiration = world.time() + config.getParameter("quest.expiration", 300)
255c255
< -- they die through findUniqueEntity.
---
> -- they die through findUniqueEntity
scripts\quest\messaging.lua
76c76
< -- messages onto an invisible stagehand entity.)
---
> -- messages onto an invisible stagehand entity)
116,121c116
< local position
< if entity.position then
< position = entity.position()
< else
< position = mcontroller.position()
< end
---
> local position = entity.position()
125c120
< callScript = "entity.typeName",
---
> callScript = "stagehand.typeName",
150,151c145,146
< local uniqueId = world.entityUniqueId(entity.id()) or entity.id()
< world.logInfo(tostring(world.entityType(entity.id())).." "..uniqueId.." "..tostring(text))
---
> local uniqueId = entity.uniqueId() or entity.id()
> world.logInfo(tostring(entity.entityType()).." "..uniqueId.." "..tostring(text))
scripts\quest\participant.lua
43c43
< local selfUniqueId = world.entityUniqueId(entity.id())
---
> local selfUniqueId = entity.uniqueId()
106c106
< local turnInQuests = entity.configParameter("turnInQuests", jarray())
---
> local turnInQuests = config.getParameter("turnInQuests", jarray())
112c112,117
< entity.setTurnInQuests(turnInQuests)
---
>
> if entity.entityType() == "npc" then
> npc.setTurnInQuests(turnInQuests)
> else
> object.setTurnInQuests(turnInQuests)
> end
116c121
< local offeredQuests = entity.configParameter("offeredQuests", jarray())
---
> local offeredQuests = config.getParameter("offeredQuests", jarray())
124a130
>
126c132,137
< entity.setOfferedQuests(offeredQuests)
---
>
> if entity.entityType() == "npc" then
> npc.setOfferedQuests(offeredQuests)
> else
> object.setOfferedQuests(offeredQuests)
> end
130c141
< if #entity.configParameter("offeredQuests", jarray()) > 0 then
---
> if #config.getParameter("offeredQuests", jarray()) > 0 then
201c212
< if world.entityType(entity.id()) ~= "object" then
---
> if entity.entityType() ~= "object" then
208c219
< if world.entityType(entity.id()) ~= "object" then
---
> if entity.entityType() ~= "object" then
304c315
< local uniqueId = world.entityUniqueId(entity.id())
---
> local uniqueId = entity.uniqueId()
scripts\quest\player.lua
51c51
< return world.entityUniqueId(entity.id())
---
> return entity.uniqueId()
scripts\quest\manager\plugin.lua
6c6
< function QuestManagerPlugin:init(questManager, storageArea, questId, config)
---
> function QuestManagerPlugin:init(questManager, storageArea, questId, pluginConfig)
10c10
< self.config = config
---
> self.config = pluginConfig
scripts\quest\manager\spawn_assassins.lua
17,18c17,18
< world.callScriptedEntity(entityId, "entity.setDropPools", {})
< world.callScriptedEntity(entityId, "entity.setDeathParticleBurst")
---
> world.callScriptedEntity(entityId, "npc.setDropPools", {})
> world.callScriptedEntity(entityId, "npc.setDeathParticleBurst")
scripts\quest\manager\spawn_entities.lua
104c104
< local position = world.entityPosition(entity.id())
---
> local position = entity.position()
scripts\questgen\generator.lua
22,23c22,23
< local queryRange = entity.configParameter("questGenerator.queryRange", 50)
< local queryCooldown = entity.configParameter("questGenerator.queryCooldown", 60)
---
> local queryRange = config.getParameter("questGenerator.queryRange", 50)
> local queryCooldown = config.getParameter("questGenerator.queryCooldown", 60)
86c86
< for _,poolName in pairs(entity.configParameter("questGenerator.pools", {})) do
---
> for _,poolName in pairs(config.getParameter("questGenerator.pools", {})) do
102c102
< return world.entityPosition(entity.id())
---
> return entity.position()
107c107
< return world.objectConfigParameter(entityId, "shortdescription")
---
> return world.getObjectParameter(entityId, "shortdescription")
117,119c117,119
< for name, config in pairs(root.assetJson("/quests/generated/pools/pools.config")) do
< local relation = PoolRelations[config.relation]
< self._poolRelations[name] = defineRelation(name, true, relation)(config)
---
> for name, poolConfig in pairs(root.assetJson("/quests/generated/pools/pools.config")) do
> local relation = PoolRelations[poolConfig.relation]
> self._poolRelations[name] = defineRelation(name, true, relation)(poolConfig)
134c134
< local maxCost = entity.configParameter("questGenerator.maxPlanCost", 5)
---
> local maxCost = config.getParameter("questGenerator.maxPlanCost", 5)
scripts\questgen\planner.lua
686c686
< function Operator:init(name, config)
---
> function Operator:init(name, operatorConfig)
688,692c688,692
< self.preconditions = config.preconditions
< self.postconditions = config.postconditions
< self.objectives = config.objectives
< self.priority = config.priority or 0
< self.config = config
---
> self.preconditions = operatorConfig.preconditions
> self.postconditions = operatorConfig.postconditions
> self.objectives = operatorConfig.objectives
> self.priority = operatorConfig.priority or 0
> self.config = operatorConfig
728,729c728,729
< for name,config in pairs(json) do
< local operator = Operator.new(name, config)
---
> for name, operatorConfig in pairs(json) do
> local operator = Operator.new(name, operatorConfig)
scripts\questgen\relations.lua
582c582
< if xor(self.negated, npc:callScript("entity.configParameter", configPath)) then
---
> if xor(self.negated, npc:callScript("config.getParameter", configPath)) then
593c593
< return npc:callScript("entity.configParameter", "questGenerator.flags.guard")
---
> return npc:callScript("config.getParameter", "questGenerator.flags.guard")
948c948
< if xor(self.negated, npc:callScript("entity.getItemSlot", slotName) ~= nil) then
---
> if xor(self.negated, npc:callScript("npc.getItemSlot", slotName) ~= nil) then
spawntypes\critter.spawntypes
1126a1127,1174
> "name" : "smallgeodecritter",
>
> "spawnParameters" : {
> "area" : "surface",
> "region" : "exposed",
> "time" : "all"
> },
>
> "targetDensity" : 0.02,
> "monsterType" : "smallgeodecritter",
> "monsterParameters" : {
> "aggressive" : false
> }
> },
>
> {
> "name" : "largegeodecritter",
>
> "spawnParameters" : {
> "area" : "surface",
> "region" : "exposed",
> "time" : "all"
> },
>
> "targetDensity" : 0.02,
> "monsterType" : "largegeodecritter",
> "monsterParameters" : {
> "aggressive" : false
> }
> },
>
> {
> "name" : "floatinggeodecritter",
>
> "spawnParameters" : {
> "area" : "surface",
> "region" : "exposed",
> "time" : "all"
> },
>
> "targetDensity" : 0.02,
> "monsterType" : "floatinggeodecritter",
> "monsterParameters" : {
> "aggressive" : false
> }
> },
>
> {
species\apex.species
8c8
< },
---
> },
18,19d17
< // ********* TIER 1 **********
<
38a37,39
> // Furniture Table 2
> { "item" : "apexstoragelocker" },
>
50,51d50
<
<
59,60d57
< { "item" : "apexstoragelocker" },
<
67,70c64
<
< { "item" : "apextier3head" },
< { "item" : "apextier3chest" },
< { "item" : "apextier3pants" },
---
>
77,80c71
<
< // { "item" : "apextier4head" },
< // { "item" : "apextier4chest" },
< // { "item" : "apextier4pants" },
---
>
species\avian.species
4c4
< "charCreationTooltip" : {
---
> "charCreationTooltip" : {
8c8
< },
---
> },
18,19d17
< // ********* TIER 1 **********
<
38a37,39
> // Furniture Table 2
> { "item" : "avianstoragelocker" },
>
56,57d56
<
< { "item" : "avianstoragelocker" },
species\floran.species
4c4
< "charCreationTooltip" : {
---
> "charCreationTooltip" : {
8c8
< },
---
> },
18,19d17
< // ********* TIER 1 **********
<
38a37,39
> // Furniture Table 2
> { "item" : "floranstoragelocker" },
>
56,70d56
< { "item" : "florantier1head" },
< { "item" : "florantier1chest" },
< { "item" : "florantier1pants" },
< { "item" : "floranfurnivourchest" },
< { "item" : "floranfurnivourlegs" },
< { "item" : "floranhunterchest" },
< { "item" : "floranhunterlegs" },
< { "item" : "floranleafchest" },
< { "item" : "floranleaflegs" },
< { "item" : "floranpeltchest" },
< { "item" : "floranpeltlegs" },
<
< { "item" : "floranstoragelocker" },
<
< { "item" : "flagfloran" },
species\glitch.species
8,9c8
< },
<
---
> },
19,20d17
< // ********* TIER 1 **********
<
39a37,39
> // Furniture Table 2
> { "item" : "glitchstoragelocker" },
>
57,71d56
< { "item" : "glitchtier1head" },
< { "item" : "glitchtier1chest" },
< { "item" : "glitchtier1pants" },
< { "item" : "craftsmenchest" },
< { "item" : "craftsmenlegs" },
< { "item" : "merchantchest" },
< { "item" : "merchantlegs" },
< { "item" : "noblechest" },
< { "item" : "noblelegs" },
< { "item" : "peasantchest" },
< { "item" : "peasantlegs" },
<
< { "item" : "glitchstoragelocker" },
<
< { "item" : "flagglitch" },
79,82c64
<
< { "item" : "glitchtier3head" },
< { "item" : "glitchtier3chest" },
< { "item" : "glitchtier3pants" },
---
>
species\human.species
8,9c8
< },
<
---
> },
19,20d17
< // ********* TIER 1 **********
<
39a37,39
> // Furniture Table 2
> { "item" : "humanstoragelocker" },
>
57,71d56
< { "item" : "humantier1head" },
< { "item" : "humantier1chest" },
< { "item" : "humantier1pants" },
< { "item" : "conceptchest" },
< { "item" : "conceptlegs" },
< { "item" : "coolchest" },
< { "item" : "coollegs" },
< { "item" : "sweatervestchest" },
< { "item" : "sweatervestlegs" },
< { "item" : "workoutchest" },
< { "item" : "workoutlegs" },
<
< { "item" : "humanstoragelocker" },
<
< { "item" : "flaghuman" },
species\hylotl.species
4c4
< "charCreationTooltip" : {
---
> "charCreationTooltip" : {
8c8
< },
---
> },
18,19d17
< // ********* TIER 1 **********
<
38a37,39
> // Furniture Table 2
> { "item" : "hylotlstoragelocker" },
>
56,70d56
< { "item" : "hylotltier1head" },
< { "item" : "hylotltier1chest" },
< { "item" : "hylotltier1pants" },
< { "item" : "kimonochest" },
< { "item" : "kimonolegs" },
< { "item" : "monkchest" },
< { "item" : "monklegs" },
< { "item" : "traditionalchest" },
< { "item" : "traditionallegs" },
< { "item" : "traineechest" },
< { "item" : "traineelegs" },
<
< { "item" : "hylotlstoragelocker" },
<
< { "item" : "flaghylotl" },
species\novakid.species
4c4
< "charCreationTooltip" : {
---
> "charCreationTooltip" : {
8,9c8
< },
<
---
> },
19,20d17
< // ********* TIER 1 **********
<
39a37,39
> // Furniture Table 2
> { "item" : "novakidstoragelocker" },
>
50,55c50
<
< /*
< { "item" : "novakidstoragelocker" },
<
< { "item" : "flagnovakid" },
<
---
> /*
83,85c78,80
< // { "item" : "novatier6ahead" },
< // { "item" : "novatier6achest" },
< // { "item" : "novatier6apants" },
---
> { "item" : "novatier6ahead" },
> { "item" : "novatier6achest" },
> { "item" : "novatier6apants" },
89,91c84,86
< // { "item" : "novatier6mhead" },
< // { "item" : "novatier6mchest" },
< // { "item" : "novatier6mpants" },
---
> { "item" : "novatier6mhead" },
> { "item" : "novatier6mchest" },
> { "item" : "novatier6mpants" },
95,97c90,92
< // { "item" : "novatier6shead" },
< // { "item" : "novatier6schest" },
< // { "item" : "novatier6spants" },
---
> { "item" : "novatier6shead" },
> { "item" : "novatier6schest" },
> { "item" : "novatier6spants" },
stagehands\coordinator.lua
4,8c4,8
< local min = entity.configParameter("minMembers")
< local max = entity.configParameter("maxMembers")
< self.goalType = entity.configParameter("goalType")
< self.goal = entity.configParameter("goal")
< self.groupId = entity.configParameter("groupId")
---
> local min = config.getParameter("minMembers")
> local max = config.getParameter("maxMembers")
> self.goalType = config.getParameter("goalType")
> self.goal = config.getParameter("goal")
> self.groupId = config.getParameter("groupId")
26,27c26,27
< if entity.configParameter("behavior") then
< self.btree = BTree:new(entity.configParameter("behavior"))
---
> if config.getParameter("behavior") then
> self.btree = BTree:new(config.getParameter("behavior"))
45c45
< entity.die()
---
> stagehand.die()
50c50
< entity.setPosition(world.entityPosition(self.goal))
---
> stagehand.setPosition(world.entityPosition(self.goal))
52c52
< entity.die()
---
> stagehand.die()
stagehands\mailbox.lua
13c13
< entity.die()
---
> stagehand.die()
stagehands\questmanager.lua
15,16c15,16
< local arc = loadQuestArcDescriptor(entity.configParameter("quest.arc"))
< local participants = entity.configParameter("quest.participants")
---
> local arc = loadQuestArcDescriptor(config.getParameter("quest.arc"))
> local participants = config.getParameter("quest.participants")
23c23
< entity.die()
---
> stagehand.die()
stagehands\coordinator\npccombat.lua
27c27
< local gunRanges = entity.configParameter("npcCombat.rangedWeaponRanges")
---
> local gunRanges = config.getParameter("npcCombat.rangedWeaponRanges")
33c33
< local weaponRanges = entity.configParameter("npcCombat.meleeWeaponRanges")
---
> local weaponRanges = config.getParameter("npcCombat.meleeWeaponRanges")
stats\effects\bandage\bandage.lua
3c3
< animator.setParticleEmitterEmissionRate("healing", effect.configParameter("emissionRate", 3))
---
> animator.setParticleEmitterEmissionRate("healing", config.getParameter("emissionRate", 3))
8c8
< self.healingRate = effect.configParameter("healAmount", 30) / effect.duration()
---
> self.healingRate = config.getParameter("healAmount", 30) / effect.duration()
stats\effects\bandage\bandage2.statuseffect
4c4
< "healAmount" : 35,
---
> "healAmount" : 40,
stats\effects\bandage\bandage3.statuseffect
4c4
< "healAmount" : 45,
---
> "healAmount" : 50,
stats\effects\beamout\beamout.lua
10c10
< if effect.configParameter("teleport") then
---
> if config.getParameter("teleport") then
15c15
< if effect.configParameter("die") then
---
> if config.getParameter("die") then
stats\effects\color\color.lua
2c2
< effect.setParentDirectives("fade="..effect.configParameter("color").."=0.5")
---
> effect.setParentDirectives("fade="..config.getParameter("color").."=0.5")
stats\effects\deathbomb\deathbomb.lua
2c2
< if status.resourceMax("health") < effect.configParameter("minMaxHealth", 0) then
---
> if status.resourceMax("health") < config.getParameter("minMaxHealth", 0) then
14c14
< effect.setParentDirectives(effect.configParameter("flashDirectives", ""))
---
> effect.setParentDirectives(config.getParameter("flashDirectives", ""))
19c19
< if not status.resourcePositive("health") and status.resourceMax("health") >= effect.configParameter("minMaxHealth", 0) then
---
> if not status.resourcePositive("health") and status.resourceMax("health") >= config.getParameter("minMaxHealth", 0) then
32c32
< local bombPower = status.resourceMax("health") * effect.configParameter("healthDamageFactor", 1.0)
---
> local bombPower = status.resourceMax("health") * config.getParameter("healthDamageFactor", 1.0)
41c41
< file = effect.configParameter("bombConfig")
---
> file = config.getParameter("bombConfig")
stats\effects\electrified\electrified.lua
16c16
< local boltPower = status.resourceMax("health") * effect.configParameter("healthDamageFactor", 1.0)
---
> local boltPower = status.resourceMax("health") * config.getParameter("healthDamageFactor", 1.0)
19c19
< local targetIds = world.entityQuery(mcontroller.position(), effect.configParameter("jumpDistance", 8), {
---
> local targetIds = world.entityQuery(mcontroller.position(), config.getParameter("jumpDistance", 8), {
stats\effects\energyregen\energyregen.lua
3c3
< animator.setParticleEmitterEmissionRate("energy", effect.configParameter("emissionRate", 5))
---
> animator.setParticleEmitterEmissionRate("energy", config.getParameter("emissionRate", 5))
6c6
< effect.addStatModifierGroup({{stat = "energyRegen", amount = effect.configParameter("regenAmount", 0)}})
---
> effect.addStatModifierGroup({{stat = "energyRegen", amount = config.getParameter("regenAmount", 0)}})
stats\effects\food\foodheal\foodheal.lua
3c3
< animator.setParticleEmitterEmissionRate("healing", effect.configParameter("emissionRate", 3))
---
> animator.setParticleEmitterEmissionRate("healing", config.getParameter("emissionRate", 3))
8c8
< self.healingRate = effect.configParameter("healAmount", 30) / effect.duration()
---
> self.healingRate = config.getParameter("healAmount", 30) / effect.duration()
stats\effects\frostslow\frostslow.statuseffect
15c15
< "icon" : "/interface/statuses/cold.png"
---
> "icon" : "/interface/statuses/ice.png"
stats\effects\levitation\levitation.lua
5,7c5,7
< self.maxHoverHeight = effect.configParameter("maxHoverHeight")
< self.hoverSpeedMultiplier = effect.configParameter("hoverSpeedMultiplier")
< self.hoverAcceleration = effect.configParameter("hoverAcceleration")
---
> self.maxHoverHeight = config.getParameter("maxHoverHeight")
> self.hoverSpeedMultiplier = config.getParameter("hoverSpeedMultiplier")
> self.hoverAcceleration = config.getParameter("hoverAcceleration")
10,11c10,11
< self.bobInterval = effect.configParameter("bobInterval")
< self.bobAmount = effect.configParameter("bobAmount")
---
> self.bobInterval = config.getParameter("bobInterval")
> self.bobAmount = config.getParameter("bobAmount")
13c13
< self.fallSpeedLimit = effect.configParameter("fallSpeedLimit")
---
> self.fallSpeedLimit = config.getParameter("fallSpeedLimit")
16c16
< self.protectionBonus = effect.configParameter("protectionBonus")
---
> self.protectionBonus = config.getParameter("protectionBonus")
stats\effects\lowgrav\lowgrav.lua
2c2
< self.gravityModifier = effect.configParameter("gravityModifier")
---
> self.gravityModifier = config.getParameter("gravityModifier")
stats\effects\maxenergyboost\maxenergyboost.lua
2c2
< effect.addStatModifierGroup({{stat = "maxEnergy", amount = effect.configParameter("energyAmount", 0)}})
---
> effect.addStatModifierGroup({{stat = "maxEnergy", amount = config.getParameter("energyAmount", 0)}})
stats\effects\maxhealthboost\maxhealthboost.lua
2c2
< effect.addStatModifierGroup({{stat = "maxHealth", amount = effect.configParameter("healthAmount", 0)}})
---
> effect.addStatModifierGroup({{stat = "maxHealth", amount = config.getParameter("healthAmount", 0)}})
stats\effects\maxprotection\protection.lua
3,4c3,4
< {stat = "protection", amount = effect.configParameter("protection", 100)},
< {stat = "grit", amount = effect.configParameter("grit", 1.0)}
---
> {stat = "protection", amount = config.getParameter("protection", 100)},
> {stat = "grit", amount = config.getParameter("grit", 1.0)}
stats\effects\npcreactions\particlereaction.lua
2c2
< for _,particleEmitter in ipairs(effect.configParameter("particleEmitters")) do
---
> for _,particleEmitter in ipairs(config.getParameter("particleEmitters")) do
stats\effects\rage\rage.lua
3,5c3,5
< self.runModifier = effect.configParameter("runModifier", 0)
< self.jumpModifier = effect.configParameter("jumpModifier", 0)
< self.groundMovementModifier = effect.configParameter("groundMovementModifier", 0)
---
> self.runModifier = config.getParameter("runModifier", 0)
> self.jumpModifier = config.getParameter("jumpModifier", 0)
> self.groundMovementModifier = config.getParameter("groundMovementModifier", 0)
8c8
< self.powerModifier = effect.configParameter("powerModifier", 0)
---
> self.powerModifier = config.getParameter("powerModifier", 0)
stats\effects\regeneration\regeneration.lua
7c7
< self.healingRate = 1.0 / effect.configParameter("healTime", 60)
---
> self.healingRate = 1.0 / config.getParameter("healTime", 60)
stats\effects\shieldeffect\shieldeffect.lua
2c2
< self.maxShieldHealth = status.stat("maxHealth") * effect.configParameter("shieldHealthMultiplier")
---
> self.maxShieldHealth = status.stat("maxHealth") * config.getParameter("shieldHealthMultiplier")
6c6
< self.expirationTimer = effect.configParameter("expirationTime") or 0
---
> self.expirationTimer = config.getParameter("expirationTime") or 0
29c29
< self.expirationTimer = effect.configParameter("expirationTime") or 0
---
> self.expirationTimer = config.getParameter("expirationTime") or 0
34c34
< if not effect.configParameter("hideBorder") then effect.setParentDirectives("border=3;00FFFF99;00000000") end
---
> if not config.getParameter("hideBorder") then effect.setParentDirectives("border=3;00FFFF99;00000000") end
stats\effects\shieldregen\shieldregen.lua
4c4
< self.shieldHealthRegen = status.stat("maxShield") * effect.configParameter("shieldRegenPercentage")
---
> self.shieldHealthRegen = status.stat("maxShield") * config.getParameter("shieldRegenPercentage")
14c14
< self.pauseTimer = effect.configParameter("pauseOnDamage", 0)
---
> self.pauseTimer = config.getParameter("pauseOnDamage", 0)
17c17
< if status.stat("maxShield") <= 0 or (status.resource("shieldHealth") >= status.stat("maxShield") and effect.configParameter("expireOnFull")) then
---
> if status.stat("maxShield") <= 0 or (status.resource("shieldHealth") >= status.stat("maxShield") and config.getParameter("expireOnFull")) then
stats\effects\swimming\swimming.lua
2c2
< self.applyToTypes = effect.configParameter("applyToTypes") or {"player", "npc"}
---
> self.applyToTypes = config.getParameter("applyToTypes") or {"player", "npc"}
12c12
< local entityType = world.entityType(entity.id())
---
> local entityType = entity.entityType()
stats\effects\thorns\thorns.lua
2c2
< self.minRange = effect.configParameter("minRange") or 0.5
---
> self.minRange = config.getParameter("minRange") or 0.5
4,8c4,8
< self.visualProjectileType = effect.configParameter("visualProjectileType")
< self.visualProjectileCount = effect.configParameter("visualProjectileCount") or 20
< self.visualProjectileSpeed = effect.configParameter("visualProjectileSpeed") or 20
< self.visualProjectileTime = effect.configParameter("visualProjectileTime")
< self.visualDuration = effect.configParameter("visualDuration") or 0.2
---
> self.visualProjectileType = config.getParameter("visualProjectileType")
> self.visualProjectileCount = config.getParameter("visualProjectileCount") or 20
> self.visualProjectileSpeed = config.getParameter("visualProjectileSpeed") or 20
> self.visualProjectileTime = config.getParameter("visualProjectileTime")
> self.visualDuration = config.getParameter("visualDuration") or 0.2
10,12c10,12
< self.damageProjectileType = effect.configParameter("damageProjectileType") or "armorthornburst"
< self.damageMultiplier = effect.configParameter("damageMultiplier") or 0.01
< self.border = effect.configParameter("border")
---
> self.damageProjectileType = config.getParameter("damageProjectileType") or "armorthornburst"
> self.damageMultiplier = config.getParameter("damageMultiplier") or 0.01
> self.border = config.getParameter("border")
14c14
< self.cooldown = effect.configParameter("cooldown") or 5
---
> self.cooldown = config.getParameter("cooldown") or 5
16c16
< self.removeInWater = effect.configParameter("removeInWater")
---
> self.removeInWater = config.getParameter("removeInWater")
18c18
< self.minTriggerDamage = effect.configParameter("minTriggerDamage") or 0
---
> self.minTriggerDamage = config.getParameter("minTriggerDamage") or 0
stats\effects\vulnerability\vulnerability.lua
3c3
< {stat = "protection", effectiveMultiplier = effect.configParameter("protectionModifier", 0.01)}
---
> {stat = "protection", effectiveMultiplier = config.getParameter("protectionModifier", 0.01)}
stats\effects\windswept\windswept.lua
2c2
< self.movementParameters = effect.configParameter("movementParameters")
---
> self.movementParameters = config.getParameter("movementParameters")
tech\blink\blink.lua
2,5c2,5
< local blinkCollisionCheckDiameter = tech.parameter("blinkCollisionCheckDiameter")
< local blinkVerticalGroundCheck = tech.parameter("blinkVerticalGroundCheck")
< local blinkFootOffset = tech.parameter("blinkFootOffset")
< local blinkHeadOffset = tech.parameter("blinkHeadOffset")
---
> local blinkCollisionCheckDiameter = config.getParameter("blinkCollisionCheckDiameter")
> local blinkVerticalGroundCheck = config.getParameter("blinkVerticalGroundCheck")
> local blinkFootOffset = config.getParameter("blinkFootOffset")
> local blinkHeadOffset = config.getParameter("blinkHeadOffset")
71,72c71,72
< local randomBlinkTries = tech.parameter("randomBlinkTries")
< local randomBlinkDiameter = tech.parameter("randomBlinkDiameter")
---
> local randomBlinkTries = config.getParameter("randomBlinkTries")
> local randomBlinkDiameter = config.getParameter("randomBlinkDiameter")
111,114c111,114
< local energyUsage = tech.parameter("energyUsage")
< local blinkMode = tech.parameter("blinkMode")
< local blinkOutTime = tech.parameter("blinkOutTime")
< local blinkInTime = tech.parameter("blinkInTime")
---
> local energyUsage = config.getParameter("energyUsage")
> local blinkMode = config.getParameter("blinkMode")
> local blinkOutTime = config.getParameter("blinkOutTime")
> local blinkInTime = config.getParameter("blinkInTime")
119,121c119,121
< local randomBlinkAvoidCollision = tech.parameter("randomBlinkAvoidCollision")
< local randomBlinkAvoidMidair = tech.parameter("randomBlinkAvoidMidair")
< local randomBlinkAvoidLiquid = tech.parameter("randomBlinkAvoidLiquid")
---
> local randomBlinkAvoidCollision = config.getParameter("randomBlinkAvoidCollision")
> local randomBlinkAvoidMidair = config.getParameter("randomBlinkAvoidMidair")
> local randomBlinkAvoidLiquid = config.getParameter("randomBlinkAvoidLiquid")
145c145
< tech.playSound("activate")
---
> animator.playSound("activate")
148c148
< tech.setAnimationState("blinking", "out")
---
> animator.setAnimationState("blinking", "out")
159c159
< tech.setAnimationState("blinking", "in")
---
> animator.setAnimationState("blinking", "in")
tech\booster\booster.lua
41,43c41,43
< local boostControlForce = tech.parameter("boostControlForce")
< local boostSpeed = tech.parameter("boostSpeed")
< local energyUsagePerSecond = tech.parameter("energyUsagePerSecond")
---
> local boostControlForce = config.getParameter("boostControlForce")
> local boostSpeed = config.getParameter("boostSpeed")
> local energyUsagePerSecond = config.getParameter("energyUsagePerSecond")
69,70c69,70
< tech.setAnimationState("boosting", "on")
< tech.setParticleEmitterActive("boostParticles", true)
---
> animator.setAnimationState("boosting", "on")
> animator.setParticleEmitterActive("boostParticles", true)
72,73c72,73
< tech.setAnimationState("boosting", "off")
< tech.setParticleEmitterActive("boostParticles", false)
---
> animator.setAnimationState("boosting", "off")
> animator.setParticleEmitterActive("boostParticles", false)
tech\bounce\bounce.lua
16,18c16,18
< local energyUsageRate = tech.parameter("energyUsageRate")
< local bounceCollisionPoly = tech.parameter("bounceCollisionPoly")
< local bounceFactor = tech.parameter("bounceFactor")
---
> local energyUsageRate = config.getParameter("energyUsageRate")
> local bounceCollisionPoly = config.getParameter("bounceCollisionPoly")
> local bounceFactor = config.getParameter("bounceFactor")
45,46c45,46
< tech.setAnimationState("bouncing", "on")
< tech.playSound("activate")
---
> animator.setAnimationState("bouncing", "on")
> animator.playSound("activate")
52c52
< tech.setAnimationState("bouncing", "off")
---
> animator.setAnimationState("bouncing", "off")
tech\dash\dash.lua
16c16
< local maximumDoubleTapTime = tech.parameter("maximumDoubleTapTime")
---
> local maximumDoubleTapTime = config.getParameter("maximumDoubleTapTime")
54,57c54,57
< local dashControlForce = tech.parameter("dashControlForce")
< local dashSpeed = tech.parameter("dashSpeed")
< local dashDuration = tech.parameter("dashDuration")
< local dashCooldown = tech.parameter("dashCooldown")
---
> local dashControlForce = config.getParameter("dashControlForce")
> local dashSpeed = config.getParameter("dashSpeed")
> local dashDuration = config.getParameter("dashDuration")
> local dashCooldown = config.getParameter("dashCooldown")
59c59
< local groundOnly = tech.parameter("groundOnly")
---
> local groundOnly = config.getParameter("groundOnly")
84c84
< tech.setFlipped(true)
---
> animator.setFlipped(true)
87c87
< tech.setFlipped(false)
---
> animator.setFlipped(false)
89,90c89,90
< tech.setAnimationState("dashing", "on")
< tech.setParticleEmitterActive("dashParticles", true)
---
> animator.setAnimationState("dashing", "on")
> animator.setParticleEmitterActive("dashParticles", true)
96c96
< if tech.parameter("stopAfterDash") then
---
> if config.getParameter("stopAfterDash") then
103,104c103,104
< tech.setAnimationState("dashing", "off")
< tech.setParticleEmitterActive("dashParticles", false)
---
> animator.setAnimationState("dashing", "off")
> animator.setParticleEmitterActive("dashParticles", false)
tech\flyingjump\flyingjump.lua
17,18c17,18
< local multiJumpCount = tech.parameter("multiJumpCount")
< local energyUsage = tech.parameter("energyUsage")
---
> local multiJumpCount = config.getParameter("multiJumpCount")
> local energyUsage = config.getParameter("energyUsage")
23,24c23,24
< tech.burstParticleEmitter("multiJumpParticles")
< tech.playSound("multiJumpSound")
---
> animator.burstParticleEmitter("multiJumpParticles")
> animator.playSound("multiJumpSound")
tech\jetpack\jetpack.lua
21,23c21,23
< local jetpackSpeed = tech.parameter("jetpackSpeed")
< local jetpackControlForce = tech.parameter("jetpackControlForce")
< local energyUsagePerSecond = tech.parameter("energyUsagePerSecond")
---
> local jetpackSpeed = config.getParameter("jetpackSpeed")
> local jetpackControlForce = config.getParameter("jetpackControlForce")
> local energyUsagePerSecond = config.getParameter("energyUsagePerSecond")
26c26
< tech.setAnimationState("jetpack", "on")
---
> animator.setAnimationState("jetpack", "on")
30c30
< tech.playSound("activate")
---
> animator.playSound("activate")
35c35
< tech.setAnimationState("jetpack", "off")
---
> animator.setAnimationState("jetpack", "off")
tech\morphball\balldash.lua
8,13c8,13
< self.energyPerSecond = tech.parameter("energyCostPerSecond")
< self.dashControlForce = tech.parameter("dashControlForce")
< self.dashSpeed = tech.parameter("dashSpeed")
< self.ballRadius = tech.parameter("ballRadius")
< self.ballFrames = tech.parameter("ballFrames")
< self.ballMovementParams = tech.parameter("ballCustomMovementParameters")
---
> self.energyPerSecond = config.getParameter("energyCostPerSecond")
> self.dashControlForce = config.getParameter("dashControlForce")
> self.dashSpeed = config.getParameter("dashSpeed")
> self.ballRadius = config.getParameter("ballRadius")
> self.ballFrames = config.getParameter("ballFrames")
> self.ballMovementParams = config.getParameter("ballCustomMovementParameters")
47c47
< self.doubleTapTimers[dir] = tech.parameter("maxDoubleTapTime")
---
> self.doubleTapTimers[dir] = config.getParameter("maxDoubleTapTime")
75c75
< tech.setGlobalTag("rotationFrame", rotationFrame)
---
> animator.setGlobalTag("rotationFrame", rotationFrame)
90c90
< tech.burstParticleEmitter("morphballActivateParticles")
---
> animator.burstParticleEmitter("morphballActivateParticles")
98c98
< tech.burstParticleEmitter("morphballDeactivateParticles")
---
> animator.burstParticleEmitter("morphballDeactivateParticles")
tech\morphball\morphball.lua
40,45c40,45
< local energyCostPerSecond = tech.parameter("energyCostPerSecond")
< local ballCustomMovementParameters = tech.parameter("ballCustomMovementParameters")
< local ballTransformHeightChange = tech.parameter("ballTransformHeightChange")
< local ballDeactivateCollisionTest = tech.parameter("ballDeactivateCollisionTest")
< local ballRadius = tech.parameter("ballRadius")
< local ballFrames = tech.parameter("ballFrames")
---
> local energyCostPerSecond = config.getParameter("energyCostPerSecond")
> local ballCustomMovementParameters = config.getParameter("ballCustomMovementParameters")
> local ballTransformHeightChange = config.getParameter("ballTransformHeightChange")
> local ballDeactivateCollisionTest = config.getParameter("ballDeactivateCollisionTest")
> local ballRadius = config.getParameter("ballRadius")
> local ballFrames = config.getParameter("ballFrames")
84c84
< tech.setGlobalTag("rotationFrame", rotationFrame)
---
> animator.setGlobalTag("rotationFrame", rotationFrame)
92c92
< tech.burstParticleEmitter("morphballActivateParticles")
---
> animator.burstParticleEmitter("morphballActivateParticles")
100c100
< tech.burstParticleEmitter("morphballDeactivateParticles")
---
> animator.burstParticleEmitter("morphballDeactivateParticles")
tech\multijump\multijump.lua
17,18c17,18
< local multiJumpCount = tech.parameter("multiJumpCount")
< local energyUsage = tech.parameter("energyUsage")
---
> local multiJumpCount = config.getParameter("multiJumpCount")
> local energyUsage = config.getParameter("energyUsage")
23,24c23,24
< tech.burstParticleEmitter("multiJumpParticles")
< tech.playSound("multiJumpSound")
---
> animator.burstParticleEmitter("multiJumpParticles")
> animator.playSound("multiJumpSound")
tech\skyrail\skyrail.lua
48c48
< tech.setAnimationState("skyrail", "off")
---
> animator.setAnimationState("skyrail", "off")
115c115
< tech.setAnimationState("skyrail", "on")
---
> animator.setAnimationState("skyrail", "on")
122c122
< tech.setAnimationState("skyrail", "off")
---
> animator.setAnimationState("skyrail", "off")
146,147c146,147
< local hookOffset = tech.parameter("hookOffset")
< local testOffset = tech.parameter("railtestStartOffset")
---
> local hookOffset = config.getParameter("hookOffset")
> local testOffset = config.getParameter("railtestStartOffset")
177c177
< self.leaveTimer = tech.parameter("railLeaveTime");
---
> self.leaveTimer = config.getParameter("railLeaveTime");
202c202
< surfaces = tech.parameter("surfaceBehaviour")
---
> surfaces = config.getParameter("surfaceBehaviour")
224,226c224,226
< local minspeed = tech.parameter("minSpeed")
< local bouncespeed = tech.parameter("minBounceSpeed")
< local bouncefactor = tech.parameter("bounceFactor")
---
> local minspeed = config.getParameter("minSpeed")
> local bouncespeed = config.getParameter("minBounceSpeed")
> local bouncefactor = config.getParameter("bounceFactor")
238,239c238,239
< local hookOffset = tech.parameter("hookOffset")
< local testOffset = tech.parameter("railtestStartOffset")
---
> local hookOffset = config.getParameter("hookOffset")
> local testOffset = config.getParameter("railtestStartOffset")
324c324
< local minspeed = tech.parameter("minSpeed")
---
> local minspeed = config.getParameter("minSpeed")
338c338
< local minspeed = tech.parameter("minSpeed")
---
> local minspeed = config.getParameter("minSpeed")
340c340
< local hookOffset = tech.parameter("hookOffset")
---
> local hookOffset = config.getParameter("hookOffset")
428c428
< self.speed = tech.parameter("minSpeed")
---
> self.speed = config.getParameter("minSpeed")
445c445
< local testLength = tech.parameter("railtestLength")
---
> local testLength = config.getParameter("railtestLength")
558c558
< local validSurfaces = tech.parameter("railSurfaces")
---
> local validSurfaces = config.getParameter("railSurfaces")
tech\superjump\superjump.lua
14,16c14,16
< local superJumpSpeed = tech.parameter("superjumpSpeed")
< local superJumpControlForce = tech.parameter("superjumpControlForce")
< local superJumpTime = tech.parameter("superjumpTime")
---
> local superJumpSpeed = config.getParameter("superjumpSpeed")
> local superJumpControlForce = config.getParameter("superjumpControlForce")
> local superJumpTime = config.getParameter("superjumpTime")
18,19c18,19
< if args.actions["superjump"] and mcontroller.onGround() and self.superJumpTimer <= 0 and tech.consumeTechEnergy(tech.parameter("energyUsage")) then
< tech.playSound("jumpSound")
---
> if args.actions["superjump"] and mcontroller.onGround() and self.superJumpTimer <= 0 and tech.consumeTechEnergy(config.getParameter("energyUsage")) then
> animator.playSound("jumpSound")
23c23
< tech.setFlipped(mcontroller.facingDirection() < 0)
---
> animator.setFlipped(mcontroller.facingDirection() < 0)
27c27
< tech.setParticleEmitterActive("jumpParticles", true)
---
> animator.setParticleEmitterActive("jumpParticles", true)
30c30
< tech.setParticleEmitterActive("jumpParticles", false)
---
> animator.setParticleEmitterActive("jumpParticles", false)
tiles\materials\geodeblock.material
4c4
< "particleColor" : [104, 225, 241, 255],
---
> "particleColor" : [121, 150, 102, 255],
8,9c8,9
< "glitchDescription" : "Analysis. This block is made of geode.",
< "floranDescription" : "Ssshiny block.",
---
> "glitchDescription" : "Analysis. This block is made of geode.-todo-",
> "floranDescription" : "Ssshiny block.-todo-",
11c11
< "health" : 8,
---
> "health" : 12,
21c21
< "zLevel" : 1561
---
> "zLevel" : 1401
tiles\materials\geodestone.material
6c6
< "description" : "Solid geodestone. It reflects the light.",
---
> "description" : "Solid geodestone. It reflects the light.-todo-",
8,9c8,9
< "glitchDescription" : "Statement. Rock-hard geodestone.",
< "floranDescription" : "Obsssidian. Black like Floran sssoul.",
---
> "glitchDescription" : "Statement. Rock-hard geodestone.-todo-",
> "floranDescription" : "Obsssidian. Black like Floran sssoul.-todo-",
21c21
< "zLevel" : 1401
---
> "zLevel" : 1561
tiles\mods\tungsten.matmod
7c7
< "harvestLevel" : 5,
---
> "harvestLevel" : 3,
tilesets\packed\materials.json
7c7
< "tilecount" : 179,
---
> "tilecount" : 181,
541a542,547
> "179" : {
> "//description" : "Solid geodestone. It reflects the light.",
> "//name" : "geodestone",
> "//shortdescription" : "Geode Stone",
> "material" : "geodestone"
> },
547a554,559
> "180" : {
> "//description" : "A shining blue block of made of geode.-todo-",
> "//name" : "geodeblock",
> "//shortdescription" : "Geode Block",
> "material" : "geodeblock"
> },
891c903
< "//description" : "A solid steel block.",
---
> "//description" : "A solid tungsten block.",
893c905
< "//shortdescription" : "Steel Block",
---
> "//shortdescription" : "Tungsten Block",
1350a1363,1365
> "179" : {
> "image" : ".\\../../../../tiled\\packed\\materials/geodestone.png"
> },
1352a1368,1370
> },
> "180" : {
> "image" : ".\\../../../../tiled\\packed\\materials/geodeblock.png"
tilesets\packed\objects-by-category\crafting.json
248c248
< "imagePositionX" : "-8",
---
> "imagePositionX" : "-16",
575c575
< "//shortdescription" : "^orange;Inventors Table^white;",
---
> "//shortdescription" : "^orange;Inventor's Table^white;",
tilesets\packed\objects-by-category\decorative.json
7c7
< "tilecount" : 1088,
---
> "tilecount" : 1106,
877a878,895
> "1088" : {
> "//description" : "A geode plant in a flower pot.",
> "//name" : "geodeplantpot",
> "//shortdescription" : "Geode plant Pot",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeplantpot",
> "tilesetDirection" : "right"
> },
> "1089" : {
> "//description" : "\"-todo-\"",
> "//name" : "ironsample",
> "//shortdescription" : "Iron Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "ironsample",
> "tilesetDirection" : "right"
> },
886a905,994
> "1090" : {
> "//description" : "\"-todo-\"",
> "//name" : "uraniumsample",
> "//shortdescription" : "Uranium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "uraniumsample",
> "tilesetDirection" : "right"
> },
> "1091" : {
> "//description" : "\"-todo-\"",
> "//name" : "violiumsample",
> "//shortdescription" : "Violium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "violiumsample",
> "tilesetDirection" : "right"
> },
> "1092" : {
> "//description" : "\"-todo-\"",
> "//name" : "aegisaltsample",
> "//shortdescription" : "Aegisalt Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "aegisaltsample",
> "tilesetDirection" : "right"
> },
> "1093" : {
> "//description" : "\"-todo-\"",
> "//name" : "tungstensample",
> "//shortdescription" : "Tungsten Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "tungstensample",
> "tilesetDirection" : "right"
> },
> "1094" : {
> "//description" : "\"-todo-\"",
> "//name" : "goldsample",
> "//shortdescription" : "Gold Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "goldsample",
> "tilesetDirection" : "right"
> },
> "1095" : {
> "//description" : "\"-todo-\"",
> "//name" : "corefragmentsample",
> "//shortdescription" : "Core Fragment Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "corefragmentsample",
> "tilesetDirection" : "right"
> },
> "1096" : {
> "//description" : "\"-todo-\"",
> "//name" : "titaniumsample",
> "//shortdescription" : "Titanium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "titaniumsample",
> "tilesetDirection" : "right"
> },
> "1097" : {
> "//description" : "\"-todo-\"",
> "//name" : "solariumsample",
> "//shortdescription" : "Solarium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "solariumsample",
> "tilesetDirection" : "right"
> },
> "1098" : {
> "//description" : "\"-todo-\"",
> "//name" : "coalsample",
> "//shortdescription" : "Coal Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "coalsample",
> "tilesetDirection" : "right"
> },
> "1099" : {
> "//description" : "\"-todo-\"",
> "//name" : "plutoniumsample",
> "//shortdescription" : "Plutonium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "plutoniumsample",
> "tilesetDirection" : "right"
> },
904a1013,1066
> "1100" : {
> "//description" : "\"-todo-\"",
> "//name" : "rubiumsample",
> "//shortdescription" : "Rubium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "rubiumsample",
> "tilesetDirection" : "right"
> },
> "1101" : {
> "//description" : "\"-todo-\"",
> "//name" : "platinumsample",
> "//shortdescription" : "Platinum Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "platinumsample",
> "tilesetDirection" : "right"
> },
> "1102" : {
> "//description" : "\"-todo-\"",
> "//name" : "coppersample",
> "//shortdescription" : "Copper Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "coppersample",
> "tilesetDirection" : "right"
> },
> "1103" : {
> "//description" : "\"-todo-\"",
> "//name" : "diamondsample",
> "//shortdescription" : "Diamond Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "diamondsample",
> "tilesetDirection" : "right"
> },
> "1104" : {
> "//description" : "\"-todo-\"",
> "//name" : "durasteelsample",
> "//shortdescription" : "Durasteel Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "durasteelsample",
> "tilesetDirection" : "right"
> },
> "1105" : {
> "//description" : "\"-todo-\"",
> "//name" : "prisilitesample",
> "//shortdescription" : "Prisilite Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "prisilitesample",
> "tilesetDirection" : "right"
> },
9367a9530,9535
> "1088" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeplantpot.png"
> },
> "1089" : {
> "image" : "..\\../../../../tiled\\packed\\objects/ironsample.png"
> },
9370a9539,9568
> "1090" : {
> "image" : "..\\../../../../tiled\\packed\\objects/uraniumsample.png"
> },
> "1091" : {
> "image" : "..\\../../../../tiled\\packed\\objects/violiumsample.png"
> },
> "1092" : {
> "image" : "..\\../../../../tiled\\packed\\objects/aegisaltsample.png"
> },
> "1093" : {
> "image" : "..\\../../../../tiled\\packed\\objects/tungstensample.png"
> },
> "1094" : {
> "image" : "..\\../../../../tiled\\packed\\objects/goldsample.png"
> },
> "1095" : {
> "image" : "..\\../../../../tiled\\packed\\objects/corefragmentsample.png"
> },
> "1096" : {
> "image" : "..\\../../../../tiled\\packed\\objects/titaniumsample.png"
> },
> "1097" : {
> "image" : "..\\../../../../tiled\\packed\\objects/solariumsample.png"
> },
> "1098" : {
> "image" : "..\\../../../../tiled\\packed\\objects/coalsample.png"
> },
> "1099" : {
> "image" : "..\\../../../../tiled\\packed\\objects/plutoniumsample.png"
> },
9375a9574,9591
> },
> "1100" : {
> "image" : "..\\../../../../tiled\\packed\\objects/rubiumsample.png"
> },
> "1101" : {
> "image" : "..\\../../../../tiled\\packed\\objects/platinumsample.png"
> },
> "1102" : {
> "image" : "..\\../../../../tiled\\packed\\objects/coppersample.png"
> },
> "1103" : {
> "image" : "..\\../../../../tiled\\packed\\objects/diamondsample.png"
> },
> "1104" : {
> "image" : "..\\../../../../tiled\\packed\\objects/durasteelsample.png"
> },
> "1105" : {
> "image" : "..\\../../../../tiled\\packed\\objects/prisilitesample.png"
tilesets\packed\objects-by-category\door.json
7c7
< "tilecount" : 95,
---
> "tilecount" : 97,
835a836,852
> },
> "95" : {
> "//description" : "A geode door.",
> "//name" : "geodedoor",
> "//shortdescription" : "Geode Door",
> "imagePositionX" : "-16",
> "imagePositionY" : "0",
> "object" : "geodedoor",
> "tilesetDirection" : "right"
> },
> "96" : {
> "//description" : "I can't stand on this stone platform for long!",
> "//name" : "templepressureplatform",
> "//shortdescription" : "Temple Pressure Platform",
> "imagePositionX" : "-16",
> "imagePositionY" : "-8",
> "object" : "templepressureplatform"
1122a1140,1145
> },
> "95" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodedoor.png"
> },
> "96" : {
> "image" : "..\\../../../../tiled\\packed\\objects/templepressureplatform.png"
tilesets\packed\objects-by-category\farmable.json
47c47
< "//description" : "A glowing neon melon. Tastes like bubblegum.",
---
> "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.",
49c49
< "//shortdescription" : "Neon Melon Seed",
---
> "//shortdescription" : "Neonmelon Seed",
74c74
< "//description" : "Pussplum! Juicy!",
---
> "//description" : "The juicy pussplum gets its name from its creamy centre.",
137c137
< "//description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "//description" : "Not a fussy plant, wartweed grow easily under any condition.",
155c155
< "//description" : "Potato seed! Boil Em, Mash Em, Stick Em In A Stew.",
---
> "//description" : "Potatoes! Boil em', mash em', stick em in a stew.",
191c191
< "//description" : "A stone that grows swords. Sometimes it might grow a LEGENDARY one!",
---
> "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!",
200c200
< "//description" : "Sugarcane! A fibrous crop with rich, sweet sap.",
---
> "//description" : "Sugarcane is a fibrous crop with rich, sweet sap.",
218c218
< "//description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "//description" : "Not a fussy plant, wartweed grow easily under any condition.",
290c290
< "//description" : "Potato seed! Boil Em, Mash Em, Stick Em In A Stew.",
---
> "//description" : "Potatoes! Boil em', mash em', stick em in a stew.",
425c425
< "//description" : "A glowing neon melon. Tastes like bubblegum.",
---
> "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.",
427c427
< "//shortdescription" : "Neon Melon Seed",
---
> "//shortdescription" : "Neonmelon Seed",
434c434
< "//description" : "The iris is the best part.",
---
> "//description" : "The iris is the best part of this strange fruit.",
470c470
< "//description" : "Pussplum! Juicy!",
---
> "//description" : "The juicy pussplum gets its name from its creamy centre.",
479c479
< "//description" : "Reefpod, tastes like a crunchy smoothie made from every fruit you can imagine. ",
---
> "//description" : "Reefpod, tastes like a crunchy smoothie with added sea water. ",
488c488
< "//description" : "Reefpod, tastes like a crunchy smoothie made from every fruit you can imagine. ",
---
> "//description" : "Reefpod, tastes like a crunchy smoothie with added sea water. ",
497c497
< "//description" : "sugarcane! Good for diabetes.",
---
> "//description" : "Sugarcane is a fibrous crop with rich, sweet sap.",
506c506
< "//description" : "A ripe, juicy tomato.",
---
> "//description" : "Tomatoes are a rich, juicy fruit. Or vegetable. One of the two.",
533c533
< "//description" : "A Toxic Top. Toxic, but also top!",
---
> "//description" : "Toxic looking fruit, but is it all that bad?",
551c551
< "//description" : "A stone that grows swords. Sometimes it might grow a LEGENDARY one!",
---
> "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!",
560c560
< "//description" : "A ripe, juicy tomato.",
---
> "//description" : "Tomatoes are a rich, juicy fruit. Or vegetable. One of the two.",
578c578
< "//description" : "The iris is the best part.",
---
> "//description" : "The iris is the best part of this strange fruit.",
632c632
< "//description" : "A Toxic Top. Toxic, but also top!",
---
> "//description" : "Toxic looking fruit, but is it all that bad?",
tilesets\packed\objects-by-category\furniture.json
7c7
< "tilecount" : 288,
---
> "tilecount" : 290,
1884a1885,1902
> "288" : {
> "//description" : "A geode chair.",
> "//name" : "geodechair",
> "//shortdescription" : "Geode Chair",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodechair",
> "tilesetDirection" : "right"
> },
> "289" : {
> "//description" : "A bed made of geode.",
> "//name" : "geodebed",
> "//shortdescription" : "Geode Bed",
> "imagePositionX" : "-24",
> "imagePositionY" : "0",
> "object" : "geodebed",
> "tilesetDirection" : "right"
> },
3217a3236,3241
> },
> "288" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodechair.png"
> },
> "289" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodebed.png"
tilesets\packed\objects-by-category\light.json
7c7
< "tilecount" : 376,
---
> "tilecount" : 377,
2732a2733,2741
> "376" : {
> "//description" : "A geode light.",
> "//name" : "geodeceilinglight",
> "//shortdescription" : "Geode Light",
> "imagePositionX" : "-16",
> "imagePositionY" : "0",
> "object" : "geodeceilinglight",
> "tilesetDirection" : "right"
> },
4248a4258,4260
> },
> "376" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeceilinglight.png"
tilesets\packed\objects-by-category\other.json
7c7
< "tilecount" : 194,
---
> "tilecount" : 207,
911a912,965
> "194" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodednatural",
> "//shortdescription" : "^orange;Geode D^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodednatural",
> "tilesetDirection" : "right"
> },
> "195" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodeenote",
> "//shortdescription" : "Geode Note E -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeenote",
> "tilesetDirection" : "right"
> },
> "196" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodebnote",
> "//shortdescription" : "Geode Note B -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodebnote",
> "tilesetDirection" : "right"
> },
> "197" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodednote",
> "//shortdescription" : "Geode Note D -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodednote",
> "tilesetDirection" : "right"
> },
> "198" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodebnatural",
> "//shortdescription" : "^orange;Geode B^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodebnatural",
> "tilesetDirection" : "right"
> },
> "199" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodeanote",
> "//shortdescription" : "Geode Note A -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeanote",
> "tilesetDirection" : "right"
> },
929a984,1046
> "200" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodeanatural",
> "//shortdescription" : "^orange;Geode A^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeanatural",
> "tilesetDirection" : "right"
> },
> "201" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodecnatural",
> "//shortdescription" : "^orange;Geode C^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodecnatural",
> "tilesetDirection" : "right"
> },
> "202" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodecnote",
> "//shortdescription" : "Geode Note C -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodecnote",
> "tilesetDirection" : "right"
> },
> "203" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodefnote",
> "//shortdescription" : "Geode Note F -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodefnote",
> "tilesetDirection" : "right"
> },
> "204" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodegnote",
> "//shortdescription" : "Geode Note G -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodegnote",
> "tilesetDirection" : "right"
> },
> "205" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodehnote",
> "//shortdescription" : "Geode Note H -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodehnote",
> "tilesetDirection" : "right"
> },
> "206" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodehnatural",
> "//shortdescription" : "^orange;Geode H^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodehnatural",
> "tilesetDirection" : "right"
> },
1978a2096,2113
> "194" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodednatural.png"
> },
> "195" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeenote.png"
> },
> "196" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodebnote.png"
> },
> "197" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodednote.png"
> },
> "198" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodebnatural.png"
> },
> "199" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeanote.png"
> },
1983a2119,2139
> },
> "200" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeanatural.png"
> },
> "201" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodecnatural.png"
> },
> "202" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodecnote.png"
> },
> "203" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodefnote.png"
> },
> "204" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodegnote.png"
> },
> "205" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodehnote.png"
> },
> "206" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodehnatural.png"
tilesets\packed\objects-by-category\storage.json
65c65
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Floran Storage Locker",
181c181
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Hylotl Storage Locker",
513c513
< "//shortdescription" : "Avian Ship Locker",
---
> "//shortdescription" : "Avian Storage Locker",
1237c1237
< "//shortdescription" : "Apex Ship Locker",
---
> "//shortdescription" : "Apex Storage Locker",
1512c1512
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Human Storage Locker",
1529c1529
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Glitch Storage Locker",
1636c1636
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Novakid Storage Locker",
tilesets\packed\objects-by-category\teleporter.json
7c7
< "tilecount" : 25,
---
> "tilecount" : 26,
167a168,175
> "25" : {
> "//description" : "It looks old and altary.",
> "//name" : "avianartifactaltar",
> "//shortdescription" : "Avian Artifact Altar",
> "imagePositionX" : "-16",
> "imagePositionY" : "0",
> "object" : "avianartifactaltar"
> },
275a284,286
> },
> "25" : {
> "image" : "..\\../../../../tiled\\packed\\objects/avianartifactaltar.png"
tilesets\packed\objects-by-race\apex.json
227c227
< "//shortdescription" : "Apex Ship Locker",
---
> "//shortdescription" : "Apex Storage Locker",
tilesets\packed\objects-by-race\avian.json
7c7
< "tilecount" : 283,
---
> "tilecount" : 284,
473c473
< "//shortdescription" : "Avian Ship Locker",
---
> "//shortdescription" : "Avian Storage Locker",
1507a1508,1515
> "283" : {
> "//description" : "I can't stand on this stone platform for long!",
> "//name" : "templepressureplatform",
> "//shortdescription" : "Temple Pressure Platform",
> "imagePositionX" : "-16",
> "imagePositionY" : "-8",
> "object" : "templepressureplatform"
> },
2807a2816,2818
> },
> "283" : {
> "image" : "..\\../../../../tiled\\packed\\objects/templepressureplatform.png"
tilesets\packed\objects-by-race\floran.json
76c76
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Floran Storage Locker",
tilesets\packed\objects-by-race\generic.json
7c7
< "tilecount" : 1410,
---
> "tilecount" : 1446,
3644c3644
< "//shortdescription" : "^orange;Inventors Table^white;",
---
> "//shortdescription" : "^orange;Inventor's Table^white;",
3903a3904,3993
> "1410" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodednatural",
> "//shortdescription" : "^orange;Geode D^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodednatural",
> "tilesetDirection" : "right"
> },
> "1411" : {
> "//description" : "A geode plant in a flower pot.",
> "//name" : "geodeplantpot",
> "//shortdescription" : "Geode plant Pot",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeplantpot",
> "tilesetDirection" : "right"
> },
> "1412" : {
> "//description" : "A geode door.",
> "//name" : "geodedoor",
> "//shortdescription" : "Geode Door",
> "imagePositionX" : "-16",
> "imagePositionY" : "0",
> "object" : "geodedoor",
> "tilesetDirection" : "right"
> },
> "1413" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodeenote",
> "//shortdescription" : "Geode Note E -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeenote",
> "tilesetDirection" : "right"
> },
> "1414" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodebnote",
> "//shortdescription" : "Geode Note B -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodebnote",
> "tilesetDirection" : "right"
> },
> "1415" : {
> "//description" : "A geode chair.",
> "//name" : "geodechair",
> "//shortdescription" : "Geode Chair",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodechair",
> "tilesetDirection" : "right"
> },
> "1416" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodednote",
> "//shortdescription" : "Geode Note D -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodednote",
> "tilesetDirection" : "right"
> },
> "1417" : {
> "//description" : "A bed made of geode.",
> "//name" : "geodebed",
> "//shortdescription" : "Geode Bed",
> "imagePositionX" : "-24",
> "imagePositionY" : "0",
> "object" : "geodebed",
> "tilesetDirection" : "right"
> },
> "1418" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodebnatural",
> "//shortdescription" : "^orange;Geode B^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodebnatural",
> "tilesetDirection" : "right"
> },
> "1419" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodeanote",
> "//shortdescription" : "Geode Note A -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeanote",
> "tilesetDirection" : "right"
> },
3912a4003,4092
> "1420" : {
> "//description" : "A geode light.",
> "//name" : "geodeceilinglight",
> "//shortdescription" : "Geode Light",
> "imagePositionX" : "-16",
> "imagePositionY" : "0",
> "object" : "geodeceilinglight",
> "tilesetDirection" : "right"
> },
> "1421" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodeanatural",
> "//shortdescription" : "^orange;Geode A^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodeanatural",
> "tilesetDirection" : "right"
> },
> "1422" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodecnatural",
> "//shortdescription" : "^orange;Geode C^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodecnatural",
> "tilesetDirection" : "right"
> },
> "1423" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodecnote",
> "//shortdescription" : "Geode Note C -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodecnote",
> "tilesetDirection" : "right"
> },
> "1424" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodefnote",
> "//shortdescription" : "Geode Note F -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodefnote",
> "tilesetDirection" : "right"
> },
> "1425" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodegnote",
> "//shortdescription" : "Geode Note G -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodegnote",
> "tilesetDirection" : "right"
> },
> "1426" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodehnote",
> "//shortdescription" : "Geode Note H -todo-",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodehnote",
> "tilesetDirection" : "right"
> },
> "1427" : {
> "//description" : "\"-todo-\"",
> "//name" : "ironsample",
> "//shortdescription" : "Iron Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "ironsample",
> "tilesetDirection" : "right"
> },
> "1428" : {
> "//description" : "\"-todo-\"",
> "//name" : "uraniumsample",
> "//shortdescription" : "Uranium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "uraniumsample",
> "tilesetDirection" : "right"
> },
> "1429" : {
> "//description" : "\"-todo-\"",
> "//name" : "violiumsample",
> "//shortdescription" : "Violium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "violiumsample",
> "tilesetDirection" : "right"
> },
3921a4102,4190
> "1430" : {
> "//description" : "\"-todo-\"",
> "//name" : "aegisaltsample",
> "//shortdescription" : "Aegisalt Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "aegisaltsample",
> "tilesetDirection" : "right"
> },
> "1431" : {
> "//description" : "\"-todo-\"",
> "//name" : "tungstensample",
> "//shortdescription" : "Tungsten Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "tungstensample",
> "tilesetDirection" : "right"
> },
> "1432" : {
> "//description" : "\"-todo-\"",
> "//name" : "goldsample",
> "//shortdescription" : "Gold Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "goldsample",
> "tilesetDirection" : "right"
> },
> "1433" : {
> "//description" : "\"-todo-\"",
> "//name" : "corefragmentsample",
> "//shortdescription" : "Core Fragment Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "corefragmentsample",
> "tilesetDirection" : "right"
> },
> "1434" : {
> "//description" : "\"-todo-\"",
> "//name" : "titaniumsample",
> "//shortdescription" : "Titanium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "titaniumsample",
> "tilesetDirection" : "right"
> },
> "1435" : {
> "//description" : "\"-todo-\"",
> "//name" : "solariumsample",
> "//shortdescription" : "Solarium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "solariumsample",
> "tilesetDirection" : "right"
> },
> "1436" : {
> "//description" : "\"-todo-\"",
> "//name" : "coalsample",
> "//shortdescription" : "Coal Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "coalsample",
> "tilesetDirection" : "right"
> },
> "1437" : {
> "//description" : "It looks old and altary.",
> "//name" : "avianartifactaltar",
> "//shortdescription" : "Avian Artifact Altar",
> "imagePositionX" : "-16",
> "imagePositionY" : "0",
> "object" : "avianartifactaltar"
> },
> "1438" : {
> "//description" : "\"-todo-\"",
> "//name" : "plutoniumsample",
> "//shortdescription" : "Plutonium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "plutoniumsample",
> "tilesetDirection" : "right"
> },
> "1439" : {
> "//description" : "\"-todo-\"",
> "//name" : "rubiumsample",
> "//shortdescription" : "Rubium Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "rubiumsample",
> "tilesetDirection" : "right"
> },
3930a4200,4253
> "1440" : {
> "//description" : "\"-todo-\"",
> "//name" : "platinumsample",
> "//shortdescription" : "Platinum Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "platinumsample",
> "tilesetDirection" : "right"
> },
> "1441" : {
> "//description" : "A green geode.-todo-",
> "//name" : "geodehnatural",
> "//shortdescription" : "^orange;Geode H^white;",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodehnatural",
> "tilesetDirection" : "right"
> },
> "1442" : {
> "//description" : "\"-todo-\"",
> "//name" : "coppersample",
> "//shortdescription" : "Copper Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "coppersample",
> "tilesetDirection" : "right"
> },
> "1443" : {
> "//description" : "\"-todo-\"",
> "//name" : "diamondsample",
> "//shortdescription" : "Diamond Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "diamondsample",
> "tilesetDirection" : "right"
> },
> "1444" : {
> "//description" : "\"-todo-\"",
> "//name" : "durasteelsample",
> "//shortdescription" : "Durasteel Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "durasteelsample",
> "tilesetDirection" : "right"
> },
> "1445" : {
> "//description" : "\"-todo-\"",
> "//name" : "prisilitesample",
> "//shortdescription" : "Prisilite Geological Sample",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "prisilitesample",
> "tilesetDirection" : "right"
> },
4372c4695
< "//description" : "A glowing neon melon. Tastes like bubblegum.",
---
> "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.",
4374c4697
< "//shortdescription" : "Neon Melon Seed",
---
> "//shortdescription" : "Neonmelon Seed",
5060c5383
< "//description" : "Pussplum! Juicy!",
---
> "//description" : "The juicy pussplum gets its name from its creamy centre.",
5609c5932
< "//description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "//description" : "Not a fussy plant, wartweed grow easily under any condition.",
5794c6117
< "//description" : "Potato seed! Boil Em, Mash Em, Stick Em In A Stew.",
---
> "//description" : "Potatoes! Boil em', mash em', stick em in a stew.",
6272c6595
< "//description" : "A stone that grows swords. Sometimes it might grow a LEGENDARY one!",
---
> "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!",
6452c6775
< "//description" : "Sugarcane! A fibrous crop with rich, sweet sap.",
---
> "//description" : "Sugarcane is a fibrous crop with rich, sweet sap.",
7755c8078
< "//description" : "Potato seed! Boil Em, Mash Em, Stick Em In A Stew.",
---
> "//description" : "Potatoes! Boil em', mash em', stick em in a stew.",
7934c8257
< "imagePositionX" : "-8",
---
> "imagePositionX" : "-16",
8216c8539
< "//description" : "A glowing neon melon. Tastes like bubblegum.",
---
> "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.",
8218c8541
< "//shortdescription" : "Neon Melon Seed",
---
> "//shortdescription" : "Neonmelon Seed",
8225c8548
< "//description" : "The iris is the best part.",
---
> "//description" : "The iris is the best part of this strange fruit.",
8296c8619
< "//description" : "Pussplum! Juicy!",
---
> "//description" : "The juicy pussplum gets its name from its creamy centre.",
8321c8644
< "//description" : "Reefpod, tastes like a crunchy smoothie made from every fruit you can imagine. ",
---
> "//description" : "Reefpod, tastes like a crunchy smoothie with added sea water. ",
8330c8653
< "//description" : "Reefpod, tastes like a crunchy smoothie made from every fruit you can imagine. ",
---
> "//description" : "Reefpod, tastes like a crunchy smoothie with added sea water. ",
8339c8662
< "//description" : "sugarcane! Good for diabetes.",
---
> "//description" : "Sugarcane is a fibrous crop with rich, sweet sap.",
8348c8671
< "//description" : "A ripe, juicy tomato.",
---
> "//description" : "Tomatoes are a rich, juicy fruit. Or vegetable. One of the two.",
8384c8707
< "//description" : "A Toxic Top. Toxic, but also top!",
---
> "//description" : "Toxic looking fruit, but is it all that bad?",
8456c8779
< "//description" : "A stone that grows swords. Sometimes it might grow a LEGENDARY one!",
---
> "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!",
8862c9185
< "//description" : "A ripe, juicy tomato.",
---
> "//description" : "Tomatoes are a rich, juicy fruit. Or vegetable. One of the two.",
9541c9864
< "//description" : "The iris is the best part.",
---
> "//description" : "The iris is the best part of this strange fruit.",
10549c10872
< "//description" : "A Toxic Top. Toxic, but also top!",
---
> "//description" : "Toxic looking fruit, but is it all that bad?",
10699c11022
< "//description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "//description" : "Not a fussy plant, wartweed grow easily under any condition.",
13600a13924,13953
> "1410" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodednatural.png"
> },
> "1411" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeplantpot.png"
> },
> "1412" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodedoor.png"
> },
> "1413" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeenote.png"
> },
> "1414" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodebnote.png"
> },
> "1415" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodechair.png"
> },
> "1416" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodednote.png"
> },
> "1417" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodebed.png"
> },
> "1418" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodebnatural.png"
> },
> "1419" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeanote.png"
> },
13603a13957,13986
> "1420" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeceilinglight.png"
> },
> "1421" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodeanatural.png"
> },
> "1422" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodecnatural.png"
> },
> "1423" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodecnote.png"
> },
> "1424" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodefnote.png"
> },
> "1425" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodegnote.png"
> },
> "1426" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodehnote.png"
> },
> "1427" : {
> "image" : "..\\../../../../tiled\\packed\\objects/ironsample.png"
> },
> "1428" : {
> "image" : "..\\../../../../tiled\\packed\\objects/uraniumsample.png"
> },
> "1429" : {
> "image" : "..\\../../../../tiled\\packed\\objects/violiumsample.png"
> },
13606a13990,14019
> "1430" : {
> "image" : "..\\../../../../tiled\\packed\\objects/aegisaltsample.png"
> },
> "1431" : {
> "image" : "..\\../../../../tiled\\packed\\objects/tungstensample.png"
> },
> "1432" : {
> "image" : "..\\../../../../tiled\\packed\\objects/goldsample.png"
> },
> "1433" : {
> "image" : "..\\../../../../tiled\\packed\\objects/corefragmentsample.png"
> },
> "1434" : {
> "image" : "..\\../../../../tiled\\packed\\objects/titaniumsample.png"
> },
> "1435" : {
> "image" : "..\\../../../../tiled\\packed\\objects/solariumsample.png"
> },
> "1436" : {
> "image" : "..\\../../../../tiled\\packed\\objects/coalsample.png"
> },
> "1437" : {
> "image" : "..\\../../../../tiled\\packed\\objects/avianartifactaltar.png"
> },
> "1438" : {
> "image" : "..\\../../../../tiled\\packed\\objects/plutoniumsample.png"
> },
> "1439" : {
> "image" : "..\\../../../../tiled\\packed\\objects/rubiumsample.png"
> },
13608a14022,14039
> },
> "1440" : {
> "image" : "..\\../../../../tiled\\packed\\objects/platinumsample.png"
> },
> "1441" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodehnatural.png"
> },
> "1442" : {
> "image" : "..\\../../../../tiled\\packed\\objects/coppersample.png"
> },
> "1443" : {
> "image" : "..\\../../../../tiled\\packed\\objects/diamondsample.png"
> },
> "1444" : {
> "image" : "..\\../../../../tiled\\packed\\objects/durasteelsample.png"
> },
> "1445" : {
> "image" : "..\\../../../../tiled\\packed\\objects/prisilitesample.png"
tilesets\packed\objects-by-race\glitch.json
1476c1476
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Glitch Storage Locker",
tilesets\packed\objects-by-race\human.json
136c136
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Human Storage Locker",
tilesets\packed\objects-by-race\hylotl.json
1604c1604
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Hylotl Storage Locker",
tilesets\packed\objects-by-race\novakid.json
212c212
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Novakid Storage Locker",
tilesets\packed\objects-by-type\container.json
49c49
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Glitch Storage Locker",
190c190
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Novakid Storage Locker",
271c271
< "imagePositionX" : "-8",
---
> "imagePositionX" : "-16",
367c367
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Floran Storage Locker",
482c482
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Hylotl Storage Locker",
876c876
< "//shortdescription" : "Avian Ship Locker",
---
> "//shortdescription" : "Avian Storage Locker",
1775c1775
< "//shortdescription" : "Apex Ship Locker",
---
> "//shortdescription" : "Apex Storage Locker",
2119c2119
< "//shortdescription" : "Storage Locker",
---
> "//shortdescription" : "Human Storage Locker",
tilesets\packed\objects-by-type\farmable.json
56c56
< "//description" : "A glowing neon melon. Tastes like bubblegum.",
---
> "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.",
58c58
< "//shortdescription" : "Neon Melon Seed",
---
> "//shortdescription" : "Neonmelon Seed",
83c83
< "//description" : "Pussplum! Juicy!",
---
> "//description" : "The juicy pussplum gets its name from its creamy centre.",
146c146
< "//description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "//description" : "Not a fussy plant, wartweed grow easily under any condition.",
164c164
< "//description" : "Potato seed! Boil Em, Mash Em, Stick Em In A Stew.",
---
> "//description" : "Potatoes! Boil em', mash em', stick em in a stew.",
200c200
< "//description" : "A stone that grows swords. Sometimes it might grow a LEGENDARY one!",
---
> "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!",
209c209
< "//description" : "Sugarcane! A fibrous crop with rich, sweet sap.",
---
> "//description" : "Sugarcane is a fibrous crop with rich, sweet sap.",
218c218
< "//description" : "Wartweed! It has a tough skin, regrows easily.",
---
> "//description" : "Not a fussy plant, wartweed grow easily under any condition.",
299c299
< "//description" : "Potato seed! Boil Em, Mash Em, Stick Em In A Stew.",
---
> "//description" : "Potatoes! Boil em', mash em', stick em in a stew.",
434c434
< "//description" : "A glowing neon melon. Tastes like bubblegum.",
---
> "//description" : "The vibrant flesh of a neonmelon tastes like bubblegum.",
436c436
< "//shortdescription" : "Neon Melon Seed",
---
> "//shortdescription" : "Neonmelon Seed",
443c443
< "//description" : "The iris is the best part.",
---
> "//description" : "The iris is the best part of this strange fruit.",
479c479
< "//description" : "Pussplum! Juicy!",
---
> "//description" : "The juicy pussplum gets its name from its creamy centre.",
488c488
< "//description" : "Reefpod, tastes like a crunchy smoothie made from every fruit you can imagine. ",
---
> "//description" : "Reefpod, tastes like a crunchy smoothie with added sea water. ",
497c497
< "//description" : "Reefpod, tastes like a crunchy smoothie made from every fruit you can imagine. ",
---
> "//description" : "Reefpod, tastes like a crunchy smoothie with added sea water. ",
506c506
< "//description" : "sugarcane! Good for diabetes.",
---
> "//description" : "Sugarcane is a fibrous crop with rich, sweet sap.",
524c524
< "//description" : "A ripe, juicy tomato.",
---
> "//description" : "Tomatoes are a rich, juicy fruit. Or vegetable. One of the two.",
542c542
< "//description" : "A Toxic Top. Toxic, but also top!",
---
> "//description" : "Toxic looking fruit, but is it all that bad?",
560c560
< "//description" : "A stone that grows swords. Sometimes it might grow a LEGENDARY one!",
---
> "//description" : "No one knows how this sword got here. Pull it out, it could be legendary!",
569c569
< "//description" : "A ripe, juicy tomato.",
---
> "//description" : "Tomatoes are a rich, juicy fruit. Or vegetable. One of the two.",
587c587
< "//description" : "The iris is the best part.",
---
> "//description" : "The iris is the best part of this strange fruit.",
641c641
< "//description" : "A Toxic Top. Toxic, but also top!",
---
> "//description" : "Toxic looking fruit, but is it all that bad?",
tilesets\packed\objects-by-type\loungeable.json
7c7
< "tilecount" : 218,
---
> "tilecount" : 220,
1199a1200,1217
> "218" : {
> "//description" : "A geode chair.",
> "//name" : "geodechair",
> "//shortdescription" : "Geode Chair",
> "imagePositionX" : "-8",
> "imagePositionY" : "0",
> "object" : "geodechair",
> "tilesetDirection" : "right"
> },
> "219" : {
> "//description" : "A bed made of geode.",
> "//name" : "geodebed",
> "//shortdescription" : "Geode Bed",
> "imagePositionX" : "-24",
> "imagePositionY" : "0",
> "object" : "geodebed",
> "tilesetDirection" : "right"
> },
2364a2383,2388
> },
> "218" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodechair.png"
> },
> "219" : {
> "image" : "..\\../../../../tiled\\packed\\objects/geodebed.png"
treasure\biome.treasurepools
1077c1077,1118
< {"weight" : 0.3, "item" : "foundrymagmalamp-recipe"}
---
> {"weight" : 0.3, "item" : "magmalamp-recipe"}
> ]
> }]
> ],
>
> "geodeChestTreasure" : [
> [1, {
> "pool" : [
> {"weight" : 0.2, "pool" : "basicTreasure"},
> {"weight" : 0.8, "pool" : "geodeTreasure"}
> ],
> "poolRounds" : [
> [0.05, 1],
> [0.40, 2],
> [0.30, 3],
> [0.15, 4],
> [0.10, 5]
> ],
> "allowDuplication" : false
> }]
> ],
>
> "geodeTreasure" : [
> [1, {
> "pool" : [
> {"weight" : 1.0, "item" : ["geode", 20]},
> {"weight" : 0.3, "item" : "geodebed-recipe"},
> {"weight" : 0.3, "item" : "geodechair-recipe"},
> {"weight" : 0.3, "item" : "geodedoor-recipe"},
> {"weight" : 0.3, "item" : "geodeplantpot-recipe"},
> {"weight" : 0.3, "item" : "geodeceilinglight-recipe"},
> {"weight" : 0.3, "item" : "geodechest"},
> {"weight" : 0.3, "item" : "geodehead"},
> {"weight" : 0.3, "item" : "geodelegs"},
> {"weight" : 0.1, "item" : "geodeanote-recipe"},
> {"weight" : 0.1, "item" : "geodebnote-recipe"},
> {"weight" : 0.1, "item" : "geodecnote-recipe"},
> {"weight" : 0.1, "item" : "geodednote-recipe"},
> {"weight" : 0.1, "item" : "geodeenote-recipe"},
> {"weight" : 0.1, "item" : "geodefnote-recipe"},
> {"weight" : 0.1, "item" : "geodegnote-recipe"},
> {"weight" : 0.1, "item" : "geodehnote-recipe"}
treasure\common.treasurepools
1007a1008,1052
> "geodeRewards" : [
> [0, {
> "pool" : [
> {"weight" : 0.3, "item" : "cobblestonematerial"},
> {"weight" : 0.05, "item" : "copperore"},
> {"weight" : 0.05, "item" : "goldore"},
> {"weight" : 0.001, "item" : "diamondore"},
> {"weight" : 0.05, "item" : "ironore"},
> {"weight" : 0.009, "item" : "titaniumore"},
> {"weight" : 0.005, "item" : "aegisaltore"},
> {"weight" : 0.005, "item" : "rubiumore"},
> {"weight" : 0.005, "item" : "violiumore"},
> {"weight" : 0.005, "item" : "tungstenore"},
> {"weight" : 0.005, "item" : "plutoniumore"},
> {"weight" : 0.005, "item" : "solariumore"},
> {"weight" : 0.005, "item" : "uraniumore"},
> {"weight" : 0.0005, "item" : "ironsample"},
> {"weight" : 0.0005, "item" : "coppersample"},
> {"weight" : 0.0005, "item" : "tungstensample"},
> {"weight" : 0.0005, "item" : "tungstensample"},
> {"weight" : 0.0005, "item" : "titaniumsample"},
> {"weight" : 0.0005, "item" : "durasteelsample"},
> {"weight" : 0.0005, "item" : "diamondsample"},
> {"weight" : 0.0005, "item" : "rubiumsample"},
> {"weight" : 0.0005, "item" : "aegisaltsample"},
> {"weight" : 0.0005, "item" : "violiumsample"},
> {"weight" : 0.0005, "item" : "prisilitesample"},
> {"weight" : 0.0005, "item" : "corefragmentsample"},
> {"weight" : 0.0005, "item" : "silversample"},
> {"weight" : 0.0005, "item" : "goldsample"},
> {"weight" : 0.0005, "item" : "uraniumsample"},
> {"weight" : 0.0005, "item" : "coalsample"},
> {"weight" : 0.0005, "item" : "plutoniumsample"},
> {"weight" : 0.0005, "item" : "platinumsample"},
> {"weight" : 0.1, "item" : "geodebluesample"},
> {"weight" : 0.1, "item" : "geodegreensample"},
> {"weight" : 0.1, "item" : "geodeorangesample"},
> {"weight" : 0.1, "item" : "geodepurplesample"},
> {"weight" : 0.1, "item" : "geoderedsample"},
> {"weight" : 0.1, "item" : "geodeyellowsample"}
>
> ]
> }]
> ],
>
treasure\default.treasurechests
206a207,214
>
> "geodeChest" : [
> {
> "containers" : [ "ironchest" ],
> "treasurePool" : "geodeChestTreasure",
> "minimumLevel" : 0
> }
> ],
treasure\monster.treasurepools
69c69
< {"weight" : 0.85, "pool" : "money"},
---
> {"weight" : 0.65, "pool" : "money"},
70a71
> {"weight" : 0.10, "item" : "laserdiode"},
71a73
> {"weight" : 0.10, "item" : "stickofram"},
86c88
< {"weight" : 0.10, "item" : "circuitboard"},
---
> {"weight" : 0.10, "item" : "stickofram"},
101c103
< {"weight" : 0.15, "item" : "circuitboard"},
---
> {"weight" : 0.15, "item" : "stickofram"},
treasure\smashable.treasurepools
109a110,121
> "smashGeode" : [
> [0, {
> "poolRounds" : [
> [0.25, 3],
> [0.75, 2]
> ],
> "pool" : [
> {"weight" : 0.9, "item" : "geode"}
> ]
> }]
> ],
>
vehicles\boat\boat.lua
13,14c13
< self.maxHealth =1
< self.waterFactor=0 --how much water are we in right now
---
> self.waterFactor = 0 --how much water are we in right now
16,18c15,17
< self.rockingInterval = vehicle.configParameter("rockingInterval")
< self.maxHealth = vehicle.configParameter("maxHealth")
< self.protection = vehicle.configParameter("protection")
---
> self.rockingInterval = config.getParameter("rockingInterval")
> self.maxHealth = config.getParameter("maxHealth")
> self.protection = config.getParameter("protection")
20,22c19,21
< self.damageStateNames = vehicle.configParameter("damageStateNames")
< self.damageStateDriverEmotes = vehicle.configParameter("damageStateDriverEmotes")
< self.materialKind = vehicle.configParameter("materialKind")
---
> self.damageStateNames = config.getParameter("damageStateNames")
> self.damageStateDriverEmotes = config.getParameter("damageStateDriverEmotes")
> self.materialKind = config.getParameter("materialKind")
25,28c24,27
< self.windLevelOffset = vehicle.configParameter("windLevelOffset")
< self.rockingWindAngleMultiplier = vehicle.configParameter("rockingWindAngleMultiplier")
< self.maxRockingAngle = vehicle.configParameter("maxRockingAngle")
< self.angleApproachFactor = vehicle.configParameter("angleApproachFactor")
---
> self.windLevelOffset = config.getParameter("windLevelOffset")
> self.rockingWindAngleMultiplier = config.getParameter("rockingWindAngleMultiplier")
> self.maxRockingAngle = config.getParameter("maxRockingAngle")
> self.angleApproachFactor = config.getParameter("angleApproachFactor")
30c29
< self.speedRotationMultiplier = vehicle.configParameter("speedRotationMultiplier")
---
> self.speedRotationMultiplier = config.getParameter("speedRotationMultiplier")
32,33c31,32
< self.targetMoveSpeed = vehicle.configParameter("targetMoveSpeed")
< self.moveControlForce = vehicle.configParameter("moveControlForce")
---
> self.targetMoveSpeed = config.getParameter("targetMoveSpeed")
> self.moveControlForce = config.getParameter("moveControlForce")
35c34
< mcontroller.resetParameters(vehicle.configParameter("movementSettings"))
---
> mcontroller.resetParameters(config.getParameter("movementSettings"))
37,39c36,38
< self.minWaterFactorToFloat=vehicle.configParameter("minWaterFactorToFloat")
< self.sinkingBuoyancy=vehicle.configParameter("sinkingBuoyancy")
< self.sinkingFriction=vehicle.configParameter("sinkingFriction")
---
> self.minWaterFactorToFloat = config.getParameter("minWaterFactorToFloat")
> self.sinkingBuoyancy = config.getParameter("sinkingBuoyancy")
> self.sinkingFriction = config.getParameter("sinkingFriction")
41,42c40,41
< self.bowWaveParticleNames=vehicle.configParameter("bowWaveParticles")
< self.bowWaveMaxEmissionRate=vehicle.configParameter("bowWaveMaxEmissionRate")
---
> self.bowWaveParticleNames=config.getParameter("bowWaveParticles")
> self.bowWaveMaxEmissionRate=config.getParameter("bowWaveMaxEmissionRate")
44,45c43,44
< self.splashParticleNames=vehicle.configParameter("splashParticles")
< self.splashEpsilon=vehicle.configParameter("splashEpsilon")
---
> self.splashParticleNames = config.getParameter("splashParticles")
> self.splashEpsilon = config.getParameter("splashEpsilon")
47c46
< self.maxGroundSearchDistance = vehicle.configParameter("maxGroundSearchDistance")
---
> self.maxGroundSearchDistance = config.getParameter("maxGroundSearchDistance")
50,51c49,50
< self.frontGroundTestPoint={bounds[1],bounds[2]}
< self.backGroundTestPoint={bounds[3],bounds[2]}
---
> self.frontGroundTestPoint = {bounds[1], bounds[2]}
> self.backGroundTestPoint = {bounds[3], bounds[2]}
54c53
< self.ownerKey = vehicle.configParameter("ownerKey")
---
> self.ownerKey = config.getParameter("ownerKey")
57,69c56,68
< message.setHandler("store", function(_, _, ownerKey)
<
< local animState=animator.animationState("base")
<
< if (animState=="idle" or animState=="sinking" or animState=="sunk") then
< if (self.ownerKey and self.ownerKey == ownerKey) then
< self.spawnPosition = mcontroller.position()
< animator.setAnimationState("base", "warpOutPart1")
< local localStorable = (self.driver ==nil)
< return {storable = true, healthFactor = storage.health / self.maxHealth}
< end
< end
< end)
---
> message.setHandler("store",
> function(_, _, ownerKey)
> local animState=animator.animationState("base")
>
> if (animState == "idle" or animState == "sinking" or animState == "sunk") then
> if (self.ownerKey and self.ownerKey == ownerKey) then
> self.spawnPosition = mcontroller.position()
> animator.setAnimationState("base", "warpOutPart1")
> local localStorable = (self.driver == nil)
> return {storable = true, healthFactor = storage.health / self.maxHealth}
> end
> end
> end)
71d69
< --assume maxhealth
75c73
< local startHealthFactor = vehicle.configParameter("startHealthFactor")
---
> local startHealthFactor = config.getParameter("startHealthFactor")
85d82
< --set up any damage efects we have...
87,89c84
< self.maxBuoyancy =mcontroller.parameters().liquidBuoyancy
<
<
---
> self.maxBuoyancy = mcontroller.parameters().liquidBuoyancy
93c88
< local sinkAngle=-math.pi*0.4
---
> local sinkAngle = -math.pi*0.4
95,96c90,91
< local animState=animator.animationState("base")
< local waterFactor = mcontroller.liquidPercentage();
---
> local animState = animator.animationState("base")
> local waterFactor = mcontroller.liquidPercentage()
98,99c93
<
< if (animState=="warpedOut") then
---
> if (animState == "warpedOut") then
101c95
< elseif (animState=="warpInPart1" or animState=="warpOutPart2") then
---
> elseif (animState == "warpInPart1" or animState == "warpOutPart2") then
104d97
< --lock it solid whilst spawning/despawning
106,110c99,101
< mcontroller.setVelocity({0,0})
< elseif (animState=="sunk") then
< -- world.debugText("sunk",mcontroller.position(),"red")
< -- not much here.
< local targetAngle=calcGroundCollisionAngle(self.maxGroundSearchDistance)
---
> mcontroller.setVelocity({0, 0})
> elseif (animState == "sunk") then
> local targetAngle = calcGroundCollisionAngle(self.maxGroundSearchDistance)
112,114c103,104
<
< elseif (animState=="sinking") then
< world.debugText("sinking",mcontroller.position(),"red")
---
> elseif (animState == "sinking") then
> world.debugText("sinking", mcontroller.position(), "red")
116,120c106,108
< self.angle=updateSinking(waterFactor, self.angle,sinkAngle)
<
< elseif (animState=="idle") then
<
< world.debugText("idle",mcontroller.position(),"green")
---
> self.angle = updateSinking(waterFactor, self.angle, sinkAngle)
> elseif (animState == "idle") then
> world.debugText("idle", mcontroller.position(), "green")
124c112
< self.waterBounds=mcontroller.localBoundBox()
---
> self.waterBounds = mcontroller.localBoundBox()
127,128c115,116
< if (waterFactor>0) then
< waterSurface=(self.waterBounds[4] * waterFactor) + (self.waterBounds[2] * (1.0-waterFactor))
---
> if (waterFactor > 0) then
> waterSurface = (self.waterBounds[4] * waterFactor) + (self.waterBounds[2] * (1.0 - waterFactor))
131,134c119,120
< self.waterBounds[2] = waterSurface +0.25
< self.waterBounds[4] = waterSurface +0.5
<
< world.debugText(string.format("WaterSurface=%s", self.waterBounds[2]),mcontroller.position(),"yellow")
---
> self.waterBounds[2] = waterSurface + 0.25
> self.waterBounds[4] = waterSurface + 0.5
135a122
> world.debugText(string.format("WaterSurface=%s", self.waterBounds[2]), mcontroller.position(), "yellow")
137,140c124
< local facing
< local moving
<
< moving,facing = updateDriving()
---
> local moving, facing = updateDriving()
147,148c131,132
< if storage.health<=0 then
< vehicle.setLoungeEnabled("titanicPose",false)
---
> if storage.health <= 0 then
> vehicle.setLoungeEnabled("titanicPose", false)
153c137
< self.waterFactor=waterFactor --how deep are we in the water right now ?
---
> self.waterFactor = waterFactor
160d143
<
168d150
<
171,172d152
<
<
196c176
< return moving,facing
---
> return moving, facing
206c186
< vehicle.setLoungeEnabled("drivingSeat",false)
---
> vehicle.setLoungeEnabled("drivingSeat", false)
208c188
< local targetAngle=calcGroundCollisionAngle(self.maxGroundSearchDistance)
---
> local targetAngle = calcGroundCollisionAngle(self.maxGroundSearchDistance)
211,213c191,192
< if (waterFactor> self.minWaterFactorToFloat) then
< if (currentAngle~=sinkAngle) then
<
---
> if (waterFactor > self.minWaterFactorToFloat) then
> if (currentAngle ~= sinkAngle) then
216,220c195,201
< local lerpFactor=math.cos(currentAngle)
< local finalBuoyancy=(self.maxBuoyancy * lerpFactor) + (self.sinkingBuoyancy* (1.0-lerpFactor))
< mcontroller.applyParameters({ liquidBuoyancy=finalBuoyancy,
< liquidFriction=self.sinkingFriction,
< frictionEnabled=true})
---
> local lerpFactor = math.cos(currentAngle)
> local finalBuoyancy = (self.maxBuoyancy * lerpFactor) + (self.sinkingBuoyancy* (1.0 - lerpFactor))
> mcontroller.applyParameters({
> liquidBuoyancy = finalBuoyancy,
> liquidFriction = self.sinkingFriction,
> frictionEnabled = true
> })
232,233c213
< local targetAngle=0
<
---
> local targetAngle
249c229
< targetAngle=calcGroundCollisionAngle(self.waterBounds[2]) --pass in the water surtface
---
> targetAngle = calcGroundCollisionAngle(self.waterBounds[2]) --pass in the water surface
254d233
<
256,261c235,238
< local floatingLiquid=mcontroller.liquidId()
<
< if (floatingLiquid>0) then
<
< if (floatingLiquid>#self.bowWaveParticleNames) then
< floatingLiquid=1 --off the end, go to "water" as a default
---
> local floatingLiquid = mcontroller.liquidId()
> if (floatingLiquid > 0) then
> if (floatingLiquid > #self.bowWaveParticleNames) then
> floatingLiquid = 1 --off the end, go to "water" as a default
274,276c251
<
<
< function updateMovingEffects(floating,moving)
---
> function updateMovingEffects(floating, moving)
279d253
<
281,286c255,258
< local floatingLiquid=mcontroller.liquidId()
<
< if (floatingLiquid>0) then
<
< if (floatingLiquid>#self.bowWaveParticleNames) then
< floatingLiquid=1 --off the end, go to "water" as a default
---
> local floatingLiquid = mcontroller.liquidId()
> if (floatingLiquid > 0) then
> if (floatingLiquid > #self.bowWaveParticleNames) then
> floatingLiquid = 1 --off the end, go to "water" as a default
289c261
< local bowWaveEmitter=self.bowWaveParticleNames[floatingLiquid]
---
> local bowWaveEmitter = self.bowWaveParticleNames[floatingLiquid]
291,292c263,264
< local rateFactor=math.abs(mcontroller.xVelocity())/self.targetMoveSpeed
< rateFactor=rateFactor * self.bowWaveMaxEmissionRate
---
> local rateFactor = math.abs(mcontroller.xVelocity()) / self.targetMoveSpeed
> rateFactor = rateFactor * self.bowWaveMaxEmissionRate
295,297c267,268
< local bowWaveBounds=self.waterBounds
< -- bowWaveBounds[3]=bowWaveBounds[1]-0.5
< animator.setParticleEmitterOffsetRegion(bowWaveEmitter,bowWaveBounds)
---
> local bowWaveBounds = self.waterBounds
> animator.setParticleEmitterOffsetRegion(bowWaveEmitter, bowWaveBounds)
302d272
<
311,312d280
<
<
316c284
< --if we have a scared face on becasue of taking damage
---
> --if we have a scared face on because of taking damage
322,323c290,291
< damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState))+1
< vehicle.setLoungeEmote("drivingSeat",self.damageStateDriverEmotes[damageStateIndex])
---
> damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState)) + 1
> vehicle.setLoungeEmote("drivingSeat", self.damageStateDriverEmotes[damageStateIndex])
329d296
<
356,358c323,325
< local damageTakenEmote=vehicle.configParameter("damageTakenEmote")
< self.damageEmoteTimer=vehicle.configParameter("damageEmoteTime")
< vehicle.setLoungeEmote("drivingSeat",damageTakenEmote)
---
> local damageTakenEmote = config.getParameter("damageTakenEmote")
> self.damageEmoteTimer = config.getParameter("damageEmoteTime")
> vehicle.setLoungeEmote("drivingSeat", damageTakenEmote)
361d327
<
364c330
< local healthFactor = (storage.health-damage) / self.maxHealth
---
> local healthFactor = (storage.health - damage) / self.maxHealth
367,368c333,334
< local prevDamageStateIndex =util.clamp( maxDamageState - math.ceil(prevhealthFactor * maxDamageState)+1, 1, maxDamageState)
< self.damageStateIndex =util.clamp( maxDamageState - math.ceil(healthFactor * maxDamageState)+1, 1, maxDamageState)
---
> local prevDamageStateIndex = util.clamp(maxDamageState - math.ceil(prevhealthFactor * maxDamageState) + 1, 1, maxDamageState)
> self.damageStateIndex = util.clamp(maxDamageState - math.ceil(healthFactor * maxDamageState) + 1, 1, maxDamageState)
370c336
< if ((self.damageStateIndex > prevDamageStateIndex) or initialise==true) then
---
> if ((self.damageStateIndex > prevDamageStateIndex) or initialise == true) then
373,375c339,340
< --change the floatation
< local settingsNameList=vehicle.configParameter("damageMovementSettingNames")
< local settingsObject = vehicle.configParameter(settingsNameList[self.damageStateIndex])
---
> local settingsNameList = config.getParameter("damageMovementSettingNames")
> local settingsObject = config.getParameter(settingsNameList[self.damageStateIndex])
377c342
< self.maxBuoyancy =mcontroller.parameters().liquidBuoyancy
---
> self.maxBuoyancy = mcontroller.parameters().liquidBuoyancy
383d347
< --people in the vehicle change thier faces when the vehicle is damaged.
386d349
< --burstparticles.
393,399c356,357
<
< local frontDistance = math.min(distanceToGround(self.frontGroundTestPoint),waterSurface)
< local backDistance = math.min(distanceToGround(self.backGroundTestPoint),waterSurface)
<
<
< -- world.debugText(string.format("front=%s, back=%s",frontDistance,backDistance),mcontroller.position(),"yellow")
<
---
> local frontDistance = math.min(distanceToGround(self.frontGroundTestPoint), waterSurface)
> local backDistance = math.min(distanceToGround(self.backGroundTestPoint), waterSurface)
402c360
< return 0
---
> return 0
404,406c362
< local groundAngle=-math.atan(backDistance - frontDistance)
<
< return groundAngle
---
> return -math.atan(backDistance - frontDistance)
425d380
<
427,430d381
<
<
<
<
vehicles\hoverbike\hoverbike.lua
4,27c4,27
< self.levelApproachFactor = vehicle.configParameter("levelApproachFactor")
< self.angleApproachFactor = vehicle.configParameter("angleApproachFactor")
< self.maxGroundSearchDistance = vehicle.configParameter("maxGroundSearchDistance")
< self.maxAngle = vehicle.configParameter("maxAngle") * math.pi / 180
< self.hoverTargetDistance = vehicle.configParameter("hoverTargetDistance")
< self.hoverVelocityFactor = vehicle.configParameter("hoverVelocityFactor")
< self.hoverControlForce = vehicle.configParameter("hoverControlForce")
< self.targetHorizontalVelocity = vehicle.configParameter("targetHorizontalVelocity")
< self.horizontalControlForce = vehicle.configParameter("horizontalControlForce")
< self.nearGroundDistance = vehicle.configParameter("nearGroundDistance")
< self.jumpVelocity = vehicle.configParameter("jumpVelocity")
< self.jumpTimeout = vehicle.configParameter("jumpTimeout")
< self.backSpringPositions = vehicle.configParameter("backSpringPositions")
< self.frontSpringPositions = vehicle.configParameter("frontSpringPositions")
< self.bodySpringPositions = vehicle.configParameter("bodySpringPositions")
< self.movementSettings = vehicle.configParameter("movementSettings")
< self.occupiedMovementSettings = vehicle.configParameter("occupiedMovementSettings")
< self.protection = vehicle.configParameter("protection")
< self.maxHealth = vehicle.configParameter("maxHealth")
<
< self.smokeThreshold = vehicle.configParameter("smokeParticleHealthThreshold")
< self.fireThreshold = vehicle.configParameter("fireParticleHealthThreshold")
< self.maxSmokeRate = vehicle.configParameter("smokeRateAtZeroHealth")
< self.maxFireRate = vehicle.configParameter("fireRateAtZeroHealth")
---
> self.levelApproachFactor = config.getParameter("levelApproachFactor")
> self.angleApproachFactor = config.getParameter("angleApproachFactor")
> self.maxGroundSearchDistance = config.getParameter("maxGroundSearchDistance")
> self.maxAngle = config.getParameter("maxAngle") * math.pi / 180
> self.hoverTargetDistance = config.getParameter("hoverTargetDistance")
> self.hoverVelocityFactor = config.getParameter("hoverVelocityFactor")
> self.hoverControlForce = config.getParameter("hoverControlForce")
> self.targetHorizontalVelocity = config.getParameter("targetHorizontalVelocity")
> self.horizontalControlForce = config.getParameter("horizontalControlForce")
> self.nearGroundDistance = config.getParameter("nearGroundDistance")
> self.jumpVelocity = config.getParameter("jumpVelocity")
> self.jumpTimeout = config.getParameter("jumpTimeout")
> self.backSpringPositions = config.getParameter("backSpringPositions")
> self.frontSpringPositions = config.getParameter("frontSpringPositions")
> self.bodySpringPositions = config.getParameter("bodySpringPositions")
> self.movementSettings = config.getParameter("movementSettings")
> self.occupiedMovementSettings = config.getParameter("occupiedMovementSettings")
> self.protection = config.getParameter("protection")
> self.maxHealth = config.getParameter("maxHealth")
>
> self.smokeThreshold = config.getParameter("smokeParticleHealthThreshold")
> self.fireThreshold = config.getParameter("fireParticleHealthThreshold")
> self.maxSmokeRate = config.getParameter("smokeRateAtZeroHealth")
> self.maxFireRate = config.getParameter("fireRateAtZeroHealth")
29,30c29,30
< self.onFireThreshold = vehicle.configParameter("onFireHealthThreshold")
< self.damagePerSecondWhenOnFire = vehicle.configParameter("damagePerSecondWhenOnFire")
---
> self.onFireThreshold = config.getParameter("onFireHealthThreshold")
> self.damagePerSecondWhenOnFire = config.getParameter("damagePerSecondWhenOnFire")
32,33c32,33
< self.engineDamageSoundThreshold = vehicle.configParameter("engineDamageSoundThreshold")
< self.intermittentDamageSoundThreshold = vehicle.configParameter("intermittentDamageSoundThreshold")
---
> self.engineDamageSoundThreshold = config.getParameter("engineDamageSoundThreshold")
> self.intermittentDamageSoundThreshold = config.getParameter("intermittentDamageSoundThreshold")
36,37c36,37
< self.maxDamageSoundInterval = vehicle.configParameter("maxDamageSoundInterval")
< self.minDamageSoundInterval = vehicle.configParameter("minDamageSoundInterval")
---
> self.maxDamageSoundInterval = config.getParameter("maxDamageSoundInterval")
> self.minDamageSoundInterval = config.getParameter("minDamageSoundInterval")
40,45c40,45
< self.minDamageCollisionAccel = vehicle.configParameter("minDamageCollisionAccel")
< self.minNotificationCollisionAccel = vehicle.configParameter("minNotificationCollisionAccel")
< self.terrainCollisionDamage = vehicle.configParameter("terrainCollisionDamage")
< self.materialKind = vehicle.configParameter("materialKind")
< self.terrainCollisionDamageSourceKind = vehicle.configParameter("terrainCollisionDamageSourceKind")
< self.accelerationTrackingCount = vehicle.configParameter("accelerationTrackingCount")
---
> self.minDamageCollisionAccel = config.getParameter("minDamageCollisionAccel")
> self.minNotificationCollisionAccel = config.getParameter("minNotificationCollisionAccel")
> self.terrainCollisionDamage = config.getParameter("terrainCollisionDamage")
> self.materialKind = config.getParameter("materialKind")
> self.terrainCollisionDamageSourceKind = config.getParameter("terrainCollisionDamageSourceKind")
> self.accelerationTrackingCount = config.getParameter("accelerationTrackingCount")
47c47
< self.damageStateNames = vehicle.configParameter("damageStateNames")
---
> self.damageStateNames = config.getParameter("damageStateNames")
49,52c49,52
< self.engineIdlePitch = vehicle.configParameter("engineIdlePitch")
< self.engineRevPitch = vehicle.configParameter("engineRevPitch")
< self.engineIdleVolume = vehicle.configParameter("engineIdleVolume")
< self.engineRevVolume = vehicle.configParameter("engineRevVolume")
---
> self.engineIdlePitch = config.getParameter("engineIdlePitch")
> self.engineRevPitch = config.getParameter("engineRevPitch")
> self.engineIdleVolume = config.getParameter("engineIdleVolume")
> self.engineRevVolume = config.getParameter("engineRevVolume")
55,57c55,57
< self.damageStatePassengerDances = vehicle.configParameter("damageStatePassengerDances")
< self.damageStatePassengerEmotes = vehicle.configParameter("damageStatePassengerEmotes")
< self.damageStateDriverEmotes = vehicle.configParameter("damageStateDriverEmotes")
---
> self.damageStatePassengerDances = config.getParameter("damageStatePassengerDances")
> self.damageStatePassengerEmotes = config.getParameter("damageStatePassengerEmotes")
> self.damageStateDriverEmotes = config.getParameter("damageStateDriverEmotes")
72c72
< self.damageEmoteTimer=0.0
---
> self.damageEmoteTimer = 0.0
93c93
< self.ownerKey = vehicle.configParameter("ownerKey")
---
> self.ownerKey = config.getParameter("ownerKey")
100c100
< local startHealthFactor = vehicle.configParameter("startHealthFactor")
---
> local startHealthFactor = config.getParameter("startHealthFactor")
112,122c112,120
< function(_, _, ownerKey)
<
< if (self.ownerKey and self.ownerKey == ownerKey and self.driver == nil and animator.animationState("movement")=="idle") then
< animator.setAnimationState("movement", "warpOutPart1")
< switchHeadLights(1,1,false)
< return {storable = true, healthFactor = storage.health / self.maxHealth}
< else
< return {storable = false, healthFactor = storage.health / self.maxHealth}
< end
< end)
<
---
> function(_, _, ownerKey)
> if (self.ownerKey and self.ownerKey == ownerKey and self.driver == nil and animator.animationState("movement") == "idle") then
> animator.setAnimationState("movement", "warpOutPart1")
> switchHeadLights(1, 1, false)
> return {storable = true, healthFactor = storage.health / self.maxHealth}
> else
> return {storable = false, healthFactor = storage.health / self.maxHealth}
> end
> end)
125d122
<
129,130c126
<
< if (animator.animationState("movement")=="invisible") then
---
> if (animator.animationState("movement") == "invisible") then
132c128
< elseif (animator.animationState("movement")=="warpInPart1" or animator.animationState("movement")=="warpOutPart2") then
---
> elseif (animator.animationState("movement") == "warpInPart1" or animator.animationState("movement") == "warpOutPart2") then
135c131
< mcontroller.setVelocity({0,0})
---
> mcontroller.setVelocity({0, 0})
164,165c160
< damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState))+1
< local dance = self.damageStatePassengerDances[damageStateIndex]
---
> damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState)) + 1
167c162,163
< if (dance~="") then
---
> local dance = self.damageStatePassengerDances[damageStateIndex]
> if (dance ~= "") then
171c167
< --if we have a scared face on becasue of taking damage
---
> --if we have a scared face on because of taking damage
177,178c173,174
< damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState))+1
< vehicle.setLoungeEmote("passengerSeat",self.damageStatePassengerEmotes[damageStateIndex])
---
> damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState)) + 1
> vehicle.setLoungeEmote("passengerSeat", self.damageStatePassengerEmotes[damageStateIndex])
182,183c178,179
< damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState))+1
< vehicle.setLoungeEmote("drivingSeat",self.damageStateDriverEmotes[damageStateIndex])
---
> damageStateIndex = (maxDamageState - math.ceil(healthFactor * maxDamageState)) + 1
> vehicle.setLoungeEmote("drivingSeat", self.damageStateDriverEmotes[damageStateIndex])
188d183
<
190,192c185,186
<
< local startSoundName="engineStart"
< local loopSoundName="engineLoop"
---
> local startSoundName = "engineStart"
> local loopSoundName = "engineLoop"
195,196c189,190
< startSoundName="engineStartDamaged"
< loopSoundName="engineLoopDamaged"
---
> startSoundName = "engineStartDamaged"
> loopSoundName = "engineLoopDamaged"
199d192
<
201,205c194,197
< if (driverThisFrame ~=nil) then
<
< --has someone got in ?
< if (self.driver==nil) then
< animator.playSound(startSoundName) --start sound, plays once.
---
> if (driverThisFrame ~= nil) then
> --has someone got in ?
> if (self.driver == nil) then
> animator.playSound(startSoundName)
209,211c201,202
< if (loopSoundName~=self.loopPlaying) then
<
< if (self.loopPlaying~=nil) then
---
> if (loopSoundName ~= self.loopPlaying) then
> if (self.loopPlaying ~= nil) then
215,216c206,207
< animator.playSound(loopSoundName, -1) --engine sound, plays forever.
< self.loopPlaying=loopSoundName
---
> animator.playSound(loopSoundName, -1)
> self.loopPlaying = loopSoundName
220c211
< if (self.loopPlaying~=nil) then
---
> if (self.loopPlaying ~= nil) then
222c213
< self.loopPlaying=nil
---
> self.loopPlaying = nil
230,231c221
< if (self.loopPlaying~=nil) then
<
---
> if (self.loopPlaying ~= nil) then
245,246c235,236
< animator.setSoundPitch(self.loopPlaying, self.engineRevPitch,self.engineRevTimer)
< animator.setSoundVolume(self.loopPlaying, self.engineRevVolume,self.engineRevTimer)
---
> animator.setSoundPitch(self.loopPlaying, self.engineRevPitch, self.engineRevTimer)
> animator.setSoundVolume(self.loopPlaying, self.engineRevVolume, self.engineRevTimer)
253c243
< self.revEngine=false;
---
> self.revEngine = false
263,264c253,254
< animator.setSoundPitch(self.loopPlaying, self.enginePitch,1.5)
< animator.setSoundVolume(self.loopPlaying, self.engineVolume,1.5)
---
> animator.setSoundPitch(self.loopPlaying, self.enginePitch, 1.5)
> animator.setSoundVolume(self.loopPlaying, self.engineVolume, 1.5)
270d259
<
282c271
< if (self.loopPlaying~=nil or (self.onFireThreshold and healthFactor < self.onFireThreshold)) then
---
> if (self.loopPlaying ~= nil or (self.onFireThreshold and healthFactor < self.onFireThreshold)) then
285d273
<
288c276
< if (self.damageSoundTimer <= 0.0) then
---
> if (self.damageSoundTimer <= 0) then
292c280
< local randomMax = (healthFactor * self.maxDamageSoundInterval) + ((1.0-healthFactor) * self.minDamageSoundInterval)
---
> local randomMax = (healthFactor * self.maxDamageSoundInterval) + ((1.0 - healthFactor) * self.minDamageSoundInterval)
295c283
< self.damageEmoteTimer=vehicle.configParameter("damageEmoteTime")
---
> self.damageEmoteTimer = config.getParameter("damageEmoteTime")
297c285
< local BackfireMomentum = {0,self.jumpVelocity * 0.5}
---
> local BackfireMomentum = {0, self.jumpVelocity * 0.5}
300c288
< self.damageSoundTimer = math.random()*randomMax;
---
> self.damageSoundTimer = math.random() * randomMax;
305c293
< rearThrusterFrame = rearThrusterFrame+math.random(3)
---
> rearThrusterFrame = rearThrusterFrame + math.random(3)
308c296
< ventralThrusterFrame = ventralThrusterFrame+math.random(3)
---
> ventralThrusterFrame = ventralThrusterFrame + math.random(3)
310d297
<
313d299
<
320c306
< local newHealthFactor = (currentHealth-damage) / self.maxHealth
---
> local newHealthFactor = (currentHealth - damage) / self.maxHealth
325c311
< previousDamageStateIndex = (maxDamageState - math.ceil(prevHealthFactor * maxDamageState))+1
---
> previousDamageStateIndex = (maxDamageState - math.ceil(prevHealthFactor * maxDamageState)) + 1
326a313
>
330c317
< damageStateIndex = (maxDamageState - math.ceil(newHealthFactor * maxDamageState))+1
---
> damageStateIndex = (maxDamageState - math.ceil(newHealthFactor * maxDamageState)) + 1
344,345c331,332
< if newHealthFactor<1.0 then
< if (self.smokeThreshold > 0.0 and newHealthFactor < self.smokeThreshold) then
---
> if newHealthFactor < 1.0 then
> if (self.smokeThreshold > 0 and newHealthFactor < self.smokeThreshold) then
351c338
< if (self.fireThreshold > 0.0 and newHealthFactor < self.fireThreshold) then
---
> if (self.fireThreshold > 0 and newHealthFactor < self.fireThreshold) then
362d348
<
370,373c356
<
<
< function switchHeadLights(oldIndex,newIndex,activate)
<
---
> function switchHeadLights(oldIndex, newIndex, activate)
375c358
< local listOfLists = vehicle.configParameter("lightsInDamageState")
---
> local listOfLists = config.getParameter("lightsInDamageState")
381c364
< animator.setLightActive(name,false)
---
> animator.setLightActive(name, false)
387c370
< animator.setLightActive(name,activate)
---
> animator.setLightActive(name, activate)
398d380
<
401d382
<
403,406c384,387
< local damageTakenEmote=vehicle.configParameter("damageTakenEmote")
< self.damageEmoteTimer=vehicle.configParameter("damageEmoteTime")
< vehicle.setLoungeEmote("drivingSeat",damageTakenEmote)
< vehicle.setLoungeEmote("passengerSeat",damageTakenEmote)
---
> local damageTakenEmote = config.getParameter("damageTakenEmote")
> self.damageEmoteTimer = config.getParameter("damageEmoteTime")
> vehicle.setLoungeEmote("drivingSeat", damageTakenEmote)
> vehicle.setLoungeEmote("passengerSeat", damageTakenEmote)
409d389
<
437d416
<
467d445
<
479d456
<
484c461
< self.enginePitch=self.engineRevPitch;
---
> self.enginePitch = self.engineRevPitch;
486d462
<
505,506c481
< self.revEngine=true;
<
---
> self.revEngine = true;
517,518d491
<
<
520c493
< if (vehicle.controlHeld("drivingSeat","PrimaryFire")) then
---
> if (vehicle.controlHeld("drivingSeat", "PrimaryFire")) then
522,523d494
<
<
533d503
<
536c506
< self.headlightCanToggle=true;
---
> self.headlightCanToggle = true;
539,540c509,510
< if (vehicle.controlHeld("drivingSeat","AltFire")) then
< if (self.hornPlaying == false) then
---
> if (vehicle.controlHeld("drivingSeat", "AltFire")) then
> if not self.hornPlaying then
542c512
< self.hornPlaying=true;
---
> self.hornPlaying = true;
545c515
< if (self.hornPlaying == true) then
---
> if self.hornPlaying then
547c517
< self.hornPlaying=false;
---
> self.hornPlaying = false;
550d519
<
553d521
<
555d522
<
570c537
< updateVisualEffects(storage.health,damageThisFrame, self.headlightsOn)
---
> updateVisualEffects(storage.health, damageThisFrame, self.headlightsOn)
579d545
<
582c548
< power = vehicle.configParameter("explosionDamage"),
---
> power = config.getParameter("explosionDamage"),
588c554
< file = vehicle.configParameter("explosionConfig")
---
> file = config.getParameter("explosionConfig")
617c583
< updateVisualEffects(storage.health, self.terrainCollisionDamage, self.headlightsOn)
---
> updateVisualEffects(storage.health, self.terrainCollisionDamage, self.headlightsOn)
vehicles\mech\mech.lua
8c8
< self.level = vehicle.configParameter("mechLevel", 6)
---
> self.level = config.getParameter("mechLevel", 6)
13,19c13,19
< local mechAimLimit = vehicle.configParameter("mechAimLimit") * math.pi / 180
< local mechHorizontalMovement = vehicle.configParameter("mechHorizontalMovement")
< local mechJumpVelocity = vehicle.configParameter("mechJumpVelocity")
< local mechFireCycle = vehicle.configParameter("mechFireCycle")
< local mechProjectile = vehicle.configParameter("mechProjectile")
< local mechProjectileConfig = vehicle.configParameter("mechProjectileConfig")
< local offGroundFrames = vehicle.configParameter("offGroundFrames")
---
> local mechAimLimit = config.getParameter("mechAimLimit") * math.pi / 180
> local mechHorizontalMovement = config.getParameter("mechHorizontalMovement")
> local mechJumpVelocity = config.getParameter("mechJumpVelocity")
> local mechFireCycle = config.getParameter("mechFireCycle")
> local mechProjectile = config.getParameter("mechProjectile")
> local mechProjectileConfig = config.getParameter("mechProjectileConfig")
> local offGroundFrames = config.getParameter("offGroundFrames")