FILES ----- universe_server.config [NEW] animations\moontantdeath\moontantdeath.animation [NEW] animations\moontantdeath\moontantdeath.frames [NEW] animations\moontantdeath\moontantdeath.png biomes\surface\forest.biome biomes\surface\garden.biome biomes\surface\jungle.biome biomes\surface\savannah.biome biomes\surface_detached\giantflowers.biome biomes\surface_detached\spring.biome cinematics\giraffe.png [NEW] cinematics\giraffe2(keep).png dungeons\other\outpost\outpost.dungeon [NEW] interface\warping\outpostteleporter.config interface\warping\warpbody.png interface\windowconfig\teleportdialog.config monsters\groundmovement.lua monsters\ground\groundmonster.lua monsters\pets\groundpet.lua monsters\unique\moontant\moontant.animation monsters\unique\moontant\moontant.monstertype npcs\main.lua [NEW] objects\floran\plantcage3\cagecover.png objects\floran\plantcage3\plantcage3.object objects\hoard\mysteriouslight\mysteriouslight.object objects\hoard\mysteriouslight\mysteriouslightceiling1.frames objects\hoard\mysteriouslight\mysteriouslightceiling1.png objects\hoard\mysteriouslight\mysteriouslightceiling2.frames objects\hoard\mysteriouslight\mysteriouslightceiling2.png objects\hoard\mysteriouslight\mysteriouslightceilingleft1.frames objects\hoard\mysteriouslight\mysteriouslightceilingleft1.png objects\hoard\mysteriouslight\mysteriouslightceilingleft2.frames objects\hoard\mysteriouslight\mysteriouslightceilingleft2.png objects\hoard\mysteriouslight\mysteriouslightceilingright1.frames objects\hoard\mysteriouslight\mysteriouslightceilingright1.png objects\hoard\mysteriouslight\mysteriouslightceilingright2.frames objects\hoard\mysteriouslight\mysteriouslightceilingright2.png objects\hoard\mysteriouslight\mysteriouslightground1.frames objects\hoard\mysteriouslight\mysteriouslightground1.png objects\hoard\mysteriouslight\mysteriouslightground2.frames objects\hoard\mysteriouslight\mysteriouslightground2.png objects\hoard\mysteriouslight\mysteriouslightgroundleft1.frames objects\hoard\mysteriouslight\mysteriouslightgroundleft1.png objects\hoard\mysteriouslight\mysteriouslightgroundleft2.frames objects\hoard\mysteriouslight\mysteriouslightgroundleft2.png objects\hoard\mysteriouslight\mysteriouslightgroundright1.frames objects\hoard\mysteriouslight\mysteriouslightgroundright1.png objects\hoard\mysteriouslight\mysteriouslightgroundright2.frames objects\hoard\mysteriouslight\mysteriouslightgroundright2.png objects\hoard\mysteriouslight\mysteriouslightleft1.frames objects\hoard\mysteriouslight\mysteriouslightleft1.png objects\hoard\mysteriouslight\mysteriouslightleft2.frames objects\hoard\mysteriouslight\mysteriouslightleft2.png objects\hoard\mysteriouslight\mysteriouslightright1.frames objects\hoard\mysteriouslight\mysteriouslightright1.png objects\hoard\mysteriouslight\mysteriouslightright2.frames objects\hoard\mysteriouslight\mysteriouslightright2.png objects\minibiome\slime\ceilingslime1\ceilingslime1.object objects\minibiome\slime\ceilingslime2\ceilingslime2.object [NEW] objects\minibiome\swamp\swampchest\swampchesticon.png [NEW] particles\moontantdeath.particle tech\dash\ftlboost.tech treasure\biome.treasurepools DIFFS ----- universe_server.config 6d5 < "updateMeasureWindow" : 60000, 8c7,11 < "maxBehindUpdates" : 30, --- > > "updateMeasureWindow" : 60000, > "maxBehindUpdates" : 20, > "maxUpdateGroup" : 5, > "updateMeasureAverage" : 60, biomes\surface\forest.biome 193a194,197 > > "ceilingGrassMod" : [ "undergrowth" ], > "ceilingGrassModDensity" : 0.5, > 385a390,392 > > "ceilingGrassMod" : [ "roots" ], > "ceilingGrassModDensity" : 0.3, biomes\surface\garden.biome 194a195,197 > "ceilingGrassMod" : [ "undergrowth" ], > "ceilingGrassModDensity" : 0.4, > 429a433,435 > > "ceilingGrassMod" : [ "roots" ], > "ceilingGrassModDensity" : 0.3, biomes\surface\jungle.biome 214a215,217 > "ceilingGrassMod" : [ "undergrowth" ], > "ceilingGrassModDensity" : 0.5, > biomes\surface\savannah.biome 361a362,365 > > "ceilingGrassMod" : [ "roots" ], > "ceilingGrassModDensity" : 0.3, > biomes\surface_detached\giantflowers.biome 25a26,28 > "ceilingGrassMod" : [ "undergrowth" ], > "ceilingGrassModDensity" : 0.5, > 105a109,111 > > "ceilingGrassMod" : [ "roots" ], > "ceilingGrassModDensity" : 0.3, biomes\surface_detached\spring.biome 23a24,26 > "ceilingGrassMod" : [ "undergrowth" ], > "ceilingGrassModDensity" : 0.5, > 116a120,125 > "grassMod" : [ "grass" ], > "grassModDensity" : 0.2, > > "ceilingGrassMod" : [ "roots" ], > "ceilingGrassModDensity" : 0.3, > dungeons\other\outpost\outpost.dungeon 1860c1860 < "brush" : [ [ "clear" ], [ "object", "remoteteleporter" ] ] --- > "brush" : [ [ "clear" ], [ "object", "remoteteleporter", { "parameters" : { "interactData" : "/interface/warping/outpostteleporter.config" } } ] ] interface\windowconfig\teleportdialog.config 32c32 < "rect" : [2, 24, 184, 154], --- > "rect" : [2, 25, 184, 153], monsters\groundmovement.lua 40c40 < if world.rectTileCollision(jumpRegion, true) then --- > if world.rectCollision(jumpRegion, true) then 54c54 < if not world.rectTileCollision(jumpClearanceRegion, true) then --- > if not world.rectCollision(jumpClearanceRegion, true) then 73c73 < if not world.rectTileCollision(gapRegion, false) then --- > if not world.rectCollision(gapRegion, false) then 88c88 < if world.rectTileCollision(blockedRect, true) then --- > if world.rectCollision(blockedRect, true) then monsters\ground\groundmonster.lua 130c130 < self.debug = false --- > self.debug = true 1077c1077 < if verticalMovementRatio > 0.5 and not world.rectTileCollision(groundTestRegion, false) and world.rectTileCollision(wallTestRegion, false) then --- > if verticalMovementRatio > 0.5 and not world.rectCollision(groundTestRegion, false) and world.rectCollision(wallTestRegion, false) then 1236,1237c1236,1238 < local collisionResolve = world.resolvePolyCollision(collisionPoly, {position[1] + direction/2, position[2]}, 0.2) < if (world.rectTileCollision(groundRegion, false) or world.liquidAt(position)) and collisionResolve then --- > local collisionResolve = world.resolvePolyCollision(collisionPoly, {position[1] + direction/2, position[2]}, 0.9) > if (world.rectTileCollision(groundRegion, false) or world.liquidAt(position)) and collisionResolve and > (world.material({groundRegion[1], groundRegion[2]}, "foreground") or world.material({groundRegion[3], groundRegion[4]}, "foreground")) then 1275c1276 < return world.rectTileCollision(ceilingRegion, true) --- > return world.rectCollision(ceilingRegion, true) 1328c1329 < end \ No newline at end of file --- > end monsters\pets\groundpet.lua 23,26c23,24 < self.state = stateMachine.create({ < "idleState", < "wanderState" < }) --- > local states = stateMachine.scanScripts(entity.configParameter("scripts"), "(%a+State)%.lua") > self.state = stateMachine.create(states) 634c632 < if verticalMovementRatio > 0.5 and not world.rectTileCollision(groundTestRegion, false) and world.rectTileCollision(wallTestRegion, false) then --- > if verticalMovementRatio > 0.5 and not world.rectCollision(groundTestRegion, false) and world.rectCollision(wallTestRegion, false) then 794c792,793 < if (world.rectTileCollision(groundRegion, false) or world.liquidAt(position)) and collisionResolve then --- > if (world.rectTileCollision(groundRegion, false) or world.liquidAt(position)) and collisionResolve and > (world.material({groundRegion[1], groundRegion[2]}, "foreground") or world.material({groundRegion[3], groundRegion[4]}, "foreground")) then 835c834 < return world.rectTileCollision(ceilingRegion, true) --- > return world.rectCollision(ceilingRegion, true) 847c846 < return world.rectTileCollision(groundRegion, true) --- > return world.rectCollision(groundRegion, true) 888c887 < end \ No newline at end of file --- > end monsters\unique\moontant\moontant.animation 329a330,347 > "type" : "animated", > "animation" : "/animations/moontantdeath/moontantdeath.animation", > "position" : [0, 0], > "initialVelocity" : [0.0, 0.0], > "finalVelocity" : [0, 0], > "approach" : [5, -4], > "destructionAction" : "shrink", > "destructionTime" : 0.5, > "fade" : 1, > "size" : 1, > "layer" : "front", > "timeToLive" : 0.5, > "variance" : { > } > } > }, > { > "particle" : { 340c358 < "timeToLive" : 0.4, --- > "timeToLive" : 0.5, 503c521 < } --- > } 537c555 < "deathPuff" : [ "/sfx/npc/enemydeathpuff.wav" ] --- > "deathPuff" : [ "/sfx/melee/axe_kill_organic1.wav" ] monsters\unique\moontant\moontant.monstertype 52c52 < "knockoutTime" : 0.5, --- > "knockoutTime" : 0.0, npcs\main.lua 87c87 < self.debug = false --- > self.debug = true 453c453,470 < function debugPath(goalPosition) --- > function debugPathEdgeColor(edge) > local action = edge.action > if action == "Walk" then > return "blue" > elseif action == "Jump" then > return "green" > elseif action == "Drop" then > return "blue" > elseif action == "Swim" then > return "white" > elseif action == "Fly" then > return "magenta" > else > return "red" > end > end > > function debugPath(path) 459,463c476,485 < local nextStep = entity.pathLookahead(step) < if nextStep then < world.debugLine(prevStep, vec2.add(position, nextStep), "blue") < world.debugPoint(vec2.add(position, nextStep), "blue") < prevStep = vec2.add(position, nextStep) --- > local edge = path.path[path.currentEdgeIndex+step] > if edge then > local nextStep = edge.target.position > local color = debugPathEdgeColor(edge) > world.debugLine(prevStep, nextStep, color) > if edge.action == "Jump" then > world.debugText(edge.jumpVelocity[2], {nextStep[1], nextStep[2]-1}, "red") > end > world.debugPoint(nextStep, color) > prevStep = nextStep 469,472d490 < if goalPosition then < world.debugLine(position, goalPosition, "green") < world.debugPoint(goalPosition, "green") < end 586a605 > local position = mcontroller.position() 591a611,612 > script.setUpdateDelta(4) > 594c615 < if pathTargetPosition == nil or --- > if pathTargetPosition == nil or self.pathing.path == nil or 598,602c619,620 < local innerRadius = -1 < local outerRadius = 1 < if entity.findPath(targetPosition, innerRadius, outerRadius) then < self.pathing.targetPosition = targetPosition < else --- > if not findPath(targetPosition) then > world.debugText("findPath failed", {position[1], position[2]-2}, "red") 605,614d622 < < self.pathing.delta = nil < end < < -- Store the path delta in case pathfinding doesn't succeed on the next try < local pathDelta = entity.followPath() < if pathDelta == nil then < self.pathing.targetPosition = nil < else < self.pathing.delta = pathDelta 617,629c625,628 < --New path and we can't move on it, try new path < if self.pathing.delta == nil then < self.pathing.targetPosition = nil < return false < end < < local position = mcontroller.position() < local verticalPathUp = verticalPathLength("up") < local verticalPathDown = verticalPathLength("down") < < --Keep jumping < if (self.pathing.jumpHoldTimer ~= nil and verticalPathUp > 0) or self.pathing.goalJumpPosition then < keepJumping(dt, options) --- > local path = updatePath() > if not path then > world.debugText("updatePath failed", {position[1], position[2]-2}, "red") > -- New path is found on the next call to moveTo 632c631 < self.pathing.jumpHoldTimer = nil --- > if self.debug then debugPath(path) end 634,635c633 < --Keep dropping < if (self.pathing.downHoldTimer ~= nil and verticalPathDown > 0) or self.pathing.goalJumpPosition then --- > if self.pathing.downHoldTimer ~= nil then 639d636 < self.pathing.downHoldTimer = nil 641c638,640 < script.setUpdateDelta(self.scriptDelta) --- > local currentEdge = path.currentEdge > local nextPathPosition = currentEdge.target.position > local action = currentEdge.action 643c642 < local delta = entity.pathLookahead(0) or self.pathing.delta --- > local delta = {nextPathPosition[1] - position[1], nextPathPosition[2] - position[2]} 653,654c652,654 < local nextPathPosition = vec2.add(position, delta) < local goalPosition, forwardPosition, backwardPosition = findValidStandingPosition(nextPathPosition, util.toDirection(delta[1])) --- > if self.debug then > world.debugText(action, {position[1], position[2]-2}, "blue") > end 656,659c656,657 < --Swimming < if goalPosition and mcontroller.liquidMovement() and world.liquidAt(goalPosition) then < local goalDelta = world.distance(goalPosition, position) < if goalDelta[2] > 0 then --- > if action == "Swim" then > if delta[2] > 0 then 663c661 < moveX(goalDelta[1], options.run) --- > moveX(delta[1], options.run) 665,693d662 < end < < --If there is a ledge but the path continues, don't use this position < if goalPosition and not forwardPosition then < goalPosition = nil < end < < --If very close to a path node, disregard it < if goalPosition and world.magnitude(goalPosition, mcontroller.position()) < 0.5 then < goalPosition = nil < end < < --Don't stand between the first path node and the next one < local nextDelta = entity.pathLookahead(1) < if nextDelta and delta[1] * nextDelta[1] < 0 then < goalPosition = nil < end < < --If the next path node isn't valid (can't stand there), search the path for a valid one < local step = 1 < local maxSteps = 30 < while not goalPosition and step < maxSteps do < local nextPathDelta = entity.pathLookahead(step) < if nextPathDelta then < nextPathPosition = vec2.add(position, nextPathDelta) < goalPosition, forwardPosition, backwardPosition = findValidStandingPosition(nextPathPosition, util.toDirection(nextPathDelta[1])) < step = step + 1 < else break end < end 695,699c664,686 < --No valid position found, stop moving and find new path < if not goalPosition then < self.pathing.targetPosition = nil < return false < end --- > elseif action == "Jump" then > if not mcontroller.onGround() then > if not path.jumped then > -- If we haven't quite landed yet, wait until we do > mcontroller.setXVelocity(0) > return true > else > -- We've jumped and we're no longer on the ground. Move to the next node > mcontroller.setXVelocity(currentEdge.jumpVelocity[1]) > path.currentEdgeIndex = path.currentEdgeIndex + 1 > path.currentEdge = path.path[path.currentEdgeIndex+1] > path.jumped = nil > return true > end > end > -- Keep applying the Y jump velocity until we're no longer on the ground. > -- Things like groundSlideMovement mess with our velocity until we're > -- in the air (we do however still want groundSlideMovement to apply when > -- we're not jumping so disabling it altogether is not ideal). > -- X velocity is applied when we're clear of the ground. > jump({0, currentEdge.jumpVelocity[2]}) > path.jumped = true > return true 701,716c688,691 < --Move on path < local goalDelta = world.distance(goalPosition, position) < local verticalMovementRatio = math.abs(goalDelta[2] / goalDelta[1]) < if goalDelta[1] == 0 then verticalMovementRatio = 10 end < local maxVerticalRatio = 1.25 --Enough to not drop down or jump up stairs < < --Keep from dropping or jumping in stairs if we don't need to < if verticalMovementRatio > maxVerticalRatio and forwardPosition then < goalDelta = world.distance(forwardPosition, position) < verticalMovementRatio = math.abs(goalDelta[2] / goalDelta[1]) < end < < --Path wants to take us steeply up, jump < if ((verticalMovementRatio > maxVerticalRatio and goalDelta[2] > 0) or verticalPathUp > 1) and not closeToCeiling() then < local jumpHold = math.max(verticalPathUp / self.jumpSpeed, distanceJumpTime(goalDelta)) < timedJump(math.max(jumpHold, 0.02), backwardPosition or forwardPosition, goalDelta[1]) --- > elseif action == "Drop" then > timedDrop(timeToFall(-delta[2])) > path.currentEdgeIndex = path.currentEdgeIndex + 1 > path.currentEdge = path.path[path.currentEdgeIndex+1] 718d692 < end 720,724c694,701 < --Path is taking us steeply down, drop < if ((verticalMovementRatio > maxVerticalRatio and goalDelta[2] < 0 and (not nextDelta or nextDelta[2] < 0)) or verticalPathDown > 1) then < if not onSolidGround() then < local dropHold = timeToFall(math.max(-goalDelta[2], verticalPathDown)) < timedDrop(dropHold) --- > elseif action == "Arc" then > if mcontroller.onGround() then > -- Jump failed and we landed somehow. > -- Move a bit towards the next node in case we landed right on the corner > -- of a ledge, just short of the next node. > moveX(delta[1]) > -- If we landed too far from the node to get there then we'll shortly > -- recalculate the path again anyway. 725a703 > 727,729c705,712 < --likely standing on a solid ledge < local ledgeDelta = entity.pathLookahead(0) < moveX(ledgeDelta[1], options.run) --- > -- setXVelocity in case that changes mid-jump (e.g. when jumping straight > -- up and then to the side). > if currentEdge.source.velocity ~= nil then > mcontroller.setXVelocity(currentEdge.source.velocity[1]) > elseif currentEdge.target.velocity ~= nil then > mcontroller.setXVelocity(currentEdge.target.velocity[1]) > end > script.setUpdateDelta(1) 730a714 > 732d715 < end 734,738d716 < --Jump over gaps < local deltaDir = util.toDirection(goalDelta[1]) < local nextStepPosition = {position[1] + deltaDir, position[2]} < if deltaDir > 0 then < nextStepPosition[1] = math.ceil(nextStepPosition[1]) 740,749c718,721 < nextStepPosition[1] = math.floor(nextStepPosition[1]) < end < if verticalMovementRatio < 0.5 and math.abs(goalDelta[1]) > 1.5 then < --Could be stairs, check diagonally < if not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2]}, deltaDir) and < not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2] - 1}, deltaDir) and < not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2] + 1}, deltaDir) then < timedJump(distanceJumpTime(goalDelta), forwardPosition or backwardPosition, deltaDir) < return true < end --- > -- action is either "Walk" or "Fly" > -- TODO implement flying for flying NPCs (if there are any) > moveX(delta[1], options.run) > return true 750a723 > end 752c725,727 < if self.debug then debugPath(goalPosition) end --- > function resetPathExpiration() > self.pathing.expirationTime = world.time() + 1.0 + 2.0 * math.random() > end 754c729,742 < moveX(goalDelta[1], options.run) --- > function findPath(targetPosition) > if self.pathing.expirationTime == nil then > resetPathExpiration() > end > if not mcontroller.onGround() and not world.liquidAt(mcontroller.position()) then > return self.pathing.path > end > if self.pathing.expirationTime < world.time() then > self.pathing.path = entity.findPath(targetPosition) > self.pathing.targetPosition = targetPosition > resetPathExpiration() > end > return self.pathing.path > end 756c744,749 < return true --- > function updatePath() > if self.pathing.expirationTime < world.time() then > return findPath(self.pathing.targetPosition) > end > self.pathing.path = entity.updatePath(self.pathing.path) > return self.pathing.path 785,799c778,782 < --Jump and hold jump for holdTime, also approach goalPosition < function timedJump(holdTime, goalPosition, facingDirection) < if not mcontroller.onGround() and not mcontroller.liquidMovement() then return nil end < if holdTime == nil then holdTime = 0 end < holdTime = math.min(holdTime, self.jumpHoldTime) < < if mcontroller.liquidMovement() then < holdTime = holdTime + self.jumpHoldTime < end < < mcontroller.controlJump() < self.pathing.jumpHoldTimer = holdTime < self.pathing.goalJumpPosition = goalPosition < self.pathing.jumpFacingDirection = facingDirection < script.setUpdateDelta(1) --- > --Jump with a given x and y velocity > function jump(velocity) > if not mcontroller.onGround() then return end > -- TODO update animation for jumping > mcontroller.setVelocity(velocity) 857d839 < --TODO: Make this not bad by using math 859,867c841 < local position = mcontroller.position() < local gravity = world.gravity(mcontroller.position()) < < local fallDistanceTime = (math.abs(distance[1]) / 2) / self.walkSpeed < local fallDistance = (gravity / 2) * fallDistanceTime * fallDistanceTime < fallDistance = fallDistance + distance[2] < < local holdTime = fallDistance / self.jumpSpeed < return holdTime --- > return timeToFall(distance[2]) 897,898c871,872 < position[1] + math.min(direction * math.max(-bounds[1], 1), 0) + 0.05, position[2] + bounds[2] - 0.95, < position[1] + math.max(direction * math.max(bounds[3], 1), 0) - 0.05, position[2] + bounds[2] --- > position[1] + direction * bounds[1] + 0.05, position[2] + bounds[2] - 0.95, > position[1] + direction * bounds[3] - 0.05, position[2] + bounds[2] 933,934c907,908 < position[1] + bounds[1] + 0.1, position[2] + 1, < position[1] + bounds[3] - 0.1, position[2] + 5 --- > position[1] + bounds[1] + 0.1, position[2] + bounds[4], > position[1] + bounds[3] - 0.1, position[2] + bounds[4] + 0.5 949c923 < end \ No newline at end of file --- > end objects\floran\plantcage3\plantcage3.object 23a24 > "sitPosition" : [-4, 5], 30a32 > "sitPosition" : [-4, 5], 37a40 > "sitPosition" : [-4, 5], 44a48 > "sitPosition" : [-4, 5], 48a53,62 > ], > > "objectType" : "loungeable", > "sitFlipDirection" : true, > "sitPosition" : [-4, 5], > "sitOrientation" : "lay", > "sitAngle" : 0, > "sitCoverImage" : "/objects/floran/plantcage3/cagecover.png", > "sitStatusEffects" : [ > "nude" objects\hoard\mysteriouslight\mysteriouslight.object 6,16c6 < "lightColors" : { < "default" : [255, 244, 65], < "red" : [255, 127, 127], < "blue" : [71, 134, 255], < "green" : [88, 255, 0], < "yellow" : [255, 230, 127], < "orange" : [255, 179, 127], < "pink" : [255, 177, 255], < "black" : [100, 100, 100], < "white" : [255, 255, 255] < }, --- > "lightColor" : [255, 244, 65], 33,35c23 < "imageLayers" : [ { "image" : "mysteriouslightceiling1.png:.", "fullbright" : true }, { "image" : "mysteriouslightceiling2.png:." } ], < "frames" : 1, < "animationCycle" : 0.5, --- > "image" : "mysteriouslightceiling1.png:.", 36a25,104 > "animationParts" : { > "bg" : "mysteriouslightceiling1.png", > "fg" : "mysteriouslightceiling2.png" > }, > "direction" : "right", > > "spaceScan" : 0.01, > "fgAnchors" : [ [0, 0] ], > "lightPosition" : [0, 0], > "pointAngle" : 270 > }, > > { > "image" : "mysteriouslightceilingleft1.png:.", > "imagePosition" : [0, 0], > "animationParts" : { > "bg" : "mysteriouslightceilingleft1.png", > "fg" : "mysteriouslightceilingleft2.png" > }, > "direction" : "right", > > "spaceScan" : 0.01, > "anchors" : [ "top", "left" ], > "lightPosition" : [0, 0], > "pointAngle" : 315 > }, > > { > "image" : "mysteriouslightceilingright1.png:.", > "imagePosition" : [0, 0], > "animationParts" : { > "bg" : "mysteriouslightceilingright1.png", > "fg" : "mysteriouslightceilingright2.png" > }, > "direction" : "right", > > "spaceScan" : 0.01, > "anchors" : [ "top", "right" ], > "lightPosition" : [0, 0], > "pointAngle" : 225 > }, > > { > "image" : "mysteriouslightgroundleft1.png:.", > "imagePosition" : [0, 0], > "animationParts" : { > "bg" : "mysteriouslightgroundleft1.png", > "fg" : "mysteriouslightgroundleft2.png" > }, > "direction" : "right", > > "spaceScan" : 0.01, > "anchors" : [ "bottom", "left" ], > "lightPosition" : [0, 0], > "pointAngle" : 45 > }, > > { > "image" : "mysteriouslightgroundright1.png:.", > "imagePosition" : [0, 0], > "animationParts" : { > "bg" : "mysteriouslightgroundright1.png", > "fg" : "mysteriouslightgroundright2.png" > }, > "direction" : "right", > > "spaceScan" : 0.01, > "anchors" : [ "bottom", "right" ], > "lightPosition" : [0, 0], > "pointAngle" : 135 > }, > > { > "image" : "mysteriouslightceiling1.png:.", > "imagePosition" : [0, 0], > "animationParts" : { > "bg" : "mysteriouslightceiling1.png", > "fg" : "mysteriouslightceiling2.png" > }, > "direction" : "right", 45,47c113 < "imageLayers" : [ { "image" : "mysteriouslightground1.png:.", "fullbright" : true }, { "image" : "mysteriouslightground2.png:." } ], < "frames" : 1, < "animationCycle" : 0.5, --- > "image" : "mysteriouslightground1.png:.", 48a115,119 > "animationParts" : { > "bg" : "mysteriouslightground1.png", > "fg" : "mysteriouslightground2.png" > }, > "direction" : "right", 57,59c128 < "imageLayers" : [ { "image" : "mysteriouslightleft1.png:.", "fullbright" : true }, { "image" : "mysteriouslightleft2.png:." } ], < "frames" : 1, < "animationCycle" : 0.5, --- > "image" : "mysteriouslightleft1.png:.", 60a130,134 > "animationParts" : { > "bg" : "mysteriouslightleft1.png", > "fg" : "mysteriouslightleft2.png" > }, > "direction" : "right", 69,71c143 < "imageLayers" : [ { "image" : "mysteriouslightright1.png:.", "fullbright" : true }, { "image" : "mysteriouslightright2.png:." } ], < "frames" : 1, < "animationCycle" : 0.5, --- > "image" : "mysteriouslightright1.png:.", 72a145,149 > "animationParts" : { > "bg" : "mysteriouslightright1.png", > "fg" : "mysteriouslightright2.png" > }, > "direction" : "right", 79c156,165 < ] --- > ], > > "animation" : "/objects/wired/light/lighttogglebgfullbright.animation", > > "scripts" : [ "/objects/wired/light/light.lua" ], > "scriptDelta" : 60, > > "interactive" : false, > > "inboundNodes" : [ [0, 0] ] objects\hoard\mysteriouslight\mysteriouslightceiling1.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightceiling2.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightceilingleft1.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightceilingleft2.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightceilingright1.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightceilingright2.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightground1.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightground2.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightgroundleft1.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightgroundleft2.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightgroundright1.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightgroundright2.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightleft1.frames 1a2 > 6,14c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 19,27c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightleft2.frames 1a2 > 6,14c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 19,27c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightright1.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\hoard\mysteriouslight\mysteriouslightright2.frames 7,15c7,15 < [ "default.0", "default.off" ], < [ "red.0", "red.off" ], < [ "blue.0", "blue.off" ], < [ "green.0", "green.off" ], < [ "yellow.0", "yellow.off" ], < [ "orange.0", "orange.off" ], < [ "pink.0", "pink.off" ], < [ "black.0", "black.off" ], < [ "white.0", "white.off" ] --- > [ "default.on", "default.off" ], > [ "red.on", "red.off" ], > [ "blue.on", "blue.off" ], > [ "green.on", "green.off" ], > [ "yellow.on", "yellow.off" ], > [ "orange.on", "orange.off" ], > [ "pink.on", "pink.off" ], > [ "black.on", "black.off" ], > [ "white.on", "white.off" ] 20,28c20,28 < "default.default" : "default.off", < "red.default" : "red.off", < "blue.default" : "blue.off", < "green.default" : "green.off", < "yellow.default" : "yellow.off", < "orange.default" : "orange.off", < "pink.default" : "pink.off", < "black.default" : "black.off", < "white.default" : "white.off" --- > "default.default" : "default.on", > "red.default" : "red.on", > "blue.default" : "blue.on", > "green.default" : "green.on", > "yellow.default" : "yellow.on", > "orange.default" : "orange.on", > "pink.default" : "pink.on", > "black.default" : "black.on", > "white.default" : "white.on" objects\minibiome\slime\ceilingslime1\ceilingslime1.object 43c43 < "imagePosition" : [-3, -12], --- > "imagePosition" : [-3, -11], objects\minibiome\slime\ceilingslime2\ceilingslime2.object 44c44 < "imagePosition" : [-3, -10], --- > "imagePosition" : [-3, -9], tech\dash\ftlboost.tech 12a13 > "dashCooldown" : 1.3, treasure\biome.treasurepools 388d387 < {"weight" : 0.3, "item" : "shroomblock-recipe"}, 890d888 < {"weight" : 0.2, "item" : "shroomblock-recipe"}, 1213,1214c1211,1212 < {"weight" : 0.05, "item" : "slimechair-recipe"}, < {"weight" : 0.05, "item" : "slimebed-recipe"}, --- > {"weight" : 0.05, "item" : "slimechair"}, > {"weight" : 0.05, "item" : "slimebed"}, 1216,1217c1214,1215 < {"weight" : 0.2, "item" : "cutarrh"}, < {"weight" : 0.1, "item" : "katarrhna"}, --- > {"weight" : 0.09, "item" : "cutarrh"}, > {"weight" : 0.05, "item" : "katarrhna"},