FILES ----- player.config terrestrial_worlds.config weather.config ai\upgradeship1.aicommand ai\upgradeship4.aicommand ai\upgradeship5.aicommand ai\upgradeship6.aicommand ai\upgradeship7.aicommand ai\upgradeship8.aicommand biomes\distributions.config biomes\surface\scorchedcity.biome dungeons\microdungeons\biomes\scorchedcity\scorchedcitymicrodungeons.dungeon [NEW] dungeons\microdungeons\biomes\scorchedcity\scorchedcitytrapflat1.json [NEW] dungeons\microdungeons\biomes\scorchedcity\scorchedcitytrapflat2.json [NEW] dungeons\microdungeons\biomes\scorchedcity\scorchedcitytrapflat3.json dungeons\missions\apexmissions\apexmission1.json dungeons\missions\avianmissions\avianmission1.json [NEW] interface\bookmarks\icons\scorchedcity.png interface\games\fossilgame\fossilgame.lua interface\games\fossilgame\generator.lua interface\games\fossilgame\level.lua interface\games\fossilgame\sprite.lua interface\games\fossilgame\tileset.lua interface\games\fossilgame\tools.lua [NEW] interface\games\fossilgame\treasuretile.png [NEW] interface\tooltips\filledcapturepod.png [NEW] interface\tooltips\filledcapturepod.tooltip items\active\unsorted\filledcapturepod\filledcapturepod.activeitem items\active\unsorted\filledcapturepod\filledcapturepod.lua items\augments\back\damageaugment1.augment items\augments\back\damageaugment3.augment [NEW] items\augments\pet\bouncycollar.augment [NEW] items\augments\pet\bouncycollar.png [NEW] items\augments\pet\damagecollar.png [NEW] items\augments\pet\damagecollar1.augment [NEW] items\augments\pet\damagecollar2.augment [NEW] items\augments\pet\damagecollar3.augment [NEW] items\augments\pet\electricbombcollar.augment [NEW] items\augments\pet\electricbombcollar.png [NEW] items\augments\pet\firebombcollar.augment [NEW] items\augments\pet\firebombcollar.png [NEW] items\augments\pet\ghostlycollar.augment [NEW] items\augments\pet\ghostlycollar.png [NEW] items\augments\pet\healingcollar.png items\augments\pet\healingcollar1.augment [NEW] items\augments\pet\healingcollar2.augment [NEW] items\augments\pet\healingcollar3.augment [NEW] items\augments\pet\healthcollar.png [NEW] items\augments\pet\healthcollar1.augment [NEW] items\augments\pet\healthcollar2.augment [NEW] items\augments\pet\healthcollar3.augment [NEW] items\augments\pet\icebombcollar.augment [NEW] items\augments\pet\icebombcollar.png [NEW] items\augments\pet\lightcollar.augment [NEW] items\augments\pet\lightcollar.png [NEW] items\augments\pet\obliviouscollar.augment [NEW] items\augments\pet\obliviouscollar.png [NEW] items\augments\pet\poisonbombcollar.augment [NEW] items\augments\pet\poisonbombcollar.png [NEW] items\augments\pet\thornscollar.png items\materials\cabinroofing.matitem items\materials\cactiblock.matitem items\materials\candyblock.matitem items\materials\castlewalls1.matitem items\materials\castlewalls2.matitem items\materials\chain.matitem items\materials\cheapwallpaper.matitem items\materials\clay.matitem items\materials\cloudblock.matitem items\materials\cobblestone.matitem items\materials\cobblestonebrick.matitem items\materials\coconutblock.matitem items\materials\composite01.matitem items\materials\concrete.matitem items\materials\copperblock.matitem items\materials\copperfence.matitem monsters\dungeon\chicken\behavior.lua monsters\dungeon\po\behavior.lua monsters\dungeon\robotchicken\behavior.lua monsters\dungeon\swarpion\behavior.lua monsters\generated\swimming\swimmingmonster.lua monsters\generated\swimming\smallfish\smallfish.lua [NEW] monsters\mission\kluexsentry\body.monsterpart [NEW] monsters\mission\kluexsentry\bodylit.monsterpart [NEW] monsters\mission\kluexsentry\default.frames [NEW] monsters\mission\kluexsentry\kluexsentry.animation [NEW] monsters\mission\kluexsentry\kluexsentry.monstertype [NEW] monsters\mission\kluexsentry\kluexsentry.png [NEW] monsters\mission\kluexsentry\kluexsentrylit.png npcs\statuses.config npcs\story\tonauac.npctype objects\biome\foundry\foundrybed\foundrybed.object objects\biome\foundry\foundrybellow\foundrybellow.object objects\biome\foundry\foundrybellow\foundrybellow.png objects\biome\foundry\foundrybutton\foundrybutton.object objects\biome\foundry\foundrychair\foundrychair.object objects\biome\foundry\foundryconsole\foundryconsole.object objects\biome\foundry\foundrydoor\foundrydoor.object objects\crafting\pethealingstation\pethealingstation.lua objects\floran\plantdoor2\plantdoor2.object objects\fossils\dirtyfossils\dirtyfossil.lua objects\fossils\dirtyfossils\dirtyfossil1.object objects\fossils\dirtyfossils\dirtyfossil2.object objects\fossils\dirtyfossils\dirtyfossil3.object objects\fossils\dirtyfossils\dirtyfossil4.object objects\fossils\dirtyfossils\dirtyfossil5.object objects\fossils\dirtyfossils\dirtyfossil6.object objects\fossils\dirtyfossils\dirtyfossil7.object objects\fossils\dirtyfossils\dirtyfossil8.object objects\fossils\displaystands\fossildisplay.lua objects\fossils\displaystands\fossildisplay5\fossildisplay5.animation objects\generic\biohazardsign\biohazardsign.png objects\generic\futurelight\futurelight.object objects\generic\hazardmicroscope\hazardmicroscope.object objects\generic\invisiblelight\invisiblelight.object objects\generic\invisiblesparker\invisiblesparker.object objects\generic\kennel\kennel.object objects\generic\lightbulb\lightbulb.object objects\generic\lightbulb\lightbulb2.object objects\generic\locker1\locker1.object objects\generic\locker2\locker2.object objects\generic\rusticoven\rusticoven.object objects\generic\sapling\sapling.object objects\generic\screenplanet\screenplanet.object objects\generic\seismograph\seismograph.object objects\generic\shiplight\shiplight.object objects\generic\sleepingbag\sleepingbag.object objects\generic\slidingdoor\slidingdoor.object objects\generic\smashcrystal\smashcrystal.object objects\generic\sprinkler\sprinkler.object objects\generic\statuspod\statuspod.object objects\generic\stepladder\stepladder.object objects\generic\stonechest\ironchest.object objects\generic\symbiotesample\symbiotesample.object objects\generic\teacup1\teacup1.object objects\generic\teapot1\teapot1.object objects\generic\techchest\techchest.object objects\generic\techchest2\techchest2.object objects\generic\tent1\tent1.object objects\generic\tent2\tent2.object [NEW] objects\mission\apexmission\apexartifactaltar\apexartifactaltar.animation [NEW] objects\mission\apexmission\apexartifactaltar\apexartifactaltar.frames [NEW] objects\mission\apexmission\apexartifactaltar\apexartifactaltar.lua [NEW] objects\mission\apexmission\apexartifactaltar\apexartifactaltar.object [NEW] objects\mission\apexmission\apexartifactaltar\apexartifactaltar.png [NEW] objects\mission\apexmission\miniknogoldsign\miniknogoldsign.frames [NEW] objects\mission\apexmission\miniknogoldsign\miniknogoldsign.object [NEW] objects\mission\apexmission\miniknogoldsign\miniknogoldsign.png [NEW] objects\mission\apexmission\miniknogoldsign\miniknogoldsignicon.png objects\spawner\pettether\pettether.lua [NEW] parallax\images\cityscapescorched1\base\1.png [NEW] parallax\images\cityscapescorched2\base\1.png [NEW] parallax\images\cityscapescorched3\base\1.png [NEW] parallax\images\cityscapescorched4\base\1.png [NEW] parallax\images\cityscapescorched5\base\1.png [NEW] parallax\images\cityscapescorched6\base\1.png parallax\surface\scorchedcity.parallax projectiles\unsorted\armornova\armornova.projectile projectiles\unsorted\armornova\novadamage.projectile scripts\augments\collar.lua scripts\pets\capturable.lua scripts\pets\player.lua scripts\pets\spawner.lua [NEW] stats\effects\camouflage\camouflage.lua [NEW] stats\effects\camouflage\camouflage25.statuseffect [NEW] stats\effects\camouflage\camouflage50.statuseffect [NEW] stats\effects\camouflage\camouflage75.statuseffect stats\effects\deathbomb\deathbomb.statuseffect stats\effects\deathbomb\deathbombfire.statuseffect [NEW] stats\effects\ghostlyglow\ghostlyglow.animation [NEW] stats\effects\ghostlyglow\ghostlyglow.lua [NEW] stats\effects\ghostlyglow\ghostlyglow.statuseffect [NEW] stats\effects\maxhealthscalingboost\maxhealthboostcollar1.statuseffect [NEW] stats\effects\maxhealthscalingboost\maxhealthboostcollar2.statuseffect [NEW] stats\effects\maxhealthscalingboost\maxhealthboostcollar3.statuseffect [NEW] stats\effects\maxhealthscalingboost\maxhealthscalingboost.lua [NEW] stats\effects\maxhealthscalingboost\maxhealthscalingboost25.statuseffect [NEW] stats\effects\npcreactions\slowlove.animation [NEW] stats\effects\npcreactions\slowlove.statuseffect [NEW] stats\effects\rage\ragecollar1.statuseffect [NEW] stats\effects\rage\ragecollar2.statuseffect [NEW] stats\effects\rage\ragecollar3.statuseffect [NEW] stats\effects\regeneration\regenerationcollar1.statuseffect [NEW] stats\effects\regeneration\regenerationcollar2.statuseffect [NEW] stats\effects\regeneration\regenerationcollar3.statuseffect [NEW] tech\dash\airdash.tech [NEW] tech\dash\airdash.techitem [NEW] tech\dash\blinkdash.animation [NEW] tech\dash\blinkdash.lua [NEW] tech\dash\blinkdash.tech [NEW] tech\dash\blinkdash.techitem [NEW] tech\dash\blinkin.frames [NEW] tech\dash\blinkin.png [NEW] tech\dash\blinkout.frames [NEW] tech\dash\blinkout.png tech\dash\dash.lua tech\dash\dash.techitem [NEW] tech\distortionsphere\ball.frames [NEW] tech\distortionsphere\ball.png [NEW] tech\distortionsphere\distortionsphere.animation [NEW] tech\distortionsphere\distortionsphere.lua [NEW] tech\distortionsphere\distortionsphere.tech [NEW] tech\distortionsphere\distortionsphere.techitem tech\multijump\doublejump.techitem [NEW] terrain\surface\remixedflatssurface.terrain tiles\materials\bamboo.material tiles\materials\cabinroofing.material tiles\materials\cactiblock.material tiles\materials\candyblock.material tiles\materials\castlewalls1.material tiles\materials\castlewalls2.material tiles\materials\chain.material tiles\materials\cheapwallpaper.material tiles\materials\clay.material tiles\materials\cloudblock.material tiles\materials\cobblestone.material tiles\materials\cobblestonebrick.material tiles\materials\coconutblock.material tiles\materials\composite01.material tiles\materials\concrete.material tiles\materials\copperblock.material tiles\materials\copperfence.material tiles\platforms\bambooplatform.material tilesets\packed\materials.json tilesets\packed\objects-by-category\decorative.json tilesets\packed\objects-by-category\furniture.json tilesets\packed\objects-by-category\teleporter.json tilesets\packed\objects-by-category\wire.json tilesets\packed\objects-by-race\apex.json tilesets\packed\objects-by-race\generic.json tilesets\packed\objects-by-type\loungeable.json treasure\biome.treasurepools treasure\fossils.treasurepools weather\junkstorm\junkstorm.weather DIFFS ----- player.config 528c528 < "jumpSpeed" : 30.0, --- > "jumpSpeed" : 20.0, terrestrial_worlds.config 37c37 < "gravityRange" : [70, 90], --- > "gravityRange" : [100, 100], 118c118 < "gravityRange" : [60, 70], --- > "gravityRange" : [80, 80], 180c180 < "gravityRange" : [70, 80], --- > "gravityRange" : [80, 80], 244c244 < "gravityRange" : [80, 90], --- > "gravityRange" : [80, 80], 623c623 < "gravityRange" : [50, 55], --- > "gravityRange" : [50, 50], 902c902 < "blockSelector" : [ "remixedMildSurface" ], --- > "blockSelector" : [ "remixedFlatsSurface" ], weather.config 166,168c166,168 < [0.80, "clear"], < [0.1, "meteorshower"], < [0.05, "largemeteor"] --- > [0.86, "junkstorm"], > [0.03, "meteorshower"], > [0.01, "largemeteor"] ai\upgradeship1.aicommand 20a21,24 > "action" : "enableTech", > "techName" : [ "distortionspheretech", "doublejumptech", "dashtech" ] > }, > { 22c26 < "techName" : [ "doublejumpTech", "dashTech", "bounceTech" ] --- > "techName" : [ "airdashtech", "blinkdashtech" ] ai\upgradeship4.aicommand 20,23d19 < }, < { < "action" : "showTech", < "techName" : [ "rocketjump", "morphballTech" ] ai\upgradeship5.aicommand 20,23d19 < }, < { < "action" : "showTech", < "techName" : [ "gravitybubbletech", "skyrailTech" ] ai\upgradeship6.aicommand 20,23d19 < }, < { < "action" : "showTech", < "techName" : [ "ftlboostTech", "rocketbootsTech" ] ai\upgradeship7.aicommand 20,23d19 < }, < { < "action" : "showTech", < "techName" : [ "bubbleboost" ] ai\upgradeship8.aicommand 20,23d19 < }, < { < "action" : "showTech", < "techName" : [ "targetblinktech", "particlethrust" ] biomes\distributions.config 367a368,373 > "scorchedcityMicrodungeon" : { > "type" : "random", > > "blockProbability" : 1 > }, > biomes\surface\scorchedcity.biome 196c196 < "distribution" : "/biomes/distributions.config:mainBiomeMicrodungeon", --- > "distribution" : "/biomes/distributions.config:scorchedcityMicrodungeon", dungeons\microdungeons\biomes\scorchedcity\scorchedcitymicrodungeons.dungeon 8c8 < "anchor" : [ "electricpolegather1", "scorchedcityruins1", "scorchedcityruins2", "scorchedcityruins3", "scorchedcitybombshelter1", "scorchedcitybombshelter2", "scorchedcitybrokenroad1", "scorchedcitybrokenroad2", "scorchedcitybrokenroad3", "scorchedcitybrokenroad4", "scorchedcitybrokenroad5", "scorchedcitybrokenroad6", "scorchedcitybrokenroad7", "scorchedcitybrokenroad8", "scorchedcitybrokenroad9", "scorchedcityjunkpile1", "scorchedcityjunkpile2", "scorchedcityjunkpile3", "scorchedcityjunkpile4", "scorchedcityshop1", "scorchedcityshop2", "scorchedcityobservatory1", "scorchedcityobservatory2", "scorchedcitytrapshelter1", "scorchedcitytrapshelter2", "scorchedcityhidenbunker1", "scorchedcityhidenbunker2" ], --- > "anchor" : [ "electricpolegather1", "scorchedcityruins1", "scorchedcityruins2", "scorchedcityruins3", "scorchedcitybombshelter1", "scorchedcitybombshelter2", "scorchedcitybrokenroad1", "scorchedcitybrokenroad2", "scorchedcitybrokenroad3", "scorchedcitybrokenroad4", "scorchedcitybrokenroad5", "scorchedcitybrokenroad6", "scorchedcitybrokenroad7", "scorchedcitybrokenroad8", "scorchedcitybrokenroad9", "scorchedcityjunkpile1", "scorchedcityjunkpile2", "scorchedcityjunkpile3", "scorchedcityjunkpile4", "scorchedcityshop1", "scorchedcityshop2", "scorchedcityobservatory1", "scorchedcityobservatory2", "scorchedcitytrapshelter1", "scorchedcitytrapshelter2", "scorchedcityhidenbunker1", "scorchedcityhidenbunker2", "scorchedcitytrapflat1", "scorchedcitytrapflat2", "scorchedcitytrapflat3", "scorchedcitybuilding1", "scorchedcitybuilding2", "scorchedcitybuilding3", "scorchedcitybuilding4", "scorchedcitybuilding5", "scorchedcitybuilding6", "scorchedcitybuilding7", "scorchedcitybuilding8", "scorchedcitybuilding9", "scorchedcitybuilding10" ], 204a205,295 > }, > { > "name" : "scorchedcitytrapflat1", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitytrapflat1.json" ] > }, > { > "name" : "scorchedcitytrapflat2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitytrapflat2.json" ] > }, > { > "name" : "scorchedcitytrapflat3", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitytrapflat3.json" ] > }, > { > "name" : "scorchedcitybuilding1", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding1.json" ] > }, > { > "name" : "scorchedcitybuilding2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding2.json" ] > }, > { > "name" : "scorchedcitybuilding3", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding3.json" ] > }, > { > "name" : "scorchedcitybuilding4", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding4.json" ] > }, > { > "name" : "scorchedcitybuilding5", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding5.json" ] > }, > { > "name" : "scorchedcitybuilding6", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding6.json" ] > }, > { > "name" : "scorchedcitybuilding7", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding7.json" ] > }, > { > "name" : "scorchedcitybuilding8", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding8.json" ] > }, > { > "name" : "scorchedcitybuilding9", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding9.json" ] > }, > { > "name" : "scorchedcitybuilding10", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "scorchedcitybuilding10.json" ] dungeons\missions\apexmissions\apexmission1.json [TMX file differences are left out for huge size.] dungeons\missions\avianmissions\avianmission1.json [TMX file differences are left out for huge size.] interface\games\fossilgame\fossilgame.lua 10,11c10 < < self.fossilId=config.getParameter("fossilId") --- > self.fossilId = config.getParameter("fossilId") 15,19d13 < world.logInfo("tileData=%s",self.tileData) < < < world.logInfo("dirt=%s, rock=%s, bone=%s",self.tileData[1], self.tileData[2],self.tileData[3]) < 24d17 < 27d19 < self.loadHandler = world.sendEntityMessage(self.fossilId, "load") 28a21,34 > local treaureChance=world.getObjectParameter(self.fossilId,"extraTreasureChance") > if treaureChance or (math.random() < treaureChance) then > local treasureList=root.createTreasure( > world.getObjectParameter(self.fossilId,"extraTreasurepool"), > world.getObjectParameter(self.fossilId,"ExtraTreasureLevel")) > > self.treasureName=treasureList[1] > self.treasureIconPath=root.itemConfig(self.treasureName).directory .. root.itemConfig(self.treasureName).config.inventoryIcon > world.logInfo("treasureIcon=%s",self.treasureIconPath) > end > > self.treasureComplete=false > > self.loadHandler = world.sendEntityMessage(self.fossilId, "load") 32a39 > 34,38c41,45 < if self.level.fossilDamaged then < lose() < else < win() < end --- > if self.level.fossilDamaged then > lose() > else > win() > end 40a48 > 74d81 < 88,89d94 < < 103d107 < 107c111 < function generateLevel() --- > function generateLevel(withTreasure) 116c120 < local size = {math.random(10,10), math.random(9,9)} --- > local size = {10,9} 119,120c123,124 < -- dirt, rock, bone < local level, toolUses = generator:generate(size, 16, position, self.tileData[1], self.tileData[2],self.tileData[3]) --- > -- dirt, rock, bone, treasure > local level, toolUses = generator:generate(size, 16, position, withTreasure, self.tileData[1], self.tileData[2],self.tileData[3], self.tileData[4]) 160c164,168 < self.fossilPreview:fitToBox(100,100) --- > self.fossilPreview:fitToBox(66,66) > > self.previewOffset={157-(self.fossilPreview.size[1]*self.fossilPreview.scale)/2, > 160-self.fossilPreview.size[2]*self.fossilPreview.scale} > end 162c170,180 < self.previewOffset={163-(self.fossilPreview.size[1]*self.fossilPreview.scale)/2,100-(self.fossilPreview.size[2]*self.fossilPreview.scale)/2} --- > > function winTreasure() > self.level:removeTreasure() > self.treasureComplete=true > console.playSound("/sfx/objects/colonydeed_partyhorn.ogg") > > self.treasurePreview = Sprite:new(self.treasureIconPath) > self.treasurePreview:fitToBox(50,50) > > self.treasurePreviewOffset={180-(self.treasurePreview.size[1]*self.treasurePreview.scale)/2, > 75-self.treasurePreview.size[2]*self.treasurePreview.scale} 192c210,213 < level, toolUses = generateLevel() --- > > local withTreasure = (self.treasureName and true) or false > > level, toolUses = generateLevel(withTreasure) 208a230 > 211d232 < 213d233 < 214a235 > end 215a237,242 > if self.treasurePreview then > self.treasurePreview:draw(self.treasurePreviewOffset) > > console.canvasDrawText("BONUS", {position = {85, 60}, width = 88}, 12) > local title=root.itemConfig(self.treasureName).config.shortdescription > console.canvasDrawText(title, {position = {180, 80}, width = 88, horizontalAnchor = "mid"}, 12) 216a244 > 266,267c294,297 < if (toolUsesRemaining()==0 and self.level:checkCoveredBone()==false) then < lose() --- > if toolUsesRemaining()==0 then > if self.level:checkUnbrushedBone()==false and (not self.treasureName or self.level:checkUnbrushedTreasure()==false) then > lose() > end 270a301,310 > if self.treasureName and self.level.treasureDamaged==false then > if self.treasureComplete==false then > > if self.level:countUncoveredTreasure()>=4 then > winTreasure() > end > > end > end > 310a351,355 > > if self.treasureComplete==true then > world.sendEntityMessage(self.fossilId, "create", self.treasureName) > end > 312c357,358 < world.sendEntityMessage(self.fossilId, "win", self.fossilName) --- > world.sendEntityMessage(self.fossilId, "create", self.fossilName) > world.sendEntityMessage(self.fossilId, "smash", false) --don't give booby prize 314,315c360 < -- if (self.lost == true) then < world.sendEntityMessage(self.fossilId, "lose") --tell the fossil --- > world.sendEntityMessage(self.fossilId, "smash", true) --give booby prize interface\games\fossilgame\generator.lua 16,17c16,17 < function LevelGenerator:generate(size, tileSize, position, dirt, rock, bone) < local level = Level:new(size, tileSize, position, dirt, rock, bone) --- > function LevelGenerator:generate(size, tileSize, position, withTreasure, dirt, rock, bone, treasure) > local level = Level:new(size, tileSize, position, dirt, rock, bone, treasure) 22a23,27 > > if (withTreasure) then > self:placeTreasure(level) > end > 72a78,107 > end > > function LevelGenerator:placeTreasure(level) > > local posssibleTreasurePos={} > > --search the entire place for possible treasure positions > for x = 0, level.size[1] - 2 do > for y = 0, level.size[2] - 2 do > > if ( level:fossilAt({x,y})==false > and level:fossilAt({x+1,y})==false > and level:fossilAt({x,y+1})==false > and level:fossilAt({x+1,y+1})==false > ) then > posssibleTreasurePos[#posssibleTreasurePos+1]={x,y} > end > end > end > > local treasurePos=posssibleTreasurePos[math.random(1,#posssibleTreasurePos)] > > x=treasurePos[1] > y=treasurePos[2] > > level:addTreasure({x,y}) > level:addTreasure({x+1,y}) > level:addTreasure({x,y+1}) > level:addTreasure({x+1,y+1}) > interface\games\fossilgame\level.lua 8c8 < function Level:new(size, tileSize, position, dirt, rock, bone) --- > function Level:new(size, tileSize, position, dirt, rock, bone, treasure) 15a16 > treasureMaterial = treasure, 18a20 > treasureLayer = TileLayer:new(size, tileSize), 35d36 < self.dirtLayer.outerEdge = "cheeseBurger" 46a48,51 > self.treasureLayer:setMaterialData(self.treasureMaterial) > self.treasureLayer:fill(false) > self.treasureLayer.position = self.position > 62a68,70 > > self.fossilDamaged=false > self.treasureDamaged=false 72a81 > treasureMaterial = self.treasureMaterial, 76a86 > treasureLayer = self.boneLayer.tiles, 79a90 > treasureDamaged = self.treasureDamaged, 85c96 < local level = self:new(levelData.size, levelData.tileSize, levelData.position, levelData.dirtMaterial, levelData.rockMaterial, levelData.boneMaterial) --- > local level = self:new(levelData.size, levelData.tileSize, levelData.position, levelData.dirtMaterial, levelData.rockMaterial, levelData.boneMaterial, leveldata.treasureMaterial) 90a102 > level.treasureLayer.tiles = levelData.treasureLayer 93a106 > level.treasureDamaged = levelData.treasureDamaged 99a113,118 > > if level.treasureDamaged then > level:damageTreasure() > end > > 116a136 > self.treasureLayer:draw() 122a143,144 > ----------------------------------------------------- > 134a157,158 > ----------------------------------------------------- > 149a174,196 > ----------------------------------------------------- > > function Level:fossilAt(tilePosition) > for _,tile in ipairs(self.fossilTiles) do > if tile[1] == tilePosition[1] and tile[2] == tilePosition[2] then > return true > end > end > return false > end > > function Level:removeFossil() > for i,tile in pairs(self.fossilTiles) do > self.boneLayer:setTile(tile, false) > end > self.fossilTiles = {} > end > > > function Level:addBone(tilePosition) > self.boneLayer:setTile(tilePosition, true) > end > 160,162c207,213 < function Level:removeFossil() < for i,tile in pairs(self.fossilTiles) do < self.boneLayer:setTile(tile, false) --- > function Level:checkUnbrushedBone() > for x = 0, self.size[1] - 1 do > for y = 0, self.size[2] - 1 do > if (self:dirtAt({x,y}) and self:fossilAt({x,y}) and not self:rockAt({x,y})) then > return true > end > end 164c215,220 < self.fossilTiles = {} --- > > return false > end > ----------------------------------------------------- > function Level:treasureAt(tilePosition) > return self.treasureLayer:tile(tilePosition) 167,170c223,237 < function Level:fossilAt(tilePosition) < for _,tile in ipairs(self.fossilTiles) do < if tile[1] == tilePosition[1] and tile[2] == tilePosition[2] then < return true --- > function Level:removeTreasure() > self.treasureLayer:fill(false) > end > > > function Level:addTreasure(tilePosition) > self.treasureLayer:setTile(tilePosition, true) > end > > function Level:damageTreasure() > for x = 0, self.size[1] - 1 do > for y = 0, self.size[2] - 1 do > if self:treasureAt({x,y}) then > self.treasureLayer:damageTile({x,y}) > end 173c240,244 < return false --- > > if not self.treasureDamaged then > console.playSound("/sfx/blocks/footstep_crystal.ogg", 0, 1.0) > end > self.treasureDamaged = true 176,177c247,259 < function Level:addBone(tilePosition) < self.boneLayer:setTile(tilePosition, true) --- > function Level:countUncoveredTreasure() > > local count=0 > > for x = 0, self.size[1] - 1 do > for y = 0, self.size[2] - 1 do > if self:treasureAt({x,y}) and self:dirtAt({x,y})==false and self:rockAt({x,y})==false then > count=count+1 > end > end > end > > return count 179a262,276 > function Level:checkUnbrushedTreasure() > for x = 0, self.size[1] - 1 do > for y = 0, self.size[2] - 1 do > if (self:dirtAt({x,y}) and self:treasureAt({x,y}) and not self:rockAt({x,y})) then > return true > end > end > end > > return false > end > > > ----------------------------------------------------- > 199,207d295 < function Level:checkCoveredBone() < for x = 0, self.size[1] - 1 do < for y = 0, self.size[2] - 1 do < if (self:dirtAt({x,y}) and self:fossilAt({x,y}) and not self:rockAt({x,y})) then < -- sb.logInfo("covered bone at %s,%s",x,y) < return true < end < end < end 209,210c297,300 < return false < end --- > > ----------------------------------------------------- > ----------------------------------------------------- > ----------------------------------------------------- interface\games\fossilgame\sprite.lua 37c37,39 < if not self.loop then self.animating = false end --- > if not self.loop then > self.animating = false > end interface\games\fossilgame\tileset.lua 84a85 > local r=math.random() 86,88c87 < self:drawTile(x, y, self.tileDamage[i+1]) < else < math.random() --- > self:drawTile(x, y, r, self.tileDamage[i+1]) 99c98 < function TileLayer:drawTile(x, y, damaged) --- > function TileLayer:drawTile(x, y, r, damaged) 105c104 < local variant = math.floor(math.random() * self.materialVariants) --- > local variant = math.floor(r * self.materialVariants) interface\games\fossilgame\tools.lua 115a116,117 > elseif self.level:treasureAt(tile) then > self.level:damageTreasure() 118c120 < if self.level:rockAt(tile) or self.level:dirtAt(tile) or self.level:fossilAt(tile) then --- > if self.level:rockAt(tile) or self.level:dirtAt(tile) or self.level:fossilAt(tile) or self.level:treasureAt(tile) then items\active\unsorted\filledcapturepod\filledcapturepod.activeitem 7c7 < "tooltipKind" : "base", --- > "tooltipKind" : "filledcapturepod", 129c129,139 < "currentCollar" : null --- > "currentCollar" : null, > > // The player script stores the pet's state while the filledcapturepod is > // inactive. When the filledcapturepod becomes active again, it updates > // its own version of the state. > // But if the filledcapturepod has been updated via a pettether or > // pethealingstation then the filledcapturepod should take priority and > // update the player script's state instead. > // If anything makes changes to the parameters on a filledcapturepod, e.g. > // to heal the pets, it should set podItemHasPriority to true. > "podItemHasPriority" : false items\active\unsorted\filledcapturepod\filledcapturepod.lua 43c43 < if callPetsSystem("pets.isPodActive", self.podUuid) then --- > if not config.getParameter("podItemHasPriority", false) then 45,46c45,48 < activeItem.setInstanceValue("currentPets", self.pets) < return --- > if self.pets then > activeItem.setInstanceValue("currentPets", self.pets) > return > end 56a59 > activeItem.setInstanceValue("podItemHasPriority", false) items\augments\back\damageaugment1.augment 6c6 < "description" : "An EPP module that boosts your damage output a little.", --- > "description" : "An EPP module that slightly boosts your damage output.", items\augments\back\damageaugment3.augment 6c6 < "description" : "An EPP module that boosts your damage output greatly.", --- > "description" : "An EPP module that significantly boosts your damage output.", items\augments\pet\healingcollar1.augment 5c5 < "inventoryIcon" : "healingcollar1.png", --- > "inventoryIcon" : "healingcollar.png", 12c12,13 < "effects" : [ "regenerationaugment1" ] --- > "displayIcon" : "/items/augments/pet/healingcollar.png", > "effects" : [ "regenerationcollar1" ] items\materials\cabinroofing.matitem 6c6 < "description" : "Delightful cabin roofing.", --- > "description" : "Simple roofing for a cabin.", 8c8 < "glitchdescription" : "Statement. Pleasant cabin roofing.", --- > "glitchdescription" : "Pleased. This cabin roof has rustic charm.", 9a10 > "novakiddescription" : "A cabin roof, good for keepin' dry in the rain.", items\materials\cactiblock.matitem 6c6 < "description" : "Cacti shaped into perfect cubes.", --- > "description" : "Cactus that's been fashioned into a construction block. Still prickly.", 8,9c8,10 < "glitchdescription" : "Concerned. My shape recognition system appears to be malfunctioning.", < "florandescription" : "Plantss do not come as cubess! Cubess unnatural!", --- > "glitchdescription" : "Cautious. This construction block has been made from prickly cactus.", > "florandescription" : "Floran like pickly cactuss blocksss.", > "novakiddescription" : "It's made outta cactus. Better not lean against this.", items\materials\candyblock.matitem 7a8,10 > "glitchdescription" : "Delighted. This appears to be a giant piece of hard candy.", > "florandescription" : "Candy hass colourful sstripess.", > "novakiddescription" : "A big ol' piece of rock candy.", items\materials\castlewalls1.matitem 8,9c8,10 < "glitchdescription" : "Statement. Stone slabs.", < "florandescription" : "Ssstone.", --- > "glitchdescription" : "Informed. Stone bricks like this are frequently used in castle construction.", > "florandescription" : "Giant sstone brickss.", > "novakiddescription" : "I'd hate t've been the fella who had to lay these heavy bricks.", items\materials\castlewalls2.matitem 8,9c8,10 < "glitchdescription" : "Statement. Stone slabs.", < "florandescription" : "Ssstone.", --- > "glitchdescription" : "Interested. It appears these bricks were all cut from the same stone.", > "florandescription" : "These sstone brickss are ssmall.", > "novakiddescription" : "Some bricks carved outta rock.", items\materials\chain.matitem 8c8 < "glitchdescription" : "Statement. Chains.", --- > "glitchdescription" : "Impressed. These chains are remarkably strong.", 9a10 > "novakiddescription" : "Some chains made outta tungsten.", items\materials\cheapwallpaper.matitem 8,9c8,10 < "glitchdescription" : "Statement. Tacky wallpaper.", < "florandescription" : "Floran adore wall papers.", --- > "glitchdescription" : "Unsettled. This wall paper is overwhelming gaudy.", > "florandescription" : "Floran adore pretty wall paperss.", > "novakiddescription" : "Why'd anyone want to cover their walls with paper lookin' like this?", items\materials\clay.matitem 6c6 < "description" : "Dry and dusty clay.", --- > "description" : "Heavy, sticky clay.", 8,9c8,10 < "glitchdescription" : "Statement. Clay.", < "florandescription" : "Clay.", --- > "glitchdescription" : "Interested. This clay is dense enough to use as a building material.", > "florandescription" : "Sssmooth clay.", > "novakiddescription" : "I reckon drying this clay would harden it up.", items\materials\cloudblock.matitem 6,9c6,10 < "description" : "Clouds packed tight into a solid block.", < "shortdescription" : "Cloud Block", < "glitchdescription" : "Curious. A block of cloud.", < "florandescription" : "Wonder if I can eat?", --- > "description" : "A cloud dense enough to walk on.", > "shortdescription" : "Cloud", > "glitchdescription" : "Amazed. The density of this cloud could support my weight.", > "florandescription" : "Cloud iss sso fluffy!", > "novakiddescription" : "This here cloud is made from some heavy fluff stuff.", items\materials\cobblestone.matitem 7,9c7,10 < "description" : "Hard stones, smooth to the touch.", < "glitchdescription" : "Statement. Cobblestones.", < "florandescription" : "Cobblessstone.", --- > "description" : "Hard cobblestones, smooth to the touch.", > "glitchdescription" : "Facinated. These cobblestones are naturally smooth.", > "florandescription" : "Ssmooth cobblessstone rockss.", > "novakiddescription" : "Ain't uncommon to run across cobblestone rocks like this.", items\materials\cobblestonebrick.matitem 7,9c7,10 < "description" : "Small bricks made of cobblestone.", < "glitchdescription" : "Statement. Cobblestone.", < "florandescription" : "Cobblessstone.", --- > "description" : "Small bricks made from cobblestone.", > "glitchdescription" : "Observant. These bricks are made from cobblestone.", > "florandescription" : "Ssmooth cobblessstone brickss.", > "novakiddescription" : "Bricks made outta cobblestone.", items\materials\coconutblock.matitem 6c6 < "description" : "Just a block made of coconut.", --- > "description" : "Bricks made from coconut and mortar.", 8,9c8,10 < "glitchdescription" : "Statement. Coconut.", < "florandescription" : "Unssstabbed coco.", --- > "glitchdescription" : "Surprised. The primary component of these bricks are coconuts.", > "florandescription" : "Coconutss are sstong brickss.", > "novakiddescription" : "I'd reckon these coconut bricks are mighty strong.", items\materials\composite01.matitem 8,9c8,11 < "glitchdescription" : "Statement. Titanium.", < "florandescription" : "Sssmooth titanium.", --- > "glitchdescription" : "Amazed. This titanium panel is almost flawlessly smooth.", > "florandescription" : "Ssmooth shiny titanium panelss.", > "novakiddescription" : "Some shiny n' smooth titanium panels.", > items\materials\concrete.matitem 8,9c8,10 < "glitchdescription" : "Statement. Concrete.", < "florandescription" : "Con... crete.", --- > "glitchdescription" : "Aqainted. Concrete is a commonly used construction material.", > "florandescription" : "Floran disslike cold concrete.", > "novakiddescription" : "Concrete makes a mighty sturdy block.", items\materials\copperblock.matitem 8c8,10 < "humandescription" : "Reminds me of the inside of the medical centre back home.", --- > "glitchdescription" : "Delighted. I find the gear shape of these blocks pleasing.", > "florandescription" : "Copper blockss like machine gearss.", > "novakiddescription" : "Copper blocks, they look sorta like gears.", items\materials\copperfence.matitem 8c8 < "glitchdescription" : "Statement. A sturdy copper fence.", --- > "glitchdescription" : "Confident. This copper fence is much stronger than wood.", 9a10 > "novakiddescription" : "This here fence is made outta copper.", monsters\dungeon\chicken\behavior.lua 27a28,31 > function shouldDie() > return status.resource("health") <= 0 or capturable.justCaptured > end > monsters\dungeon\po\behavior.lua 49c49 < return self.dead or not status.resourcePositive("health") --- > return self.dead or not status.resourcePositive("health") or capturable.justCaptured monsters\dungeon\robotchicken\behavior.lua 25a26,29 > function shouldDie() > return status.resource("health") <= 0 or capturable.justCaptured > end > monsters\dungeon\swarpion\behavior.lua 55a56,59 > function shouldDie() > return status.resource("health") <= 0 or capturable.justCaptured > end > monsters\generated\swimming\swimmingmonster.lua 74a75,78 > function shouldDie() > return status.resource("health") <= 0 or capturable.justCaptured > end > monsters\generated\swimming\smallfish\smallfish.lua 43a44,47 > function shouldDie() > return status.resource("health") <= 0 or capturable.justCaptured > end > npcs\statuses.config 404d403 < "Feeling suicidal", npcs\story\tonauac.npctype 36,38c36,38 < "Hello traveler, you startled me. Welcome to avianmission1!", < "My name is Tonauac! I'm the caretaker for this temple.", < "We sure don't get a lot of visitors out here.", --- > "Hello, friend! What brings you here? You... Aren't here to rob the tomb, are you?", > "I'm sure I can trust you! My name is Tonauac, and I'm the caretaker for this temple.", > "Oh! I bet you're here to learn everything there is to know about our god Kluex!", 46c46 < "Come on in, it's perfectly safe" --- > "Come on in, it's perfectly safe! ...Mostly safe, at least." 53c53,54 < "These are some old masks. Wow!" --- > "These are some ancient ceremonial masks! They're... Too big and heavy to wear.", > "Did you know Kluex thinks stone masks are really neat? He's also a fan of live sacrifices." 60c61,63 < "This sacrificial table is very old. Very dusty!" --- > "If you look closely, you can just about make out the blood stains on this altar!", > "Say, did you know Kluex built this temple with his bare hands?", > "It was such a great miracle that 5000 nearby slave workers dropped dead at the sight!" 67c70,71 < "This old statue depicts a brave avian warrior. Neat!" --- > "This is a statue of an old Avian warrior! He might have even used these spears once!", > "...Obviously he can't use them anymore, because he's, um, dead." 74,76c78,80 < "Well, that concludes the tour.", < "Feel free to take a look around, but don't wander off too far!", < "Who knows what kinds of ancient bird shaped defence systems linger in these halls." --- > "Well, that concludes the tour! Thanks for coming all this way.", > "Feel free to take a look around, but, um, don't wander off too far!", > "The rest of the temple is too unsafe for public viewings, after all..." 83,85c87,89 < "Oh, there you are.", < "You've diverted from the tour quite a bit. You're really not supposed to be here!", < "Neither am I in fact. Let's find a way back." --- > "Oh, there you are! Did you get lost?", > "You've, uh, diverted from the tour quite a bit. You're really not supposed to be here!", > "...Neither am I in fact. Let's find a way back before anyone notices." 92,93c96,97 < "This door is inappropriately sized for a big boned bird like me", < "You check this way and I'll try to find a more fitting exit" --- > "This door is a little too small for me. Don't worry, this happens a lot...", > "You should check through there, and I'll try and find another exit on this side." 100,103c104,107 < "I know what you're up to, this wasn't a tour at all. You want to spread the word of Kluex.", < "Here take this shiny object, it'll help.", < "I'll come with you, not a good tour guide anyway, I can spread the word better when there are people to talk to", < "Come on, I found an exit beamer upper over there" --- > "...I know what you're up to! You weren't here for the tour at all!", > "...You're trying to spread the good word of Kluex! You should take this artifact, then.", > "The Stargazers say these Avolite crystals contain fragments of Kluex's will.", > "...Please, let me come with you! I want to help spread Kluex's love too!" 110c114 < "Here it is. It looks old, I wonder where it will take us. Exciting!" --- > "This teleporter can take us out. Who, uh, put this here? Oh well, it's helpful!" objects\biome\foundry\foundrybed\foundrybed.object 5c5 < "description" : "A foundry bed.", --- > "description" : "A bed with a large lamp over it, producing considerable heat.", 12,20c12,20 < /* todo < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription" : "-todo-", < */ --- > > "apexDescription" : "A lamp heated bed. As if it wasn't hot enough in a foundry.", > "avianDescription" : "Some sort of artificially lit bed, lying here feels like I'm out in the full sun.", > "floranDescription" : "Light up bed iss hot, feels nice on Floran ssskin.", > "glitchDescription" : "Jealous. A heated bed does not have the same effect on Glitch as on organic beings.", > "humanDescription" : "It's like a sunbed, but it gets pretty hot lying there.", > "hylotlDescription" : "A heated bed. Foundry workers must thrive in heat, to endure this would be torture for a Hylotl.", > "novakidDescription" : "A lamp heated bed. Like lying under a sun at high noon.", > objects\biome\foundry\foundrybellow\foundrybellow.object 7,8c7,8 < "description" : "Foundry bellow.", < "shortdescription" : "Foundry Bellow", --- > "description" : "An industrial sized set of bellows from a foundry.", > "shortdescription" : "Foundry Bellows", 10,18c10,18 < /* todo < "apexDescription" : "Foundry bellow.", < "avianDescription" : "Foundry bellow.", < "floranDescription" : "Foundry bellow.", < "glitchDescription" : "Foundry bellow.", < "humanDescription" : "Foundry bellow.", < "hylotlDescription" : "Foundry bellow.", < "novakidDescription" : "Foundry bellow.", < */ --- > > "apexDescription" : "Industrial sized bellows.", > "avianDescription" : "A huge set of bellows.", > "floranDescription" : "Great big bellowsss.", > "glitchDescription" : "Surprised. Never have I seen bellows so large.", > "humanDescription" : "These must be pair of foundry bellows.", > "hylotlDescription" : "Large, unsightly machinery.", > "novakidDescription" : "Big bellows.", > objects\biome\foundry\foundrybutton\foundrybutton.object 5c5 < "description" : "-todo-", --- > "description" : "A button fit for purpose in a foundry.", 10,18c10,18 < /* todo < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription" : "-todo-", < */ --- > > "apexDescription" : "A button for a foundry machine.", > "avianDescription" : "A button for something around here.", > "floranDescription" : "Machine button.", > "glitchDescription" : "Disinterested. A button for a piece of foundry machinery.", > "humanDescription" : "What does this button do? Only one way to find out!", > "hylotlDescription" : "A worn and weathered machinery button.", > "novakidDescription" : "I'd bet this button saw a lotta use in its day.", > objects\biome\foundry\foundrychair\foundrychair.object 5c5 < "description" : "-todo-", --- > "description" : "A metallic chair from a foundry.", 11,19c11,19 < /* todo < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription" : "-todo-", < */ --- > > "apexDescription" : "This chair looks like part of a foundry machine.", > "avianDescription" : "An industrial looking chair.", > "floranDescription" : "Machine chair.", > "glitchDescription" : "Happy. A delightful chair.", > "humanDescription" : "This looks like it could be cold to sit on without a cushion.", > "hylotlDescription" : "This chair looks like reclaimed machinery.", > "novakidDescription" : "How about that! A chair that looks like machinery!", > objects\biome\foundry\foundryconsole\foundryconsole.object 5c5 < "description" : "Lots of tempting levers that should probably be left alone.-todo-", --- > "description" : "A console with interesting looking levels and lightbulbs.", 11,19c11,17 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription" : "-todo-", < */ --- > "apexDescription" : "A rudimentary looking console.", > "avianDescription" : "What do all these lightbulbs do?", > "floranDescription" : "Flashy bulbsss and buttonss.", > "glitchDescription" : "Fascinated. I would be interested to find out what these bulbs signify.", > "humanDescription" : "This console's got all the bells and whistles imaginable.", > "hylotlDescription" : "A rudimentary piece of technology.", > "novakidDescription" : "A flashy lookin' console.", objects\biome\foundry\foundrydoor\foundrydoor.object 5c5 < "description" : "-todo-", --- > "description" : "A heavy metal door used in foundries.", 11,19c11,19 < /* todo < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription" : "-todo-", < */ --- > > "apexDescription" : "A heavy foundry door.", > "avianDescription" : "I can barely push this door open, it's so heavy.", > "floranDescription" : "Floran ssslam door to make big ssound echo through empty foundry.", > "glitchDescription" : "Mischievous. I wonder if I could make a loud echo by slamming this heavy door...", > "humanDescription" : "A door with a porthole!", > "hylotlDescription" : "A door similar to those found under the ocean, heavy enough to be watertight.", > "novakidDescription" : "A heavy door with a handy porthole.", > objects\crafting\pethealingstation\pethealingstation.lua 13a14 > healedParams.podItemHasPriority = true objects\floran\plantdoor2\plantdoor2.object 8c8 < "description" : "A wooden gate designed to hold Floran prisoners.", --- > "description" : "A retractable gate, made from a light wood.", 13,15c13,15 < "avianDescription" : "A prison gate of Floran design.", < "floranDescription" : "Floran prisson gatess are sstrong.", < "glitchDescription" : "Interested. The structure of these wood supports makes this gate very sturdy.", --- > "avianDescription" : "Despite the fact that it is made of light wood, this is quite a sturdy gate.", > "floranDescription" : "Wood ssstrongest ssstuff because it comesss from plantsss.", > "glitchDescription" : "Intrigued. This wooden gate is remarkably sturdy.", 17,18c17,18 < "hylotlDescription" : "This prison gate design uses function over form.", < "novakidDescription" : "This gate is made from wood, I wonder if I could burn through the bars.", --- > "hylotlDescription" : "This gate design uses function over form.", > "novakidDescription" : "This gate is made from wood, but I reckon it ain't easy to break.", objects\fossils\dirtyfossils\dirtyfossil.lua 15c15 < message.setHandler("win", function(_, _, fossilName) --- > message.setHandler("create", function(_, _, itemName) 17,20c17,18 < world.logInfo("creating %s",self.fossilName) < createFossil(fossilName) < world.logInfo("Smash") < object.smash(false) --- > world.logInfo("creating %s",self.itemName) > createItem(itemName) 23,24c21,22 < message.setHandler("lose", function(_, _) < object.smash(true) --- > message.setHandler("smash", function(_, _, boobyPrize) > object.smash(boobyPrize) 52c50 < function createFossil(fossilName) --- > function createItem(fossilName) objects\fossils\dirtyfossils\dirtyfossil1.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > 60c64,65 < {"texturePath" : "/tiles/materials/bonematerial.png", "variants" : 9}] --- > {"texturePath" : "/tiles/materials/bonematerial.png", "variants" : 9}, > {"texturePath" : "/interface/games/fossilgame/treasuretile.png", "variants" : 5}] objects\fossils\dirtyfossils\dirtyfossil2.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > objects\fossils\dirtyfossils\dirtyfossil3.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > objects\fossils\dirtyfossils\dirtyfossil4.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > objects\fossils\dirtyfossils\dirtyfossil5.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > objects\fossils\dirtyfossils\dirtyfossil6.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > objects\fossils\dirtyfossils\dirtyfossil7.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > objects\fossils\dirtyfossils\dirtyfossil8.object 57a58,61 > "extraTreasureChance" : 0.1, > "extraTreasurepool" : "fossilextratreasure", > "ExtraTreasureLevel" : 1, > objects\fossils\displaystands\fossildisplay.lua 9d8 < 12d10 < 14c12,14 < world.logInfo("fossilDisplay Init: fossilList=%s complete=%s",self.fossilList,self.isComplete) --- > --world.logInfo("fossilDisplay Init: fossilList=%s complete=%s",self.fossilList,self.isComplete) > > self.fossilSetName = nil 24c24 < world.logInfo("Contents changed") --- > --world.logInfo("Contents changed") 33c33 < world.logInfo("update") --- > --world.logInfo("update") 50c50 < world.logInfo("Checking Object=%s",item.name) --- > --world.logInfo("Checking Object=%s",item.name) 56,58c56,59 < if (self.fossilSetName~=nil and self.fossilSetName~=fossilSetName) < or (world.containerSize(entity.id()) < fossilSetCount) then < ejectItemFromSlot(i) --- > if self.fossilSetName then > if self.fossilSetName~=fossilSetName then > ejectItemFromSlot(i) > end 60c61,65 < self.fossilSetName=fossilSetName --- > if self.slotCount==fossilSetCount then > self.fossilSetName=fossilSetName > else > ejectItemFromSlot(i) > end 75c80 < world.logInfo("Ejecting Object=%s",item.name) --- > --world.logInfo("Ejecting Object=%s",item.name) 90c95 < world.logInfo("Sorting Object=%s",fossil.name) --- > --world.logInfo("Sorting Object=%s",fossil.name) 105a111 > self.fossilSetName=nil 115,117c121,122 < if (self.fossilList) then < for i=1,self.slotCount do < local tagName=string.format("fossil%s",i) --- > for i=1,self.slotCount do > local tagName=string.format("fossil%s",i) 119,120c124 < local fossil = self.fossilList[i] < if (fossil) then --- > if (self.fossilList and self.fossilList[i]) then 122,123c126 < local displayImage=root.itemConfig(fossil).config.displayImage < animator.setGlobalTag(tagName, displayImage) --- > local fossil = self.fossilList[i] 125c128,129 < world.logInfo("Displaying %s in slot %s",displayImage,tagName) --- > local displayImage=root.itemConfig(fossil).config.displayImage > animator.setGlobalTag(tagName, displayImage) 127,132c131 < local transformName=string.format("fossil%stransform",i) < if (animator.hasTransformationGroup(transformName)) then < local displayOffset=root.itemConfig(fossil).config.displayoffset < animator.resetTransformationGroup(transformName) < animator.translateTransformationGroup(transformName,displayOffset) < end --- > --world.logInfo("Displaying %s in slot %s",displayImage,tagName) 134,137c133,137 < setCount=root.itemConfig(fossil).config.setCount < count=count+1 < else < animator.setGlobalTag(tagName, "") --- > local transformName=string.format("fossil%stransform",i) > if (animator.hasTransformationGroup(transformName)) then > local displayOffset=root.itemConfig(fossil).config.displayoffset > animator.resetTransformationGroup(transformName) > animator.translateTransformationGroup(transformName,displayOffset) 138a139,143 > > setCount=root.itemConfig(fossil).config.setCount > count=count+1 > else > animator.setGlobalTag(tagName, "") 145a151 > self.fossilList=nil 154c160 < world.logInfo("Completed fossil") --- > --world.logInfo("Completed fossil") 193,195d198 < < --consume items in slot. < world.containerConsumeAt(entity.id(),i-1,item.count) 196a200,203 > > --consume items in slot. > world.containerConsumeAt(entity.id(),i-1,item.count) > objects\fossils\displaystands\fossildisplay5\fossildisplay5.animation 203,204c203,204 < "burstCount" : 10, < "offsetRegion" : [0, -2, 17, 10], --- > "burstCount" : 50, > "offsetRegion" : [-8, -2, 8, 10], objects\generic\futurelight\futurelight.object 13c13 < "floranDescription" : "Floran like light. Light make shadow, Floran creep in shadow.", --- > "floranDescription" : "Floran likess light. Light makess shadow, Floran creep in shadow.", 16a17 > "novakidDescription" : "A watertight light fitting.", objects\generic\hazardmicroscope\hazardmicroscope.object 7c7 < "description" : "A large Microscope, designed for observing bacterial hazards.", --- > "description" : "A large microscope, designed for observing potentially hazardous bacteria.", 11c11 < "apexDescription" : "A Microscope - A classic universal tool for study and research.", --- > "apexDescription" : "A microscope - A classic universal tool for study and research.", 13,16c13,17 < "floranDescription" : "Floran can look at plantsss very close!", < "glitchDescription" : "Educational. Organic materials are curious when you look very close.", < "humanDescription" : "A Microscope! I want to see creepy small things!", < "hylotlDescription" : "This object appears to observe things on a very small scale.", --- > "floranDescription" : "Floran can look at plantsss very close with thisss!", > "glitchDescription" : "Fascinated. Organic materials are curious when you look very close.", > "humanDescription" : "A microscope! Small things can turn out to be creepy up close.", > "hylotlDescription" : "This device can be used to observe things on a very small scale.", > "novakidDescription" : "Ain't got time to be lookin' down microscopes.", objects\generic\invisiblelight\invisiblelight.object 7a8 > "scannable" : false, objects\generic\invisiblesparker\invisiblesparker.object 10a11 > "scannable" : false, objects\generic\kennel\kennel.object 15a16 > "novakidDescription" : "A pet kennel! A lil on the crooked side but who's complainin'?", objects\generic\lightbulb\lightbulb.object 5c5 < "description" : "A bare lightbulb hanging from a metal rod in the ceiling. Charming.", --- > "description" : "A bare lightbulb hanging from a metal rod in the ceiling.", 12,14c12,15 < "glitchDescription" : "Kindness. I wish to donate a lampshade.", < "humanDescription" : "A depressing light.", < "hylotlDescription" : "Undecorated.", --- > "glitchDescription" : "Compassionate. I wish to donate this lightbulb a lampshade.", > "humanDescription" : "A depressing fixture.", > "hylotlDescription" : "An undecorated light.", > "novakidDescription" : "A lone lightbulb.", objects\generic\lightbulb\lightbulb2.object 5c5 < "description" : "A bare lightbulb hanging from a metal rod in the ceiling. Charming.", --- > "description" : "A bare lightbulb hanging from a metal rod in the ceiling.", 12,14c12,15 < "glitchDescription" : "Kindness. I wish to donate a lampshade.", < "humanDescription" : "A depressing light.", < "hylotlDescription" : "Undecorated.", --- > "glitchDescription" : "Compassionate. I wish to donate this lightbulb a lampshade.", > "humanDescription" : "A depressing fixture.", > "hylotlDescription" : "An undecorated light.", > "novakidDescription" : "A lone lightbulb.", objects\generic\locker1\locker1.object 10c10 < "description" : "Fond memories of being trapped inside after class.", --- > "description" : "A locker with a tall metal door.", 17c17 < "glitchDescription" : "Measure. A small amount of storage.", --- > "glitchDescription" : "Neutral. A small amount of wall storage.", 19a20 > "novakidDescription" : "This locker doesn't actually lock.", objects\generic\locker2\locker2.object 10c10 < "description" : "No doubt once contained love letters, bad apples and books never read.", --- > "description" : "A locker with a wide metal door.", 17c17 < "glitchDescription" : "Measure. A small amount of storage.", --- > "glitchDescription" : "Neutral. A small amount of wall storage.", 19a20 > "novakidDescription" : "This locker doesn't actually lock.", objects\generic\rusticoven\rusticoven.object 20a21 > "novakidDescription" : "Well if that ain't the cutest little oven I ever saw!", objects\generic\sapling\sapling.object 1,46c1,47 < { < "objectName" : "sapling", < "colonyTags" : [], < "rarity" : "Common", < "category" : "sapling", < "description" : "A sapling. From simple roots a tree will grow.", < "shortdescription" : "Sapling", < "objectType" : "farmable", < "printable" : false, < "retainObjectParametersInItem" : true, < < "apexDescription" : "I can plant this to grow a tree.", < "avianDescription" : "I can grow a tree by planting this sapling.", < "floranDescription" : "Floran plant cute sssapling, grow big bad evil tree!", < "glitchDescription" : "Wonder. Planting this sapling allows me to grow life.", < "humanDescription" : "This sapling will grow into a tree.", < "hylotlDescription" : "Such wondrous life, springing forth from the tiniest shoot. Sigh.", < < "inventoryIcon" : "saplingicon.png", < "orientations" : [ < { < "dualImage" : "sapling.png:..", < "imagePosition" : [0, 0], < < "spaceScan" : 0.1, < "requireTilledAnchors" : false, < "requireSoilAnchors" : true, < "anchors" : [ "bottom" ] < < } < ], < < "stages" : [ < { < "duration" : [150, 180] < }, < { < "duration" : [150, 180] < }, < { < "tree" : true < } < ], < < "consumeSoilMoisture" : false < } --- > { > "objectName" : "sapling", > "colonyTags" : [], > "rarity" : "Common", > "category" : "sapling", > "description" : "A sapling. From simple roots a tree will grow.", > "shortdescription" : "Sapling", > "objectType" : "farmable", > "printable" : false, > "retainObjectParametersInItem" : true, > > "apexDescription" : "I can plant this to grow a tree.", > "avianDescription" : "I can grow a tree by planting this sapling.", > "floranDescription" : "Floran plant cute sssapling, grow big bad evil tree!", > "glitchDescription" : "Wonder. Planting this sapling allows me to grow life.", > "humanDescription" : "This sapling will grow into a tree.", > "hylotlDescription" : "Such wondrous life, springing forth from the tiniest shoot. Sigh.", > "novakidDescription" : "It'll grow into a big tree if I plant it.", > > "inventoryIcon" : "saplingicon.png", > "orientations" : [ > { > "dualImage" : "sapling.png:..", > "imagePosition" : [0, 0], > > "spaceScan" : 0.1, > "requireTilledAnchors" : false, > "requireSoilAnchors" : true, > "anchors" : [ "bottom" ] > > } > ], > > "stages" : [ > { > "duration" : [150, 180] > }, > { > "duration" : [150, 180] > }, > { > "tree" : true > } > ], > > "consumeSoilMoisture" : false > } objects\generic\screenplanet\screenplanet.object 14a15 > "novakidDescription" : "The screen is showin' me information about the planet we're on.", objects\generic\seismograph\seismograph.object 1,32c1,33 < { < "objectName" : "seismograph", < "colonyTags" : ["science"], < "rarity" : "Uncommon", < "category" : "decorative", < "price" : 100, < < "description" : "A device for monitoring seismic activity.", < "shortdescription" : "Seismograph", < "race" : "generic", < < "apexDescription" : "This device can be used for recording earthquakes. A useful tool to some.", < "avianDescription" : "It is drawing a single line, that occasionally moves up and down. Curious.", < "floranDescription" : "Metal thing isss red. Red isss good colour.", < "glitchDescription" : "Informed. This device is monitoring movements in the local area.", < "humanDescription" : "This thing is monitoring seismic activity. Pretty neat.", < "hylotlDescription" : "The constant wave measurement reminds me of the ebb and flow of an ocean.", < < "inventoryIcon" : "seismographicon.png", < "orientations" : [ < { < "imageLayers" : [ { "image" : "seismograph.png:.", "fullbright" : true }, { "image" : "seismographlit.png:." } ], < "imagePosition" : [-16, -16], < "frames" : 12, < "animationCycle" : 1.5, < < "spaceScan" : 0.1, < "anchors" : [ "background" ] < < } < ] < } --- > { > "objectName" : "seismograph", > "colonyTags" : ["science"], > "rarity" : "Uncommon", > "category" : "decorative", > "price" : 100, > > "description" : "A device for monitoring seismic activity.", > "shortdescription" : "Seismograph", > "race" : "generic", > > "apexDescription" : "This device can be used for recording earthquakes. A useful tool to some.", > "avianDescription" : "It is drawing a single line, that occasionally moves up and down. Curious.", > "floranDescription" : "Metal thing isss red. Red isss good colour.", > "glitchDescription" : "Informed. This device is monitoring movements in the local area.", > "humanDescription" : "This thing is monitoring seismic activity. Pretty neat.", > "hylotlDescription" : "The constant wave measurement reminds me of the ebb and flow of an ocean.", > "novakidDescription" : "It's a machine for monitorin' seismic activity.", > > "inventoryIcon" : "seismographicon.png", > "orientations" : [ > { > "imageLayers" : [ { "image" : "seismograph.png:.", "fullbright" : true }, { "image" : "seismographlit.png:." } ], > "imagePosition" : [-16, -16], > "frames" : 12, > "animationCycle" : 1.5, > > "spaceScan" : 0.1, > "anchors" : [ "background" ] > > } > ] > } objects\generic\shiplight\shiplight.object 1,31c1,32 < { < "objectName" : "shiplight", < "colonyTags" : ["light"], < "rarity" : "Common", < "description" : "Strip lighting, for use on a spaceship.", < "shortdescription" : "Ship Light", < "race" : "floran", < < "category" : "light", < "price" : 45, < "lightColor" : [220, 220, 220], < < "apexDescription" : "Lights.", < "avianDescription" : "Lights.", < "floranDescription" : "Bright lights.", < "glitchDescription" : "Statement. Lights.", < "humanDescription" : "Lights.", < "hylotlDescription" : "Lights.", < < "inventoryIcon" : "shiplight.png", < "orientations" : [ < { < "image" : "shiplight.png:.", < "imagePosition" : [-0, 0], < "frames" : 1, < "animationCycle" : 0.3, < "spaceScan" : 0.1, < "anchors" : [ "background" ] < } < ] < } --- > { > "objectName" : "shiplight", > "colonyTags" : ["light"], > "rarity" : "Common", > "description" : "Strip lighting, for use on a spaceship.", > "shortdescription" : "Ship Light", > "race" : "floran", > > "category" : "light", > "price" : 45, > "lightColor" : [220, 220, 220], > > "apexDescription" : "Lights.", > "avianDescription" : "Lights.", > "floranDescription" : "Bright lightss.", > "glitchDescription" : "Observative. Lights.", > "humanDescription" : "Lights.", > "hylotlDescription" : "Lights.", > "novakidDescription" : "Just some lights.", > > "inventoryIcon" : "shiplight.png", > "orientations" : [ > { > "image" : "shiplight.png:.", > "imagePosition" : [-0, 0], > "frames" : 1, > "animationCycle" : 0.3, > "spaceScan" : 0.1, > "anchors" : [ "background" ] > } > ] > } objects\generic\sleepingbag\sleepingbag.object 1,44c1,45 < { < "objectName" : "sleepingbag", < "colonyTags" : ["human","explorer"], < "rarity" : "Common", < "description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", < "shortdescription" : "Sleeping Bag", < "race" : "generic", < "category" : "furniture", < "price" : 105, < < "apexDescription" : "Rebel Apex spend many nights sleeping in these.", < "avianDescription" : "Sleeping here would be uncomfortable on the feathers.", < "floranDescription" : "Floran does not like sssleeping in bag.", < "glitchDescription" : "Sarcasm. Oh how wonderful.", < "humanDescription" : "A sleeping bag. Good protection against the elements in a pinch.", < "hylotlDescription" : "Do these work underwater?", < < "objectType" : "loungeable", < "sitFlipDirection" : true, < "sitPosition" : [14, 5], < "sitOrientation" : "lay", < "sitAngle" : -90, < "sitCoverImage" : "/objects/generic/sleepingbag/sleepingbagcover.png", < "sitEmote" : "sleep", < "sitStatusEffects" : [ < "bed1" < ], < "sitEffectEmitters" : [ "sleepbubbles" ], < < "inventoryIcon" : "sleepingbagicon.png", < "orientations" : [ < { < "dualImage" : "sleepingbag.png:", < < "imagePosition" : [-24, 0], < "frames" : 1, < "animationCycle" : 1.0, < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < < } < ] < } --- > { > "objectName" : "sleepingbag", > "colonyTags" : ["human","explorer"], > "rarity" : "Common", > "description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "shortdescription" : "Sleeping Bag", > "race" : "generic", > "category" : "furniture", > "price" : 105, > > "apexDescription" : "Rebel Apex spend many nights sleeping in these.", > "avianDescription" : "Sleeping here would be uncomfortable on the feathers.", > "floranDescription" : "Floran does not like sssleeping in bag.", > "glitchDescription" : "Sarcasm. Oh how wonderful.", > "humanDescription" : "A sleeping bag. Good protection against the elements in a pinch.", > "hylotlDescription" : "Do these work underwater?", > "novakidDescription" : "It won't get me the best night's sleep, but it'll do in a pinch.", > > "objectType" : "loungeable", > "sitFlipDirection" : true, > "sitPosition" : [14, 5], > "sitOrientation" : "lay", > "sitAngle" : -90, > "sitCoverImage" : "/objects/generic/sleepingbag/sleepingbagcover.png", > "sitEmote" : "sleep", > "sitStatusEffects" : [ > "bed1" > ], > "sitEffectEmitters" : [ "sleepbubbles" ], > > "inventoryIcon" : "sleepingbagicon.png", > "orientations" : [ > { > "dualImage" : "sleepingbag.png:", > > "imagePosition" : [-24, 0], > "frames" : 1, > "animationCycle" : 1.0, > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > > } > ] > } objects\generic\slidingdoor\slidingdoor.object 17a18 > "novakidDescription" : "It's a slidin' door.", objects\generic\smashcrystal\smashcrystal.object 1,38c1,39 < { < "objectName" : "smashcrystal", < "colonyTags" : ["misc"], < "rarity" : "Common", < "category" : "pot", < "price" : 40, < "printable" : false, < < "description" : "A smashable crystal. Time to get breaking bad.", < "shortdescription" : "Smashable Crystal", < "race" : "generic", < < "apexDescription" : "I must smash this crystal!", < "avianDescription" : "Smashing this crystal will be satisfying.", < "floranDescription" : "Sssmashy ssshiny!", < "glitchDescription" : "Statement. Smashing this crystal will produce great wealth.", < "humanDescription" : "Time to make some crystal mess.", < "hylotlDescription" : "Blue crystals. Pretty. I hope I don't smash them!", < < "inventoryIcon" : "smashcrystalicon.png", < "orientations" : [ < { < "image" : "smashcrystal.png:.", < "imagePosition" : [0, 0], < "frames" : 4, < "animationCycle" : 0.5, < < "spaceScan" : 0.1, < "anchors" : [ "background" ] < < } < ], < "smashable" : true, < "smashSounds" : [ "/sfx/objects/capsule_break1.ogg", "/sfx/objects/capsule_break2.ogg", "/sfx/objects/capsule_break3.ogg" ], < "smashParticles" : [ { "count" : 5, "particle" : "crystalshard" } ], < "smashDropPool" : "smashMoney", < "breakDropPool" : "smashMoney" < } --- > { > "objectName" : "smashcrystal", > "colonyTags" : ["misc"], > "rarity" : "Common", > "category" : "pot", > "price" : 40, > "printable" : false, > > "description" : "A smashable crystal. Time to get breaking bad.", > "shortdescription" : "Smashable Crystal", > "race" : "generic", > > "apexDescription" : "I must smash this crystal!", > "avianDescription" : "Smashing this crystal will be satisfying.", > "floranDescription" : "Sssmashy ssshiny!", > "glitchDescription" : "Statement. Smashing this crystal will produce great wealth.", > "humanDescription" : "Time to make some crystal mess.", > "hylotlDescription" : "Blue crystals. Pretty. I hope I don't smash them!", > "novakidDescription" : "I just got the strongest urge to smash this thing.", > > "inventoryIcon" : "smashcrystalicon.png", > "orientations" : [ > { > "image" : "smashcrystal.png:.", > "imagePosition" : [0, 0], > "frames" : 4, > "animationCycle" : 0.5, > > "spaceScan" : 0.1, > "anchors" : [ "background" ] > > } > ], > "smashable" : true, > "smashSounds" : [ "/sfx/objects/capsule_break1.ogg", "/sfx/objects/capsule_break2.ogg", "/sfx/objects/capsule_break3.ogg" ], > "smashParticles" : [ { "count" : 5, "particle" : "crystalshard" } ], > "smashDropPool" : "smashMoney", > "breakDropPool" : "smashMoney" > } objects\generic\sprinkler\sprinkler.object 1,89c1,88 < { < "objectName" : "sprinkler", < "colonyTags" : ["farming"], < "printable" : false, < "rarity" : "Common", < "description" : "An automated soil watering solution.", < "shortdescription" : "Sprinkler", < "race" : "avian", < /* todo < "apexDescription" : "A flame trap, definitely one to avoid.", < "avianDescription" : "Ouch! Flames and feathers don't mix!", < "floranDescription" : "Fire trap is Floran's worssst enemy!", < "glitchDescription" : "Observant. It's just a little flame trap, nothing that can't be overcome.", < "humanDescription" : "A trusty, reliable flame trap.", < "hylotlDescription" : "The swift warrior fears not the flame.", < "novakidDescription" : "Simple, yet deadly. My favourite kind.", < */ < < "category" : "tool", < "price" : 200, < < "inventoryIcon" : "sprinklericon.png", < "orientations" : [ < { < "image" : "sprinkler.png:.", < "imagePosition" : [-8, 0], < "direction" : "left", < "flipImages" : true, < < "animationPosition" : [-8, 0], < "animationParts" : { < "bg" : "sprinkler.png", < "fg" : "sprinkler.png" < }, < < "projectileDirection" : [0, 1], < "projectilePosition" : [0, 0.7], < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < }, < { < "image" : "sprinkler.png:.", < "imagePosition" : [0, 0], < "direction" : "right", < < "animationPosition" : [0, 0], < "animationParts" : { < "bg" : "sprinkler.png", < "fg" : "sprinkler.png" < }, < < "projectileDirection" : [0, 1], < "projectilePosition" : [1, 0.7], < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < } < ], < < "scripts" : [ "/objects/wired/projectiletrap/projectiletrap.lua" ], < "scriptDelta" : 2, < < "animation" : "/objects/wired/projectiletrap/projectiletrap.animation", < "animationCustom" : { < "sounds" : { < "shoot" : [ ], < "on" : [ "/sfx/objects/flametrap_on.ogg" ], < "off" : [ "/sfx/objects/flametrap_off.ogg" ] < } < }, < < "soundEffect" : "/sfx/objects/flametrap_loop.ogg", // this is a thing that also works < < "inboundNodes" : [ [0, 0] ], < < "inactiveLightColor" : [0, 0, 0], // light color to emit when the object is 'off' < "activeLightColor" : [0, 0, 0], // light color to emit when the object is 'on' < < "fireTime" : 0.3, // rate of fire < "fireTimeVariance" : 0.1, // variation in rate of fire < "inaccuracy" : 0.5, < "projectile" : "watersprinkledroplet", // name of projectile (required) < "projectileConfig" : { // extra configuration overrides for projectile < "damageTeam" : { "type" : "indiscriminate" }, < "power" : 0, < "speed" : 25 < } < } --- > { > "objectName" : "sprinkler", > "colonyTags" : ["farming"], > "printable" : false, > "rarity" : "Common", > "description" : "An automated soil watering solution.", > "shortdescription" : "Sprinkler", > "race" : "avian", > > "apexDescription" : "A sprinkler. Quite a clever way to water crops.", > "avianDescription" : "It's a machine that waters crops automatically.", > "floranDescription" : "Waters cropss..", > "glitchDescription" : "Unimpressed. It is an automated soil watering solution. I enjoy watering my plants by hand.", > "humanDescription" : "It's a sprinkler for watering crops! Running through sprinklers makes me feel nostalgic.", > "hylotlDescription" : "It is used to water crops. Simple, but rather clever.", > "novakidDescription" : "Waterin' crops made simple.", > > "category" : "tool", > "price" : 200, > > "inventoryIcon" : "sprinklericon.png", > "orientations" : [ > { > "image" : "sprinkler.png:.", > "imagePosition" : [-8, 0], > "direction" : "left", > "flipImages" : true, > > "animationPosition" : [-8, 0], > "animationParts" : { > "bg" : "sprinkler.png", > "fg" : "sprinkler.png" > }, > > "projectileDirection" : [0, 1], > "projectilePosition" : [0, 0.7], > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > }, > { > "image" : "sprinkler.png:.", > "imagePosition" : [0, 0], > "direction" : "right", > > "animationPosition" : [0, 0], > "animationParts" : { > "bg" : "sprinkler.png", > "fg" : "sprinkler.png" > }, > > "projectileDirection" : [0, 1], > "projectilePosition" : [1, 0.7], > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > } > ], > > "scripts" : [ "/objects/wired/projectiletrap/projectiletrap.lua" ], > "scriptDelta" : 2, > > "animation" : "/objects/wired/projectiletrap/projectiletrap.animation", > "animationCustom" : { > "sounds" : { > "shoot" : [ ], > "on" : [ "/sfx/objects/flametrap_on.ogg" ], > "off" : [ "/sfx/objects/flametrap_off.ogg" ] > } > }, > > "soundEffect" : "/sfx/objects/flametrap_loop.ogg", // this is a thing that also works > > "inboundNodes" : [ [0, 0] ], > > "inactiveLightColor" : [0, 0, 0], // light color to emit when the object is 'off' > "activeLightColor" : [0, 0, 0], // light color to emit when the object is 'on' > > "fireTime" : 0.3, // rate of fire > "fireTimeVariance" : 0.1, // variation in rate of fire > "inaccuracy" : 0.5, > "projectile" : "watersprinkledroplet", // name of projectile (required) > "projectileConfig" : { // extra configuration overrides for projectile > "damageTeam" : { "type" : "indiscriminate" }, > "power" : 0, > "speed" : 25 > } > } objects\generic\statuspod\statuspod.object 1,123c1,124 < { < "objectName" : "statuspod", < "colonyTags" : ["misc"], < "rarity" : "Common", < "printable" : false, < < "category" : "other", < "price" : 500, < "description" : "A status pod. Take your chances...", < "shortdescription" : "Status Pod", < "race" : "generic", < < "apexDescription" : "A status pod. Will I be lucky?", < "avianDescription" : "A status pod. I hope I get lucky.", < "floranDescription" : "Floran trigger little pot with reckless abandon.", < "glitchDescription" : "Analysis. This status pod's effects are unable to be analysed.", < "humanDescription" : "Ooh, a lucky dip!", < "hylotlDescription" : "I bet something bad happens.", < < "inventoryIcon" : "statuspodicon.png", < "lightColor" : [120, 120, 120], < < "orientations" : [ < { < "dualImage" : "statuspod.png:default", < "imagePosition" : [-8, 0], < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < } < ], < < "scripts" : [ "/scripts/statusProjectileObject.lua" ], < "scriptDelta" : 10, < "activationTime" : 900, < "animation" : "/objects/generic/statuspod/statuspod.animation", < "animationParts" : { < "pod" : "statuspod.png" < }, < "animationPosition" : [-8, 0], < < "inboundNodes" : [ ], < "outboundNodes" : [ ], < < "smashOnBreak" : true, < < "health" : 10, < < "projectileOptions" : [ < { < "projectileType" : "fasthealingstatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "healingstatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "burningstatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "poisonstatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "moneystatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "bombstatusprojectile", < "projectileParams" : { } < }, < { < "levelRange" : [1, 10], < "projectileType" : "copperbombstatusprojectile", < "projectileParams" : { } < }, < { < "levelRange" : [3, 10], < "projectileType" : "silverbombstatusprojectile", < "projectileParams" : { } < }, < { < "levelRange" : [5, 10], < "projectileType" : "goldbombstatusprojectile", < "projectileParams" : { } < }, < { < "levelRange" : [5, 10], < "projectileType" : "platinumbombstatusprojectile", < "projectileParams" : { } < }, < { < "levelRange" : [5, 10], < "projectileType" : "diamondbombstatusprojectile", < "projectileParams" : { } < } < // need to be better! < /* < { < "projectileType" : "runstatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "glowstatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "ragestatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "lowgravstatusprojectile", < "projectileParams" : { } < }, < { < "projectileType" : "bouncystatusprojectile", < "projectileParams" : { } < } < */ < ] < } --- > { > "objectName" : "statuspod", > "colonyTags" : ["misc"], > "rarity" : "Common", > "printable" : false, > > "category" : "other", > "price" : 500, > "description" : "A status pod. Take your chances...", > "shortdescription" : "Status Pod", > "race" : "generic", > > "apexDescription" : "A status pod. Will I be lucky?", > "avianDescription" : "A status pod. I hope I get lucky.", > "floranDescription" : "Floran trigger little pod with recklessss abandon.", > "glitchDescription" : "Cautious. This status pod's effects are unable to be analysed.", > "humanDescription" : "It's a status pod! Should I tempt fate by triggering it?", > "hylotlDescription" : "I bet something bad happens.", > "novakidDescription" : "A status pod! I sure hope today's my lucky day!", > > "inventoryIcon" : "statuspodicon.png", > "lightColor" : [120, 120, 120], > > "orientations" : [ > { > "dualImage" : "statuspod.png:default", > "imagePosition" : [-8, 0], > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > } > ], > > "scripts" : [ "/scripts/statusProjectileObject.lua" ], > "scriptDelta" : 10, > "activationTime" : 900, > "animation" : "/objects/generic/statuspod/statuspod.animation", > "animationParts" : { > "pod" : "statuspod.png" > }, > "animationPosition" : [-8, 0], > > "inboundNodes" : [ ], > "outboundNodes" : [ ], > > "smashOnBreak" : true, > > "health" : 10, > > "projectileOptions" : [ > { > "projectileType" : "fasthealingstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "healingstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "burningstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "poisonstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "moneystatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "bombstatusprojectile", > "projectileParams" : { } > }, > { > "levelRange" : [1, 10], > "projectileType" : "copperbombstatusprojectile", > "projectileParams" : { } > }, > { > "levelRange" : [3, 10], > "projectileType" : "silverbombstatusprojectile", > "projectileParams" : { } > }, > { > "levelRange" : [5, 10], > "projectileType" : "goldbombstatusprojectile", > "projectileParams" : { } > }, > { > "levelRange" : [5, 10], > "projectileType" : "platinumbombstatusprojectile", > "projectileParams" : { } > }, > { > "levelRange" : [5, 10], > "projectileType" : "diamondbombstatusprojectile", > "projectileParams" : { } > } > // need to be better! > /* > { > "projectileType" : "runstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "glowstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "ragestatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "lowgravstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "bouncystatusprojectile", > "projectileParams" : { } > } > */ > ] > } objects\generic\stepladder\stepladder.object 1,43c1,44 < { < "objectName" : "stepladder", < "colonyTags" : ["human"], < "rarity" : "Common", < "category" : "decorative", < "price" : 60, < "description" : "A stepladder.", < "shortdescription" : "Stepladder", < "race" : "generic", < < "apexDescription" : "A stepladder. For when you need to be slightly higher.", < "avianDescription" : "A rather unremarkable stepladder.", < "floranDescription" : "tinyyy ladder.", < "glitchDescription" : "Curious. It's a rather short ladder.", < "humanDescription" : "One small step for man..", < "hylotlDescription" : "A stepladder. Not much else to say about it.", < < "inventoryIcon" : "stepladdericon.png", < "orientations" : [ < { < "image" : "stepladder.png:", < "imagePosition" : [-10, 0], < "direction" : "left", < "flipImages" : true, < < "spaces" : [ [-1, 0], [0,0], [1,0], [-1, 1], [0,1], [1,1], [-1, 2], [0,2], [1, 2] ], < "anchors" : [ "bottom" ], < "collision" : "platform", < "collisionSpaces" : [ [0,2] ] < }, < { < "image" : "stepladder.png:", < "imagePosition" : [-10, 0], < "direction" : "right", < < "spaces" : [ [-1, 0], [0,0], [1,0], [-1, 1], [0,1], [1,1], [-1, 2], [0,2], [1, 2] ], < "anchors" : [ "bottom" ], < "collision" : "platform", < "collisionSpaces" : [ [0,2] ] < } < ] < < } --- > { > "objectName" : "stepladder", > "colonyTags" : ["human"], > "rarity" : "Common", > "category" : "decorative", > "price" : 60, > "description" : "A stepladder.", > "shortdescription" : "Stepladder", > "race" : "generic", > > "apexDescription" : "A stepladder. For when you need to be slightly higher.", > "avianDescription" : "A rather unremarkable stepladder.", > "floranDescription" : "Tinyyy ladder.", > "glitchDescription" : "Curious. It's a rather short ladder.", > "humanDescription" : "One small step for man..", > "hylotlDescription" : "A stepladder. Not much else to say about it.", > "novakidDescription" : "A stepladder! Sometimes ya need a little boost.", > > "inventoryIcon" : "stepladdericon.png", > "orientations" : [ > { > "image" : "stepladder.png:", > "imagePosition" : [-10, 0], > "direction" : "left", > "flipImages" : true, > > "spaces" : [ [-1, 0], [0,0], [1,0], [-1, 1], [0,1], [1,1], [-1, 2], [0,2], [1, 2] ], > "anchors" : [ "bottom" ], > "collision" : "platform", > "collisionSpaces" : [ [0,2] ] > }, > { > "image" : "stepladder.png:", > "imagePosition" : [-10, 0], > "direction" : "right", > > "spaces" : [ [-1, 0], [0,0], [1,0], [-1, 1], [0,1], [1,1], [-1, 2], [0,2], [1, 2] ], > "anchors" : [ "bottom" ], > "collision" : "platform", > "collisionSpaces" : [ [0,2] ] > } > ] > > } objects\generic\stonechest\ironchest.object 1,38c1,39 < { < "objectName" : "ironchest", < "colonyTags" : ["storage"], < "rarity" : "Common", < "objectType" : "container", < "tooltipKind" : "container", < < "category" : "storage", < "price" : 70, < "description" : "A basic iron chest.", < "shortdescription" : "Iron Chest", < "race" : "generic", < < "apexDescription" : "A chest! Let's look inside.", < "avianDescription" : "Often these chests stored valuables. I'm excited!", < "floranDescription" : "Chessst! Floran musst sssearch!", < "glitchDescription" : "Anticipation. What could be inside?", < "humanDescription" : "A chest! Let's open it up.", < "hylotlDescription" : "There is little as exciting as an unopened chest.", < < "inventoryIcon" : "icon.png", < "orientations" : [ < { < "dualImage" : "ironchest.png:.", < "imagePosition" : [-8, 0], < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < } < ], < < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], < "slotCount" : 16, < "uiConfig" : "/interface/chests/chest%slots%.config", < "frameCooldown" : 5, < "autoCloseCooldown" : 3600 < } --- > { > "objectName" : "ironchest", > "colonyTags" : ["storage"], > "rarity" : "Common", > "objectType" : "container", > "tooltipKind" : "container", > > "category" : "storage", > "price" : 70, > "description" : "A basic iron chest.", > "shortdescription" : "Iron Chest", > "race" : "generic", > > "apexDescription" : "A chest! Let's look inside.", > "avianDescription" : "Often these chests stored valuables. I'm excited!", > "floranDescription" : "Chessst! Floran musst sssearch!", > "glitchDescription" : "Anticipation. What could be inside?", > "humanDescription" : "A chest! Let's open it up.", > "hylotlDescription" : "There is little as exciting as an unopened chest.", > "novakidDescription" : "Well I'll be - an unopened chest! Let's take a look.", > > "inventoryIcon" : "icon.png", > "orientations" : [ > { > "dualImage" : "ironchest.png:.", > "imagePosition" : [-8, 0], > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > } > ], > > "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], > "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], > "slotCount" : 16, > "uiConfig" : "/interface/chests/chest%slots%.config", > "frameCooldown" : 5, > "autoCloseCooldown" : 3600 > } objects\generic\symbiotesample\symbiotesample.object 1,25c1,33 < { < "objectName" : "symbiotesample", < "colonyTags" : ["science","odd"], < "rarity" : "Common", < "category" : "decorative", < "price" : 50, < "description" : "A critter in a jar, daydreaming.", < "shortdescription" : "Symbiote in a Jar", < "race" : "apex", < < "inventoryIcon" : "symbiotesampleicon.png", < "orientations" : [ < { < "dualImage" : "symbiotesample.png:", < < "imagePosition" : [-6, 0], < "frames" : 6, < "animationCycle" : 0.5, < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < < } < ] < } --- > { > "objectName" : "symbiotesample", > "colonyTags" : ["science","odd"], > "rarity" : "Common", > "category" : "decorative", > "price" : 50, > "description" : "A critter in a jar, daydreaming.", > "shortdescription" : "Symbiote in a Jar", > "race" : "apex", > > "apexDescription" : "A small Symbiote in a jar. They're frequently used for testing.", > "avianDescription" : "A gelatinous little creature trapped in a jar.", > "floranDescription" : "Ssilly little jelly creature.", > "glitchDescription" : "Sympathetic. This Symbiote looks a little bit... sad.", > "humanDescription" : "Aww, it's just a little Symbiote in a jar. Poor thing.", > "hylotlDescription" : "I doubt this Symbiote enjoys living in a jar anymore than I would.", > "novakidDescription" : "Ooh, dirturchin jelly! Just kiddin'.", > > "inventoryIcon" : "symbiotesampleicon.png", > "orientations" : [ > { > "dualImage" : "symbiotesample.png:", > > "imagePosition" : [-6, 0], > "frames" : 6, > "animationCycle" : 0.5, > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > > } > ] > } objects\generic\teacup1\teacup1.object 15a16 > "novakidDescription" : "Never understood what everyone likes so much 'bout tea.", objects\generic\teapot1\teapot1.object 15a16 > "novakidDescription" : "So you stick some leaves in a pot of water and... drink it?", objects\generic\techchest\techchest.object 19a20 > "novakidDescription" : "Ooh, I bet it's chock full o' valuable technology.", objects\generic\techchest2\techchest2.object 1,39c1,40 < { < "objectName" : "techchest2", < "colonyTags" : ["storage"], < "rarity" : "Common", < "objectType" : "container", < "tooltipKind" : "container", < < "category" : "storage", < "price" : 70, < "description" : "A chest with bright glowing markings throughout.", < "shortdescription" : "High-Tech Chest", < "race" : "generic", < < "apexDescription" : "A high-tech chest. It looks as if it might contain something valuable.", < "avianDescription" : "A chest that looks like it stores something valuable.", < "floranDescription" : "Sspecial sshiny chesst.", < "glitchDescription" : "Non-committal. This chest is of unknown origin.", < "humanDescription" : "Who made this? What's in it?", < "hylotlDescription" : "There is amazing technology built into the chest itself.", < < "inventoryIcon" : "techchest2icon.png", < "orientations" : [ < { < "dualImage" : "techchest2.png:.", < "imagePosition" : [-8, 0], < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < } < < ], < < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], < "slotCount" : 16, < "uiConfig" : "/interface/chests/chest%slots%.config", < "frameCooldown" : 5, < "autoCloseCooldown" : 3600 < } --- > { > "objectName" : "techchest2", > "colonyTags" : ["storage"], > "rarity" : "Common", > "objectType" : "container", > "tooltipKind" : "container", > > "category" : "storage", > "price" : 70, > "description" : "A chest with bright glowing markings throughout.", > "shortdescription" : "High-Tech Chest", > "race" : "generic", > > "apexDescription" : "A high-tech chest. It looks as if it might contain something valuable.", > "avianDescription" : "A chest that looks like it stores something valuable.", > "floranDescription" : "Sspecial sshiny chesst.", > "glitchDescription" : "Non-committal. This chest is of unknown origin.", > "humanDescription" : "Who made this? What's in it?", > "hylotlDescription" : "There is amazing technology built into the chest itself.", > "novakidDescription" : "Ooh, I bet it's chock full o' valuable technology.", > > "inventoryIcon" : "techchest2icon.png", > "orientations" : [ > { > "dualImage" : "techchest2.png:.", > "imagePosition" : [-8, 0], > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > } > > ], > > "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], > "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], > "slotCount" : 16, > "uiConfig" : "/interface/chests/chest%slots%.config", > "frameCooldown" : 5, > "autoCloseCooldown" : 3600 > } objects\generic\tent1\tent1.object 1,45c1,46 < { < "objectName" : "tent1", < "colonyTags" : ["human","explorer"], < "rarity" : "Common", < "description" : "A basic tent. Watch out for spacebears!", < "shortdescription" : "Basic Tent", < "race" : "generic", < "category" : "furniture", < "price" : 65, < < "apexDescription" : "A simple tent. Good enough.", < "avianDescription" : "A temporary house.", < "floranDescription" : "Little green houssse.", < "glitchDescription" : "Irritated. There isn't much room.", < "humanDescription" : "I enjoyed camping as a child.", < "hylotlDescription" : "I am not too proud to sleep in a tent.", < < "objectType" : "loungeable", < "sitFlipDirection" : true, < "sitPosition" : [-8, 7], < "sitOrientation" : "lay", < "sitAngle" : 90, < "sitCoverImage" : "/objects/generic/tent1/tent1lit.png", < "sitEmote" : "sleep", < "sitStatusEffects" : [ < "regeneration1", < "nude", < "intents" < ], < < "inventoryIcon" : "tent1icon.png", < "orientations" : [ < { < "dualImage" : "tent1.png:", < < "imagePosition" : [-24, 0], < "frames" : 1, < "animationCycle" : 1.0, < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < < } < ] < } --- > { > "objectName" : "tent1", > "colonyTags" : ["human","explorer"], > "rarity" : "Common", > "description" : "A basic tent. Watch out for spacebears!", > "shortdescription" : "Basic Tent", > "race" : "generic", > "category" : "furniture", > "price" : 65, > > "apexDescription" : "A simple tent. Good enough.", > "avianDescription" : "A temporary house.", > "floranDescription" : "Little green houssse.", > "glitchDescription" : "Irritated. There isn't much room.", > "humanDescription" : "I enjoyed camping as a child.", > "hylotlDescription" : "I am not too proud to sleep in a tent.", > "novakidDescription" : "It ain't too spacious, but it'll do.", > > "objectType" : "loungeable", > "sitFlipDirection" : true, > "sitPosition" : [-8, 7], > "sitOrientation" : "lay", > "sitAngle" : 90, > "sitCoverImage" : "/objects/generic/tent1/tent1lit.png", > "sitEmote" : "sleep", > "sitStatusEffects" : [ > "regeneration1", > "nude", > "intents" > ], > > "inventoryIcon" : "tent1icon.png", > "orientations" : [ > { > "dualImage" : "tent1.png:", > > "imagePosition" : [-24, 0], > "frames" : 1, > "animationCycle" : 1.0, > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > > } > ] > } objects\generic\tent2\tent2.object 1,45c1,46 < { < "objectName" : "tent2", < "colonyTags" : ["human","explorer"], < "rarity" : "Common", < "description" : "A basic tent. Watch out for spacebears!", < "shortdescription" : "Basic Tent", < "race" : "generic", < "category" : "furniture", < "price" : 65, < < "apexDescription" : "A simple tent. Good enough.", < "avianDescription" : "A temporary house.", < "floranDescription" : "Little green houssse.", < "glitchDescription" : "Irritated. There isn't much room.", < "humanDescription" : "I enjoyed camping as a child.", < "hylotlDescription" : "I am not too proud to sleep in a tent.", < < "objectType" : "loungeable", < "sitFlipDirection" : true, < "sitPosition" : [-6, 7], < "sitOrientation" : "lay", < "sitAngle" : 90, < "sitCoverImage" : "/objects/generic/tent2/tent2lit.png", < "sitEmote" : "sleep", < "sitStatusEffects" : [ < "regeneration1", < "nude", < "intents" < ], < < "inventoryIcon" : "tent2icon.png", < "orientations" : [ < { < "dualImage" : "tent2.png:", < < "imagePosition" : [-24, 0], < "frames" : 1, < "animationCycle" : 1.0, < < "spaceScan" : 0.1, < "anchors" : [ "bottom" ] < < } < ] < } --- > { > "objectName" : "tent2", > "colonyTags" : ["human","explorer"], > "rarity" : "Common", > "description" : "A basic tent. Watch out for spacebears!", > "shortdescription" : "Basic Tent", > "race" : "generic", > "category" : "furniture", > "price" : 65, > > "apexDescription" : "A simple tent. Good enough.", > "avianDescription" : "A temporary house.", > "floranDescription" : "Little green houssse.", > "glitchDescription" : "Irritated. There isn't much room.", > "humanDescription" : "I enjoyed camping as a child.", > "hylotlDescription" : "I am not too proud to sleep in a tent.", > "novakidDescription" : "It ain't too spacious, but it'll do.", > > "objectType" : "loungeable", > "sitFlipDirection" : true, > "sitPosition" : [-6, 7], > "sitOrientation" : "lay", > "sitAngle" : 90, > "sitCoverImage" : "/objects/generic/tent2/tent2lit.png", > "sitEmote" : "sleep", > "sitStatusEffects" : [ > "regeneration1", > "nude", > "intents" > ], > > "inventoryIcon" : "tent2icon.png", > "orientations" : [ > { > "dualImage" : "tent2.png:", > > "imagePosition" : [-24, 0], > "frames" : 1, > "animationCycle" : 1.0, > > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > > } > ] > } objects\spawner\pettether\pettether.lua 55c55 < petSpawner.pods[uuid]:release(true) --- > petSpawner.pods[uuid]:release() 81a82 > item.parameters.podItemHasPriority = true parallax\surface\scorchedcity.parallax 34c34 < "kind" : "oilrig", --- > "kind" : "cityscapescorched6", 41c41,48 < "kind" : "aridback2", --- > "kind" : "cityscapescorched5", > "offset" : [0, 250], > "parallax" : 5, > "directives" : "?brightness=15?saturation=-10", > "fadePercent" : 0.15 > }, > { > "kind" : "cityscapescorched4", 47a55,82 > "kind" : "cityscapescorched1", > "offset" : [0, 150], > "parallax" : 2.8, > "directives" : "?brightness=15?saturation=-10", > "fadePercent" : 0.15 > }, > { > "kind" : "cityscapescorched2", > "offset" : [0, 150], > "parallax" : 3.35, > "directives" : "?brightness=15?saturation=-10", > "fadePercent" : 0.15 > }, > { > "kind" : "cityscapescorched3", > "offset" : [0, 150], > "parallax" : 3.25, > "directives" : "?brightness=15?saturation=-10", > "fadePercent" : 0.15 > }, > { > "kind" : "aridback2", > "offset" : [0, 150], > "parallax" : 3.5, > "directives" : "?brightness=15?saturation=-10", > "fadePercent" : 0.15 > }, > { 51,52c86,87 < "directives" : "?brightness=14.5?saturation=-9", < "fadePercent" : 0.08 --- > "directives" : "?brightness=15?saturation=-10", > "fadePercent" : 0.12 projectiles\unsorted\armornova\armornova.projectile 5a6 > "animationLoops" : false, projectiles\unsorted\armornova\novadamage.projectile 8c8 < "timeToLive" : 0.25, --- > "timeToLive" : 0.75, scripts\augments\collar.lua 2a3,14 > function applyCollar(output, collarConfig) > output:setInstanceValue("currentCollar", collarConfig) > > local tooltipFields = output:instanceValue("tooltipFields", {}) > tooltipFields.collarNameLabel = collarConfig.displayName > tooltipFields.collarIconImage = collarConfig.displayIcon > tooltipFields.noCollarLabel = "" > output:setInstanceValue("tooltipFields", tooltipFields) > > return output:descriptor(), 1 > end > 4a17,19 > if not output:instanceValue("podUuid") then > return nil > end 6a22 > local randomCollars = config.getParameter("randomCollars") 16,17c32,35 < output:setInstanceValue("currentCollar", collarConfig) < return output:descriptor(), 1 --- > return applyCollar(output, collarConfig) > elseif randomCollars then > collarConfig = randomCollars[math.random(#randomCollars)] > return applyCollar(output, collarConfig) scripts\pets\capturable.lua 175d174 < status.setResource("health", 0) scripts\pets\player.lua 52c52 < petSpawner.pods[uuid]:release(true) --- > petSpawner.pods[uuid]:release() 77c77,78 < if pod:dead() or not player.hasItemWithParameter("podUuid", uuid) then --- > local podItem = player.getItemWithParameter("podUuid", uuid) > if pod:dead() or not podItem then 78a80,81 > else > petSpawner:setPodCollar(uuid, podItem.parameters.currentCollar) 111c114 < petSpawner.pods[podUuid]:release(false) --- > petSpawner.pods[podUuid]:release() 177c180,182 < pod:release(false, position) --- > if storage.activePods[podUuid] then > pod:release(position) > end scripts\pets\spawner.lua 75c75 < local damageTeam = entity.damageTeam() --- > local damageTeam = self:damageTeam() 86a87,94 > function Pet:damageTeam() > local damageTeam = entity.damageTeam() > if self.collar and self.collar.damageTeam then > util.mergeTable(damageTeam, self.collar.damageTeam) > end > return damageTeam > end > 133c141 < promises:add(world.sendEntityMessage(self.uniqueId, "pet.status", persistentEffects, entity.damageTeam()), function (status) --- > promises:add(world.sendEntityMessage(self.uniqueId, "pet.status", persistentEffects, self:damageTeam()), function (status) 139,140c147,148 < world.logInfo("Status request failed due to pet death") < -- Pet died without telling us --- > -- Pet didn't die, because it sends us its status when it does that. > -- It's just stuck in an unloaded region. Respawn it. 141a150 > self:spawn() 189c198 < function Pod:release(onlyIfAlive, position) --- > function Pod:release(position) 191c200 < if not onlyIfAlive or not pet:dead() then --- > if not pet:dead() then stats\effects\deathbomb\deathbomb.statuseffect 3a4 > "minMaxHealth" : 5, stats\effects\deathbomb\deathbombfire.statuseffect 5c5 < "healthDamageFactor" : 100, --- > "healthDamageFactor" : 0.5, tech\dash\dash.lua 75c75 < mcontroller.controlApproachXVelocity(dashSpeed * self.dashDirection, dashControlForce) --- > mcontroller.controlApproachVelocity({dashSpeed * self.dashDirection, 0}, dashControlForce) 79d78 < mcontroller.controlApproachYVelocity(0, dashControlForce) 82,88c81,82 < if self.dashDirection == -1 then < mcontroller.controlFace(-1) < animator.setFlipped(true) < else < mcontroller.controlFace(1) < animator.setFlipped(false) < end --- > mcontroller.controlFace(self.dashDirection) > animator.setFlipped(mcontroller.facingDirection() == -1) 97a92,95 > local currentVelocity = mcontroller.velocity() > if math.abs(currentVelocity[1]) > movementParams.runSpeed then > mcontroller.setVelocity({movementParams.runSpeed * self.dashDirection, 0}) > end 99c97 < end --- > end 105d102 < tech\dash\dash.techitem 2,3c2,3 < "itemName" : "dashTech", < "rarity" : "Legendary", --- > "itemName" : "dashtech", > "rarity" : "Uncommon", 5,6c5,6 < "description" : "Double tap Left or Right to use this Energy Dash tech. Cooldown: 0.8s", < "shortdescription" : "Energy Dash", --- > "description" : "Double tap Left or Right to use this Dash tech. Cooldown: 0.8s", > "shortdescription" : "Dash", tech\multijump\doublejump.techitem 2,3c2,3 < "itemName" : "doublejumpTech", < "rarity" : "Legendary", --- > "itemName" : "doublejumptech", > "rarity" : "Uncommon", tiles\materials\bamboo.material 8c8 < "glitchDescription" : "Conclusive. The bamboo colour indicates it was cut recently.", --- > "glitchDescription" : "Hopeful. The bamboo colour indicates it was cut recently.", tiles\materials\cabinroofing.material 7,9c7,10 < "shortdescription" : "Cabin Roof Block", < "glitchDescription" : "Statement. Pleasant cabin roofing.", < "floranDescription" : "Floran raise the cabin roof.", --- > "shortdescription" : "Cabin Roofing", > "glitchDescription" : "Pleased. This cabin roof has rustic charm.", > "floranDescription" : "Floran raisse the cabin roof.", > "novakidDescription" : "A cabin roof, good for keepin' dry in the rain.", tiles\materials\cactiblock.material 6c6 < "description" : "-todo-.", --- > "description" : "Cactus that's been fashioned into a construction block. Still prickly.", 8,9c8,10 < "glitchDescription" : "Disgust. A block made of flesh.", < "floranDescription" : "Sssquishy meat block.", --- > "glitchdescription" : "Cautious. This construction block has been made from prickly cactus.", > "florandescription" : "Floran like pickly cactuss blocksss.", > "novakiddescription" : "It's made outta cactus. Better not lean against this.", tiles\materials\candyblock.material 7a8,10 > "glitchDescription" : "Delighted. This appears to be a giant piece of hard candy.", > "floranDescription" : "Candy hass colourful sstripess.", > "novakidDescription" : "A big ol' piece of rock candy.", tiles\materials\castlewalls1.material 8,9c8,10 < "glitchDescription" : "Statement. Stone slabs.", < "floranDescription" : "Ssstone.", --- > "glitchDescription" : "Informed. Stone bricks like this are frequently used in castle construction.", > "floranDescription" : "Giant sstone brickss.", > "novakidDescription" : "I'd hate t've been the fella who had to lay these heavy bricks.", tiles\materials\castlewalls2.material 8,9c8,10 < "glitchDescription" : "Statement. Stone slabs.", < "floranDescription" : "Ssstone.", --- > "glitchDescription" : "Interested. It appears these bricks were all cut from the same stone.", > "floranDescription" : "These sstone brickss are ssmall.", > "novakidDescription" : "Some bricks carved outta rock.", tiles\materials\chain.material 8c8 < "glitchDescription" : "Statement. Chains.", --- > "glitchDescription" : "Impressed. These chains are remarkably strong.", 9a10 > "novakidDescription" : "Some chains made outta tungsten.", tiles\materials\cheapwallpaper.material 8,9c8,10 < "glitchDescription" : "Statement. Tacky wallpaper.", < "floranDescription" : "Floran adore wall papers.", --- > "glitchDescription" : "Unsettled. This wall paper is overwhelming gaudy.", > "floranDescription" : "Floran adore pretty wall paperss.", > "novakidDescription" : "Why'd anyone want to cover their walls with paper lookin' like this?", tiles\materials\clay.material 6c6 < "description" : "Dry and dusty clay.", --- > "description" : "Heavy, sticky clay.", 8,9c8,10 < "glitchDescription" : "Statement. Clay.", < "floranDescription" : "Clay.", --- > "glitchDescription" : "Interested. This clay is dense enough to use as a building material.", > "floranDescription" : "Sssmooth clay.", > "novakidDescription" : "I reckon drying this clay would harden it up.", tiles\materials\cloudblock.material 6,9c6,10 < "description" : "Somewhat solid clouds! You can even walk on them!", < "shortdescription" : "Cloud Block", < "glitchDescription" : "Curious. A block of clouds.", < "floranDescription" : "Maybe I can eat?", --- > "description" : "A cloud dense enough to walk on.", > "shortdescription" : "Cloud", > "glitchDescription" : "Amazed. The density of this cloud could support my weight.", > "floranDescription" : "Cloud iss sso fluffy!", > "novakidDescription" : "This here cloud is made from some heavy fluff stuff.", tiles\materials\cobblestone.material 7,9c7,10 < "description" : "Hard stones, smooth to the touch.", < "glitchDescription" : "Statement. Cobblestones.", < "floranDescription" : "Cobblessstone.", --- > "description" : "Hard cobblestones, smooth to the touch.", > "glitchDescription" : "Facinated. These cobblestones are naturally smooth.", > "floranDescription" : "Ssmooth cobblessstone rockss.", > "novakidDescription" : "Ain't uncommon to run across cobblestone rocks like this.", tiles\materials\cobblestonebrick.material 7,9c7,10 < "description" : "Small bricks made of cobblestone.", < "glitchDescription" : "Statement. Cobblestone.", < "floranDescription" : "Cobblessstone.", --- > "description" : "Small bricks made from cobblestone.", > "glitchDescription" : "Observant. These bricks are made from cobblestone.", > "floranDescription" : "Ssmooth cobblessstone brickss.", > "novakidDescription" : "Bricks made outta cobblestone.", tiles\materials\coconutblock.material 6c6 < "description" : "Just a block made of coconut.", --- > "description" : "Bricks made from coconut and mortar.", 8,9c8,10 < "glitchDescription" : "Statement. Coconut.", < "floranDescription" : "Unssstabbed coco.", --- > "glitchDescription" : "Surprised. The primary component of these bricks are coconuts.", > "floranDescription" : "Coconutss are sstong brickss.", > "novakidDescription" : "I'd reckon these coconut bricks are mighty strong.", tiles\materials\composite01.material 8,9c8,10 < "glitchDescription" : "Statement. Titanium.", < "floranDescription" : "Sssmooth titanium.", --- > "glitchDescription" : "Amazed. This titanium panel is almost flawlessly smooth.", > "floranDescription" : "Ssmooth shiny titanium panelss.", > "novakidDescription" : "Some shiny n' smooth titanium panels.", tiles\materials\concrete.material 8,9c8,10 < "glitchDescription" : "Statement. Concrete.", < "floranDescription" : "Con... crete.", --- > "glitchDescription" : "Aqainted. Concrete is a commonly used construction material.", > "floranDescription" : "Floran disslike cold concrete.", > "novakidDescription" : "Concrete makes a mighty sturdy block.", tiles\materials\copperblock.material 8,9c8,10 < "glitchDescription" : "Statement. The gear-like imprints of this block appeal to me.", < "floranDescription" : "Cogsss and Gearsss.", --- > "glitchDescription" : "Delighted. I find the gear shape of these blocks pleasing.", > "floranDescription" : "Copper blockss like machine gearss.", > "novakidDescription" : "Copper blocks, they look sorta like gears.", tiles\materials\copperfence.material 8,9c8,10 < "glitchDescription" : "Statement. A sturdy fence.", < "floranDescription" : "Sssturdy fence.", --- > "glitchDescription" : "Confident. This copper fence is much stronger than wood.", > "floranDescription" : "Sssturdy copper fence.", > "novakidDescription" : "This here fence is made outta copper.", tiles\platforms\bambooplatform.material 8c8 < "glitchDescription" : "Impressed. This bamboo platform is incredibly strong.", --- > "glitchDescription" : "Hopeful. This bamboo platform is incredibly strong.", tilesets\packed\materials.json 309c309 < "//description" : "Somewhat solid clouds! You can even walk on them!", --- > "//description" : "A cloud dense enough to walk on.", 311c311 < "//shortdescription" : "Cloud Block", --- > "//shortdescription" : "Cloud", 357c357 < "//description" : "Small bricks made of cobblestone.", --- > "//description" : "Small bricks made from cobblestone.", 377c377 < "//shortdescription" : "Cabin Roof Block", --- > "//shortdescription" : "Cabin Roofing", 681c681 < "//description" : "Hard stones, smooth to the touch.", --- > "//description" : "Hard cobblestones, smooth to the touch.", 945c945 < "//description" : "Dry and dusty clay.", --- > "//description" : "Heavy, sticky clay.", 999c999 < "//description" : "Just a block made of coconut.", --- > "//description" : "Bricks made from coconut and mortar.", 1077c1077 < "//description" : "-todo-.", --- > "//description" : "Cactus that's been fashioned into a construction block. Still prickly.", tilesets\packed\objects-by-category\decorative.json 7c7 < "tilecount" : 1146, --- > "tilecount" : 1147, 759c759 < "//description" : "Foundry bellow.", --- > "//description" : "An industrial sized set of bellows from a foundry.", 761c761 < "//shortdescription" : "Foundry Bellow", --- > "//shortdescription" : "Foundry Bellows", 1446a1447,1454 > "1146" : { > "//description" : "An old sign from an Apex laboratory.", > "//name" : "miniknogoldsign", > "//shortdescription" : "Ministry of Knowledge Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "miniknogoldsign" > }, 10048a10057,10059 > }, > "1146" : { > "image" : "..\\../../../../tiled\\packed\\objects/miniknogoldsign.png" tilesets\packed\objects-by-category\furniture.json 1824c1824 < "//description" : "A foundry bed.", --- > "//description" : "A bed with a large lamp over it, producing considerable heat.", tilesets\packed\objects-by-category\teleporter.json 7c7 < "tilecount" : 26, --- > "tilecount" : 27, 175a176,183 > "26" : { > "//description" : "It looks like it was made to hold something important.", > "//name" : "apexartifactaltar", > "//shortdescription" : "Apex Artifact Altar", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "apexartifactaltar" > }, 286a295,297 > }, > "26" : { > "image" : "..\\../../../../tiled\\packed\\objects/apexartifactaltar.png" tilesets\packed\objects-by-category\wire.json 497c497 < "//description" : "-todo-", --- > "//description" : "A button fit for purpose in a foundry.", tilesets\packed\objects-by-race\apex.json 7c7 < "tilecount" : 348, --- > "tilecount" : 350, 2370a2371,2386 > "348" : { > "//description" : "An old sign from an Apex laboratory.", > "//name" : "miniknogoldsign", > "//shortdescription" : "Ministry of Knowledge Sign", > "imagePositionX" : "-16", > "imagePositionY" : "-16", > "object" : "miniknogoldsign" > }, > "349" : { > "//description" : "It looks like it was made to hold something important.", > "//name" : "apexartifactaltar", > "//shortdescription" : "Apex Artifact Altar", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "apexartifactaltar" > }, 3824a3841,3846 > }, > "348" : { > "image" : "..\\../../../../tiled\\packed\\objects/miniknogoldsign.png" > }, > "349" : { > "image" : "..\\../../../../tiled\\packed\\objects/apexartifactaltar.png" tilesets\packed\objects-by-race\generic.json 3514c3514 < "//description" : "Foundry bellow.", --- > "//description" : "An industrial sized set of bellows from a foundry.", 3516c3516 < "//shortdescription" : "Foundry Bellow", --- > "//shortdescription" : "Foundry Bellows", 3595c3595 < "//description" : "A foundry bed.", --- > "//description" : "A bed with a large lamp over it, producing considerable heat.", 3631c3631 < "//description" : "-todo-", --- > "//description" : "A button fit for purpose in a foundry.", tilesets\packed\objects-by-type\loungeable.json 1154c1154 < "//description" : "A foundry bed.", --- > "//description" : "A bed with a large lamp over it, producing considerable heat.", treasure\biome.treasurepools 1199c1199,1211 < {"weight" : 0.3, "item" : "scorchedcitystoreshelf-recipe"} --- > {"weight" : 0.3, "item" : "scorchedcitystoreshelf-recipe"}, > {"weight" : 0.1, "item" : "deadbeathelmhead"}, > {"weight" : 0.1, "item" : "deadbeathornhelmhead"}, > {"weight" : 0.1, "item" : "deadbeathornmaskhead"}, > {"weight" : 0.1, "item" : "deadbeathornshead"}, > {"weight" : 0.1, "item" : "deadbeatleatherchest"}, > {"weight" : 0.1, "item" : "deadbeatleatherlegs"}, > {"weight" : 0.1, "item" : "deadbeatmaskhead"}, > {"weight" : 0.1, "item" : "deadbeatnerdhead"}, > {"weight" : 0.1, "item" : "deadbeatspandexchest"}, > {"weight" : 0.1, "item" : "deadbeatspandexlegs"}, > {"weight" : 0.1, "item" : "deadbeatstrapschest"}, > {"weight" : 0.1, "item" : "deadbeatstrapslegs"} treasure\fossils.treasurepools 31a32,45 > > > > "fossilextratreasure" : [ > [1, { > "pool" : [ > {"weight" : 0.750, "item" : "bottle"}, > {"weight" : 0.25, "item" : "brain"} > ] > }] > ], > > > weather\junkstorm\junkstorm.weather 6c6 < { --- > { 20a21,37 > }, > { > > "density" : 0.0001, > "particle" : { > "type" : "animated", > "animation" : "/animations/ember1/ember1.animation", > "velocity" : [0, -5], > "approach" : [15, 25], > "fade" : 0.5, > "looping" : true, > "destructionTime" : 20, > "timeToLive" : 10, > "collidesForeground" : false, > "collidesLiquid" : true, > "ignoreWind" : false > }