FILES ----- interface\quests\questcomplete\questcomplete.png interface\windowconfig\questcomplete.config monsters\crawling\crawlingmonster.lua monsters\ground\approachstate.lua monsters\ground\groundmonster.lua monsters\ground\socializestate.lua monsters\ground\wanderstate.lua monsters\ground\largebiped\largebiped.monstertype monsters\ground\largebiped\largebiped.partparams monsters\ground\skills\stompattack.lua monsters\ground\skills\triplejumpattack.lua monsters\ground\smallquadruped\smallquadruped.animation monsters\ground\smallquadruped\smallquadruped.monstertype monsters\unique\poptop\wanderskipstate.lua projectiles\explosions\defensiveexplosion\defensiveexplosion.projectile scripts\pathing.lua DIFFS ----- interface\windowconfig\questcomplete.config 37c37 < "position" : [-11, 130] --- > "position" : [-42, 119] monsters\crawling\crawlingmonster.lua 521,522c521,524 < function jump() < mcontroller.controlJump() --- > function controlJump() > if mcontroller.onGround() then > mcontroller.controlJump() > end monsters\ground\approachstate.lua 41c41 < local moved = moveTo(option.approachPoint, dt, {run = option.approachDistance >= 1.0, returnBest = true, maxDistance = 15}) --- > moved = moveTo(option.approachPoint, dt, {run = option.approachDistance >= 1.0, returnBest = true, maxDistance = 15}) monsters\ground\groundmonster.lua 346c346 < mcontroller.controlJump() --- > controlJump() 369a370,375 > end > end > > function controlJump() > if mcontroller.onGround() then > mcontroller.controlJump() monsters\ground\socializestate.lua 73c73 < mcontroller.controlJump() --- > controlJump() monsters\ground\wanderstate.lua 36c36 < mcontroller.controlJump() --- > controlJump() monsters\ground\largebiped\largebiped.monstertype 70d69 < "skillCount" : 3, 75d73 < "skillCount" : 3, 80d77 < "skillCount" : 3, 85d81 < "skillCount" : 3, 91,107c87 < "specialSkills" : [ ] < }, < { < "baseSkills" : [ "meleeAttack" ], < "specialSkills" : [ ] < }, < { < "baseSkills" : [ "meleeAttack" ], < "specialSkills" : [ ] < }, < { < "baseSkills" : [ "meleeAttack" ], < "specialSkills" : [ ] < }, < { < "baseSkills" : [ "meleeAttack" ], < "specialSkills" : [ ] --- > "specialSkills" : [ "chargeAttack" ] 111c91 < "specialSkills" : [ ] --- > "specialSkills" : [ "stompAttack" ] 115c95 < "specialSkills" : [ ] --- > "specialSkills" : [ "stompAttack" ] 119c99 < "specialSkills" : [ ] --- > "specialSkills" : [ "stompAttack" ] monsters\ground\largebiped\largebiped.partparams 15,28c15 < "partParameters" : { < "largebellychest" : { < "specialSkills" : [ "stompAttack" ] < }, < "largecurlhead" : { < "specialSkills" : [ "gustAttack" ] < }, < "largecauldronhead" : { < "specialSkills" : [ "blinkAttack" ] < }, < "largecurltail" : { < "specialSkills" : [ "gustAttack" ] < } < } --- > "partParameters" : { } monsters\ground\skills\stompattack.lua 35c35 < mcontroller.controlJump() --- > controlJump() monsters\ground\skills\triplejumpattack.lua 62c62 < mcontroller.controlJump() --- > controlJump() monsters\ground\smallquadruped\smallquadruped.animation 86c86 < "offset" : [-0.25, 0] --- > "offset" : [-0.25, 1] 155c155 < "offset" : [-0.25, 0] --- > "offset" : [-0.25, 1] 224c224 < "offset" : [-0.25, 0] --- > "offset" : [-0.25, 1] 294c294 < "offset" : [-0.25, 0] --- > "offset" : [-0.25, 1] 389c389 < "offset" : [-0.25, 0] --- > "offset" : [-0.25, 1] monsters\ground\smallquadruped\smallquadruped.monstertype 98c98 < "collisionPoly" : [ [-1.5, -1.3], [-1.0, -2.0], [1.0, -2.0], [1.5, -1.3], [1.5, -0.9], [1.0, -0.4], [-1.0, -0.4], [-1.5, -0.9] ], --- > "collisionPoly" : [ [-1.5, -0.3], [-1.0, -1.0], [1.0, -1.0], [1.5, -0.3], [1.5, 0.1], [1.0, 0.6], [-1.0, 0.6], [-1.5, 0.1] ], 110,112d109 < "blockedSensors" : [ [2.7, -0.5], [2.7, -0.3], [2.7, 0.2], [2.7, 0.7], [3.2, -0.3], [3.2, 0.2], [3.2, 0.7] ], < "fallSensors" : [ [0.5, -2.5], [0.5, -3.5], [0.5, -4.5], [2.0, -2.5], [2.0, -3.5], [2.0, -4.5] ], < 114c111 < "poly" : [ [-2.0, -0.8], [-1.5, -1.5], [1.5, -1.5], [2.0, -0.8], [2.0, -0.4], [1.4, 0.1], [-1.4, 0.1], [-2.0, -0.4] ], --- > "poly" : [ [-1.5, -0.3], [-1.0, -1.0], [1.0, -1.0], [1.5, -0.3], [1.5, 0.1], [1.0, 0.6], [-1.0, 0.6], [-1.5, 0.1] ], 155,156c152,153 < "mouthOffset" : [1.0, 0], < "feetOffset" : [0, -14] --- > "mouthOffset" : [8, 0], > "feetOffset" : [0, -8] monsters\unique\poptop\wanderskipstate.lua 36c36 < mcontroller.controlJump() --- > controlJump() projectiles\explosions\defensiveexplosion\defensiveexplosion.projectile 9a10 > "bounces" : -1, scripts\pathing.lua 90a91 > attemptUnsticking() 104a106,110 > if action ~= "Arc" then > self.pathing.arcPreviousX = nil > self.pathing.arcPreviousY = nil > end > 115,116c121,122 < if delta[1] > 0.1 then < script.setUpdateDelta(1) --- > script.setUpdateDelta(1) > if delta[1] > 0.2 then 138c144 < mcontroller.setPosition(nextPathPosition) --- > --mcontroller.setPosition(currentEdge.source.position) 161c167,175 < if delta[2] < 0 and math.abs(delta[1]) < 1 then --- > if world.magnitude(delta) < 1 then > if self.pathing.arcPreviousX ~= nil and math.abs(self.pathing.arcPreviousX - mcontroller.position()[1]) < 0.1 then > -- We tried walking to the next node, but there was something in our > -- way. We're stuck! > advancePath() > return "running" > else > self.pathing.arcPreviousX = mcontroller.position()[1] > end 162a177,179 > if delta[2] < 0 then > mcontroller.controlDown() > end 164d180 < self.pathing.expirationTime = nil 165a182,184 > incrementStuckCount() > attemptUnsticking() > return false 175a195,201 > -- Advance path if the target position is in a different direction than the arc is pointing > local arcDirection = world.distance(currentEdge.target.position, currentEdge.source.position) > local targetDirection = world.distance(currentEdge.target.position, mcontroller.position()) > if arcDirection[1] * targetDirection[1] < 0 or arcDirection[2] * targetDirection[2] < 0 then > advancePath() > end > 178,181c204,209 < local velocity = currentEdge.source.velocity or currentEdge.target.velocity < if velocity then < mcontroller.setXVelocity(velocity[1]) < self.pathing.deltaX = velocity[1] > 0 and 1 or -1 --- > if currentEdge.target.velocity then > world.debugLine(position, vec2.add(position, currentEdge.target.velocity), "green") > mcontroller.setXVelocity(currentEdge.target.velocity[1]) > self.pathing.deltaX = currentEdge.target.velocity[1] > 0 and 1 or -1 > else > mcontroller.setXVelocity(0) 182a211 > 185d213 < 246a275 > attemptUnsticking() 264d292 < self.pathing.expirationTime = nil 276a305,312 > function attemptUnsticking() > -- Pathing is deterministic, so if we get stuck and try pathing again, we're > -- likely to end up stuck again. > -- This adds some randomness to try escaping obstacles that get us stuck. > moveX(math.random()-0.5, false) > script.setUpdateDelta(5) > end > 435c471 < -- world.debugLine(nextStep, vec2.add(nextStep, edge.source.velocity or edge.target.velocity or {0,0}), "blue") --- > -- world.debugLine(nextStep, vec2.add(nextStep, edge.source.velocity or edge.target.velocity or {0,0}), "yellow")