FILES ----- behaviors\monsters\boss\spiderboss\main.behavior monsters\groundmovement.lua monsters\boss\bossmonster.lua monsters\boss\missile\behavior.lua monsters\boss\tentaclecometspore\behavior.lua monsters\crawling\crawlingmonster.lua monsters\flying\skills\flyingrangedswoopattack.lua monsters\ground\groundmonster.lua monsters\pets\groundpet.lua monsters\swimming\swimmingmonster.lua monsters\unique\bugs\behavior.lua monsters\unique\giftmonster\behavior.lua monsters\unique\po\behavior.lua npcs\bmain.lua npcs\followstate.lua npcs\meleeattackstate.lua npcs\rangedattackstate.lua npcs\sitstate.lua npcs\villager.npctype npcs\wanderstate.lua npcs\guard\guardstate.lua npcs\mission\florancelebrator.npctype npcs\mission\floranspectator.npctype npcs\story\nuru.npctype objects\apex\securitycamera\securitycamera.lua objects\apex\turret\turret.lua objects\generic\frogmerchant\frogmerchant.object objects\generic\frogmerchant\frogmerchant.png objects\generic\frogmerchant\frogmerchanticon.png objects\wired\ironbeacon\decoyprincess.lua objects\wired\ironbeacon\ironbeacon.lua objects\wired\ironbeacon\jellyboss.lua objects\wired\ironbeacon\robot.lua objects\wired\standingturret\standingturret.lua scripts\behavior.lua scripts\pathing.lua scripts\sensors.lua scripts\util.lua scripts\actions\movement.lua scripts\actions\sensor.lua stats\effects\levitation\levitation.lua tech\blink\blink.lua tech\skyrail\skyrail.lua DIFFS ----- behaviors\monsters\boss\spiderboss\main.behavior 609c609 < "collisionType": "Dynamic" --- > "collisionType": ["Null", "Block", "Dynamic"] 749c749 < } \ No newline at end of file --- > } monsters\groundmovement.lua 40c40 < if world.rectCollision(jumpRegion, "Dynamic") then --- > if world.rectCollision(jumpRegion, {"Null", "Block", "Dynamic"}) then 54c54 < if not world.rectCollision(jumpClearanceRegion, "Dynamic") then --- > if not world.rectCollision(jumpClearanceRegion, {"Null", "Block", "Dynamic"}) then 73c73 < if not world.rectCollision(gapRegion, "Any") then --- > if not world.rectCollision(gapRegion, {"Null", "Block", "Dynamic", "Platform"}) then 88c88 < if world.rectCollision(blockedRect, "Dynamic") then --- > if world.rectCollision(blockedRect, {"Null", "Block", "Dynamic"}) then monsters\boss\bossmonster.lua 225c225 < return world.lineTileCollision(lineStart, lineEnd, "Dynamic") --- > return world.lineTileCollision(lineStart, lineEnd, {"Null", "Block", "Dynamic"}) monsters\boss\missile\behavior.lua 130c130 < if world.lineTileCollision(lineStart, lineEnd, "Dynamic") then --- > if world.lineTileCollision(lineStart, lineEnd, {"Null", "Block", "Dynamic"}) then monsters\boss\tentaclecometspore\behavior.lua 55,56c55 < not world.rectTileCollision(bounds, "Dynamic") and < world.rectTileCollision(bounds, "Any") --- > world.rectTileCollision(bounds, {"Platform"}) monsters\crawling\crawlingmonster.lua 333c333 < return world.rectTileCollision(floorCheckRegion, "Dynamic") --- > return world.rectTileCollision(floorCheckRegion, {"Null", "Block", "Dynamic"}) 439c439 < if world.rectTileCollision(stepCheckRegion, "Dynamic") then --- > if world.rectTileCollision(stepCheckRegion, {"Null", "Block", "Dynamic"}) then 468c468 < if world.rectTileCollision(wallCheckRegion, "Dynamic") then --- > if world.rectTileCollision(wallCheckRegion, {"Null", "Block", "Dynamic"}) then 551c551 < if not world.rectTileCollision(floorCheckRegion, "Dynamic") then --- > if not world.rectTileCollision(floorCheckRegion, {"Null", "Block", "Dynamic"}) then 559c559 < if world.rectTileCollision(convexCheckRegion, "Dynamic") then --- > if world.rectTileCollision(convexCheckRegion, {"Null", "Block", "Dynamic"}) then 772c772 < local canStand = world.lineTileCollision(approachPoint, {approachPoint[1], startRect[2] + mcontroller.boundBox()[2]}, "Any") --- > local canStand = world.lineTileCollision(approachPoint, {approachPoint[1], startRect[2] + mcontroller.boundBox()[2]}, {"Null", "Block", "Dynamic", "Platform"}) monsters\flying\skills\flyingrangedswoopattack.lua 11c11 < if world.lineTileCollision(self.position, forwardSensor, "Dynamic") then --- > if world.lineTileCollision(self.position, forwardSensor, {"Null", "Block", "Dynamic"}) then 16c16 < if world.lineTileCollision(self.position, downSensor, "Dynamic") then --- > if world.lineTileCollision(self.position, downSensor, {"Null", "Block", "Dynamic"}) then monsters\ground\groundmonster.lua 463c463 < if world.rectTileCollision(groundRegion, "Any") then --- > if world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic", "Platform"}) then monsters\pets\groundpet.lua 372c372 < if world.lineTileCollision({position[1], position[2] + bounds[2] + 1.5}, { position[1] + boundsEdge + direction, position[2] + bounds[2] + 1.5}, "Dynamic") then --- > if world.lineTileCollision({position[1], position[2] + bounds[2] + 1.5}, { position[1] + boundsEdge + direction, position[2] + bounds[2] + 1.5}, {"Null", "Block", "Dynamic"}) then monsters\swimming\swimmingmonster.lua 131c131 < if world.pointTileCollision(entity.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), "Dynamic") then --- > if world.pointTileCollision(entity.toAbsolutePosition(vec2.rotate(sensor, self.rotation)), {"Dynamic", "Null", "Block"}) then monsters\unique\bugs\behavior.lua 32c32 < if world.lineTileCollision(position, minGroundLine, "Dynamic") or world.liquidAt(minGroundLine) then --- > if world.lineTileCollision(position, minGroundLine, {"Null", "Block", "Dynamic"}) or world.liquidAt(minGroundLine) then 34c34 < elseif not world.lineTileCollision(position, maxGroundLine, "Dynamic") or not world.liquidAt(maxGroundLine) then --- > elseif not world.lineTileCollision(position, maxGroundLine, {"Null", "Block", "Dynamic"}) or not world.liquidAt(maxGroundLine) then monsters\unique\giftmonster\behavior.lua 61c61 < if world.rectTileCollision(bounds, "Dynamic") then --- > if world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then monsters\unique\po\behavior.lua 131c131 < return world.rectTileCollision(groundRegion, "Dynamic") --- > return world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic"}) npcs\bmain.lua 0a1,5 > require "/scripts/behavior.lua" > require "/scripts/pathing.lua" > require "/scripts/util.lua" > require "/scripts/vec2.lua" > 28c33 < --- > npcs\followstate.lua 34c34 < local blocksInLos = world.collisionBlocksAlongLine(position, playerPosition, "Dynamic") --- > local blocksInLos = world.collisionBlocksAlongLine(position, playerPosition, {"Null", "Block", "Dynamic"}) 204c204 < local blocks = world.collisionBlocksAlongLine(lineStart, lineEnd, "Any") --- > local blocks = world.collisionBlocksAlongLine(lineStart, lineEnd, {"Null", "Block", "Dynamic", "Platform"}) 214c214 < local blocksInLos = world.collisionBlocksAlongLine(mcontroller.position(), playerPosition, "Dynamic") --- > local blocksInLos = world.collisionBlocksAlongLine(mcontroller.position(), playerPosition, {"Null", "Block", "Dynamic"}) npcs\meleeattackstate.lua 309c309 < return not world.rectTileCollision(otherSideRegion, "Dynamic") --- > return not world.rectTileCollision(otherSideRegion, {"Null", "Block", "Dynamic"}) npcs\rangedattackstate.lua 160,161c160,161 < return world.lineTileCollision({ position[1], position[2] + entity.configParameter("rangedAttack.coverYOffset") }, targetPosition, "Dynamic") and < not world.lineTileCollision({ position[1], position[2] + entity.configParameter("rangedAttack.coverYClearanceOffset") }, targetPosition, "Dynamic") --- > return world.lineTileCollision({ position[1], position[2] + entity.configParameter("rangedAttack.coverYOffset") }, targetPosition, {"Null", "Block", "Dynamic"}) and > not world.lineTileCollision({ position[1], position[2] + entity.configParameter("rangedAttack.coverYClearanceOffset") }, targetPosition, {"Null", "Block", "Dynamic"}) 167c167 < return not world.lineTileCollision(coverPosition, coverEndpoint, "Dynamic") --- > return not world.lineTileCollision(coverPosition, coverEndpoint, {"Null", "Block", "Dynamic"}) npcs\sitstate.lua 40c40 < if world.magnitude(toTarget) < entity.configParameter("sit.sitRadius") and not world.lineTileCollision(position, targetPosition, "Dynamic") then --- > if world.magnitude(toTarget) < entity.configParameter("sit.sitRadius") and not world.lineTileCollision(position, targetPosition, {"Null", "Block", "Dynamic"}) then npcs\villager.npctype 10,15c10 < "/npcs/bmain.lua", < "/scripts/behavior.lua", < "/scripts/util.lua", < "/scripts/vec2.lua", < "/scripts/pathing.lua", < "/scripts/tenant.lua" --- > "/npcs/bmain.lua" npcs\wanderstate.lua 122c122 < if world.rectTileCollision(region, "Dynamic") then --- > if world.rectTileCollision(region, {"Null", "Block", "Dynamic"}) then npcs\guard\guardstate.lua 146c146 < if not world.lineTileCollision(position, vec2.add({ -direction * entity.configParameter("guard.wallCheckDistance"), 0 }, position), "Dynamic") then --- > if not world.lineTileCollision(position, vec2.add({ -direction * entity.configParameter("guard.wallCheckDistance"), 0 }, position), {"Null", "Block", "Dynamic"}) then npcs\mission\florancelebrator.npctype 11,15c11 < "/npcs/bmain.lua", < "/scripts/behavior.lua", < "/scripts/pathing.lua", < "/scripts/util.lua", < "/scripts/vec2.lua" --- > "/npcs/bmain.lua" npcs\mission\floranspectator.npctype 11,15c11 < "/npcs/bmain.lua", < "/scripts/behavior.lua", < "/scripts/pathing.lua", < "/scripts/util.lua", < "/scripts/vec2.lua" --- > "/npcs/bmain.lua" npcs\story\nuru.npctype 21,25c21 < "/npcs/bmain.lua", < "/scripts/behavior.lua", < "/scripts/pathing.lua", < "/scripts/util.lua", < "/scripts/vec2.lua" --- > "/npcs/bmain.lua" objects\apex\securitycamera\securitycamera.lua 50c50 < local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, "Dynamic", 1) --- > local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, {"Null", "Block", "Dynamic"}, 1) objects\apex\turret\turret.lua 53c53 < local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, "Dynamic", 1) --- > local blocks = world.collisionBlocksAlongLine(tipPosition, laserEndpoint, {"Null", "Block", "Dynamic"}, 1) objects\generic\frogmerchant\frogmerchant.object 37a38 > "novakidDescription" : "Don't see many frog merchants round these parts!", objects\wired\ironbeacon\decoyprincess.lua 16c16 < return not world.rectTileCollision(bounds, "Dynamic") --- > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) objects\wired\ironbeacon\ironbeacon.lua 16c16 < return not world.rectTileCollision(bounds, "Dynamic") --- > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) objects\wired\ironbeacon\jellyboss.lua 16c16 < return not world.rectTileCollision(bounds, "Dynamic") --- > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) objects\wired\ironbeacon\robot.lua 16c16 < return not world.rectTileCollision(bounds, "Dynamic") --- > return not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) objects\wired\standingturret\standingturret.lua 101c101 < local blocks = world.collisionBlocksAlongLine(basePosition, targetPosition, "Dynamic", 1) --- > local blocks = world.collisionBlocksAlongLine(basePosition, targetPosition, {"Null", "Block", "Dynamic"}, 1) scripts\behavior.lua 81c81 < table.insert(self.children, node) --- > table.insert(self.children, node) 91c91,94 < function BTComposite:resetChildren() --- > function BTComposite:reset() > end > > function BTComposite:interruptChildren() 92a96,107 > child:interrupt() > end > end > > function BTComposite:interrupt() > self:interruptChildren() > end > > function BTComposite:runChild(index, dt) > local child = self.children[index] > local result = child:run(dt) > if result == true or result == false then 94a110 > return result 122c138 < local result = self.children[self.current]:run(dt) --- > local result = self:runChild(self.current, dt) 127d142 < self:reset() 133,134d147 < < self:reset() 138a152,154 > if self.current and self.children[self.current] then > self.children[self.current]:reset() > end 140d155 < self:resetChildren() 169c184 < local result = self.children[self.current]:run(dt) --- > local result = self:runChild(self.current, dt) 172d186 < --Node failed, try the next one 175,176d188 < --Node succeeded, propagate success up the tree < self:reset() 179d190 < --Just keep running 183,184d193 < < self:reset() 188a198,200 > if self.current and self.children[self.current] then > self.children[self.current]:reset() > end 190d201 < self:resetChildren() 218d228 < local interruption = false 222,230c232,244 < result = child:run(dt) < if result == true then < self:reset() < return true < elseif result == false then < child:reset() < self.current = self.current + 1 < else < if i < self.current then interruption = true end --- > result = self:runChild(i, dt) > > if result == false then > if i == self.current then > self.current = self.current + 1 > end > else > if i < self.current and result == "running" then > --Interrupt and reset the current node > self.children[self.current]:interrupt() > self.children[self.current]:reset() > end > 231a246,249 > > if result == true then > return true > end 233,234d250 < elseif interruption then < child:reset() 239d254 < 243a259,261 > if self.current and self.children[self.current] then > self.children[self.current]:reset() > end 245d262 < self:resetChildren() 276,277c293,295 < for i,child in ipairs(self.children) do < local result = child:run(dt) --- > for i,_ in ipairs(self.children) do > local result = self:runChild(i, dt) > 285d302 < self:reset() 288d304 < self:reset() 297c313,315 < self:resetChildren() --- > for _,child in pairs(self.children) do > child:reset() > end 324,328c342 < local result = self.children[self.current]:run(dt) < < if result == true or result == false then < self:reset() < end --- > local result = self:runChild(self.current, dt) 333a348,350 > if self.current and self.children[self.current] then > self.children[self.current]:reset() > end 335d351 < self:resetChildren() 359c375,379 < return self.child:run(dt) --- > return self:runChild(dt) > end > > function BTDecorator:interrupt() > self.child:interrupt() 365a386,393 > function BTDecorator:runChild(dt) > local result = self.child:run(dt) > if result == true or result == false then > self.child:reset() > end > return result > end > 383c411 < local result = self.child:run(dt) --- > local result = self:runChild(dt) 410c438 < local result = self.child:run(dt) --- > local result = self:runChild(dt) 435c463 < local result = self.child:run(dt) --- > local result = self:runChild(dt) 437d464 < self.child:reset() 444,446d470 < function BTFailer:reset() < end < 471c495 < local result = self.child:run(dt) --- > local result = self:runChild(dt) 507c531 < local result = self.child:run(dt) --- > local result = self:runChild(dt) 541c565 < self.result = self.child:run(dt) --- > self.result = self:runChild(dt) 544d567 < self.child:reset() 604c627 < local childResult = self.child:run(dt) --- > local childResult = self:runChild(dt) 613d635 < self:reset() 663c685 < local result = self.child:run(dt) --- > local result = self:runChild(dt) 669d690 < self:reset() 711d731 < --world.logInfo("%s %s", self.name, result) 713c733 < world.logInfo("Action %s failed: %s", self.name, result) --- > world.logInfo("Action %s broke: %s", self.name, result) 715,716d734 < elseif result == true or result == false then < self:reset() 722a741,743 > end > > function BTAction:interrupt() scripts\pathing.lua 108c108 < if world.lineTileCollision(line[1], line[2], "Dynamic") and not world.lineTileCollision(line[1], line[2], "Static") then --- > if world.lineTileCollision(line[1], line[2], {"Null", "Block", "Dynamic"}) and not world.lineTileCollision(line[1], line[2], {"Null", "Block"}) then 457c457 < if (world.rectTileCollision(groundRegion, "Any") or (not avoidLiquid and world.liquidAt(position))) --- > if (world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic", "Platform"}) or (not avoidLiquid and world.liquidAt(position))) 499c499 < return world.rectTileCollision(groundRegion, "Dynamic") --- > return world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic"}) scripts\sensors.lua 29c29 < return world.pointTileCollision(position, "Dynamic") --- > return world.pointTileCollision(position, {"Null", "Block", "Dynamic"}) 32c32 < return world.lineTileCollision(mcontroller.position(), position, "Dynamic") --- > return world.lineTileCollision(mcontroller.position(), position, {"Null", "Block", "Dynamic"}) scripts\util.lua 15c15 < if world.pointTileCollision(entity.toAbsolutePosition(sensor), "Dynamic") then --- > if world.pointTileCollision(entity.toAbsolutePosition(sensor), {"Null", "Block", "Dynamic"}) then scripts\actions\movement.lua 266c266 < if world.lineTileCollision(line[1], line[2], "Dynamic") and not world.lineTileCollision(line[1], line[2], "Static") then --- > if world.lineTileCollision(line[1], line[2], "Dynamic") and not world.lineTileCollision(line[1], line[2], {"Null", "Block"}) then scripts\actions\sensor.lua 10c10 < collisionType = "Dynamic" --- > collisionType = {"Null", "Block", "Dynamic"} 32c32 < end \ No newline at end of file --- > end stats\effects\levitation\levitation.lua 102c102 < local collisionLevel = "Any" --- > local collisionSet = {"Null", "Block", "Dynamic", "Platform"} 104c104 < collisionLevel = "Dynamic" --- > collisionSet = {"Null", "Block", "Dynamic"} 106c106 < local blocks = world.collisionBlocksAlongLine(lineStart, lineEnd, collisionLevel) --- > local blocks = world.collisionBlocksAlongLine(lineStart, lineEnd, collisionSet) tech\blink\blink.lua 8c8 < local collisionBlocks = world.collisionBlocksAlongLine(mcontroller.position(), position, "Dynamic", 1) --- > local collisionBlocks = world.collisionBlocksAlongLine(mcontroller.position(), position, {"Null", "Block", "Dynamic"}, 1) 24c24 < local groundBlocks = world.collisionBlocksAlongLine(position, {position[1], position[2] + blinkFootOffset}, "Dynamic", 1) --- > local groundBlocks = world.collisionBlocksAlongLine(position, {position[1], position[2] + blinkFootOffset}, {"Null", "Block", "Dynamic"}, 1) 32c32 < local ceilingBlocks = world.collisionBlocksAlongLine(position, {position[1], position[2] + blinkHeadOffset}, "Dynamic", 1) --- > local ceilingBlocks = world.collisionBlocksAlongLine(position, {position[1], position[2] + blinkHeadOffset}, {"Null", "Block", "Dynamic"}, 1) 41c41 < if not position or world.lineTileCollision(mcontroller.position(), position, "Dynamic") then --- > if not position or world.lineTileCollision(mcontroller.position(), position, {"Null", "Block", "Dynamic"}) then 51c51 < if world.pointTileCollision(checkPosition, "Any") then --- > if world.pointTileCollision(checkPosition, {"Null", "Block", "Dynamic", "Platform"}) then tech\skyrail\skyrail.lua 444,445c444,446 < if world.lineTileCollision(lineStart,lineEnd,"Any") then < local blocksX = world.collisionBlocksAlongLine(lineStart, lineEnd, "Any", -1) --- > local collisionSet = {"Null", "Block", "Dynamic", "Platform"} > if world.lineTileCollision(lineStart, lineEnd, collisionSet) then > local blocksX = world.collisionBlocksAlongLine(lineStart, lineEnd, collisionSet, -1)