FILES ----- monsters\boss\penguin\general.monstertype monsters\boss\penguin\rockettrooper.monstertype monsters\boss\penguin\trooper.monstertype monsters\boss\penguintank\penguintank.monstertype monsters\ground\approachstate.lua monsters\ground\groundmonster.lua monsters\ground\socializestate.lua monsters\ground\wanderstate.lua monsters\ground\hugebiped\hugebiped.monstertype monsters\ground\largebiped\largebiped.monstertype monsters\ground\largebiped\largebiped.partparams monsters\ground\largebiped\body\belly\largebellychest.monsterpart monsters\ground\largebiped\body\egg\largeeggchest.monsterpart monsters\ground\largebiped\body\fourleg\largefourlegchest.monsterpart monsters\ground\largebiped\body\fuzzy\largefuzzychest.monsterpart monsters\ground\largebiped\body\skirt\largeskirtchest.monsterpart monsters\ground\largebiped\body\zigzag\largezigzagchest.monsterpart monsters\ground\largequadruped\largequadruped.monstertype monsters\ground\largequadruped\largequadruped.partparams monsters\ground\largequadruped\legs\arm\largearmlegs.monsterpart monsters\ground\largequadruped\legs\beastspider\largebeastspiderlegs.monsterpart monsters\ground\largequadruped\legs\bigcat\largebigcatlegs.monsterpart monsters\ground\largequadruped\legs\derp\largederplegs.monsterpart monsters\ground\largequadruped\legs\frog\largefroglegs.monsterpart monsters\ground\largequadruped\legs\gorilla\largegorillalegs.monsterpart monsters\ground\largequadruped\legs\tentacle\largetentaclelegs.monsterpart monsters\ground\minibossbiped\minibossbiped.monstertype monsters\ground\minibossquadruped\minibossquadruped.monstertype monsters\ground\skills\stompattack.lua monsters\ground\skills\triplejumpattack.lua monsters\ground\smallbiped\smallbiped.monstertype monsters\ground\smallbiped\smallbiped.partparams monsters\ground\smallbiped\body\belly\smallbellychest.monsterpart monsters\ground\smallbiped\body\dino\smalldinochest.monsterpart monsters\ground\smallbiped\body\fourleg\smallfourlegchest.monsterpart monsters\ground\smallbiped\body\fuzzy\smallfuzzychest.monsterpart monsters\ground\smallbiped\body\skirt\smallskirtchest.monsterpart monsters\ground\smallbiped\body\thinleg\smallthinlegchest.monsterpart monsters\ground\smallquadruped\smallquadruped.monstertype monsters\ground\smallquadruped\legs\arm\smallarmlegs.monsterpart monsters\ground\smallquadruped\legs\beastspider\smallbeastspiderlegs.monsterpart monsters\ground\smallquadruped\legs\bigcat\smallbigcatlegs.monsterpart monsters\ground\smallquadruped\legs\derp\smallderplegs.monsterpart monsters\ground\smallquadruped\legs\frog\smallfroglegs.monsterpart monsters\ground\smallquadruped\legs\gorilla\smallgorillalegs.monsterpart monsters\ground\smallquadruped\legs\tentacle\smalltentaclelegs.monsterpart monsters\pets\bunny\petbunny.monstertype monsters\pets\cat\petcat.monstertype monsters\pets\crasberry\crasberry.monstertype monsters\pets\orbis\petorbis.monstertype monsters\pets\piglett\piglett.monstertype monsters\pets\snake\petsnake.monstertype monsters\pets\snugget\snugget.monstertype monsters\pets\weasel\petweasel.monstertype monsters\unique\apexbrainmutant\apexbrainmutant.monstertype monsters\unique\apexmutant\apexmutant.monstertype monsters\unique\glitchknight\glitchknight.monstertype monsters\unique\moontant\moontant.monstertype monsters\unique\pinfriend\pinfriend.monstertype monsters\unique\po\megapo.monstertype monsters\unique\po\micropo.monstertype monsters\unique\po\po.monstertype monsters\unique\pogolem\pogolem.monstertype monsters\unique\poptop\poptop.monstertype monsters\unique\poptop\wanderskipstate.lua monsters\unique\smallshroom\smallshroom.monstertype monsters\unique\smallshroom\body\fourleg\shroomchest.monsterpart monsters\unique\toxicgolem\toxicgolem.monstertype npcs\apexslave.npctype npcs\bandit.npctype npcs\chatstate.lua npcs\colourfulvillager.npctype npcs\cultist.npctype npcs\default.npctype npcs\follower.npctype npcs\followstate.lua npcs\guard.npctype npcs\meleeattackstate.lua npcs\merchant.npctype npcs\nakedvillager.npctype npcs\pyramidguard.npctype npcs\servant.npctype npcs\sitstate.lua npcs\sleepstate.lua npcs\testbandit.npctype npcs\testguard.npctype npcs\tombzombie.npctype npcs\towerascendant.npctype npcs\villageguard.npctype npcs\villager.npctype npcs\wanderstate.lua npcs\guard\guardstate.lua npcs\guard\returntopoststate.lua npcs\mission\minersurvivor.npctype npcs\mission\mutantminer.npctype npcs\mission\survivor.npctype npcs\outpost\outpostcivilian.npctype objects\generic\statuspod\statuspod.object objects\wired\door\door.lua player\playereffects.animation scripts\pathing.lua DIFFS ----- monsters\boss\penguin\general.monstertype 31d30 < "jumpSpeed" : 5, 33,34c32,38 < "airFriction" : 0.5, < "airForce" : 30.0 --- > "airForce" : 30.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 15.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\boss\penguin\rockettrooper.monstertype 31d30 < "jumpSpeed" : 5, 33,34c32,38 < "airFriction" : 0.5, < "airForce" : 30.0 --- > "airForce" : 30.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 15.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\boss\penguin\trooper.monstertype 31d30 < "jumpSpeed" : 5, 33,34c32,38 < "airFriction" : 0.5, < "airForce" : 30.0 --- > "airForce" : 30.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 15.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\boss\penguintank\penguintank.monstertype 30d29 < "jumpSpeed" : 5, 32,33c31,35 < "airFriction" : 0.5, < "airForce" : 30.0 --- > "airForce" : 30.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 0.0 > } monsters\ground\approachstate.lua 35,39d34 < if option.valid and checkStuck() > 4 then < self.state.pickState({flee=true}) < return true < end < 41d35 < local deltaX 43,46c37,45 < if moveTo(option.approachPoint, dt, {run = option.approachDistance >= 1.0}) < or (option.approachDistance < 6 and moveTo(option.approachPoint, dt, {run = option.approachDistance >= 1.0, returnBest = true, maxDistance = 6})) then < setMovementState() < else --- > local moved = moveTo(option.approachPoint, dt, {run = option.approachDistance >= 1.0}) > > -- Try pathing with different parameters if movement failed > if moved == false then > local moved = moveTo(option.approachPoint, dt, {run = option.approachDistance >= 1.0, returnBest = true, maxDistance = 15}) > end > > -- If that still fails, fall back to very basic movement > if moved == false then 47a47,58 > > --If pathing is stuck and fallback movement is stuck, flee > if self.pathing.stuck and checkStuck() > 4 then > self.state.pickState({flee=true}) > return true > end > elseif moved == "running" then > --One of the pathing functions returned a running status > setMovementState(option.approachDistance >= 1.0) > elseif moved == true then > --Arrived at the approachPoint somehow > return true 48a60 > 62c74 < end \ No newline at end of file --- > end monsters\ground\groundmonster.lua 346c346 < jump() --- > mcontroller.controlJump() 354a355,362 > if delta[1] ~= 0 then > setMovementState(run) > return true > else > setIdleState() > return false > end > 360a369 > return false 365,369d373 < function jump() < mcontroller.controlJump() < end < < -------------------------------------------------------------------------------- 748a753,760 > end > end > > function setIdleState() > if not mcontroller.onGround() then > entity.setAnimationState("movement", "jump") > else > entity.setAnimationState("movement", "idle") monsters\ground\socializestate.lua 73c73 < jump() --- > mcontroller.controlJump() monsters\ground\wanderstate.lua 36c36 < jump() --- > mcontroller.controlJump() monsters\ground\hugebiped\hugebiped.monstertype 83c83,89 < "runSpeed" : 12 --- > "runSpeed" : 12, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\ground\largebiped\largebiped.monstertype 134c134,139 < "jumpSpeed" : 4 --- > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\ground\largebiped\largebiped.partparams 6c6 < "jumpMultiplier" : [ "multiply", 0.7], --- > "jumpMultiplier" : [ "multiply", 1.0], monsters\ground\largebiped\body\belly\largebellychest.monsterpart 13c13 < "jumpMultiplier" : 1.5 --- > "jumpMultiplier" : 1.0 monsters\ground\largebiped\body\egg\largeeggchest.monsterpart 13c13 < "jumpMultiplier" : 1.1 --- > "jumpMultiplier" : 1.0 monsters\ground\largebiped\body\fourleg\largefourlegchest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\largebiped\body\fuzzy\largefuzzychest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\largebiped\body\skirt\largeskirtchest.monsterpart 13c13 < "jumpMultiplier" : 1.3 --- > "jumpMultiplier" : 1.0 monsters\ground\largebiped\body\zigzag\largezigzagchest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\largequadruped\largequadruped.monstertype 148c148,154 < "runSpeed" : 8.0 --- > "runSpeed" : 8.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\ground\largequadruped\largequadruped.partparams 6c6 < "jumpMultiplier" : [ "multiply", 0.7], --- > "jumpMultiplier" : [ "multiply", 1.0], monsters\ground\largequadruped\legs\arm\largearmlegs.monsterpart 14c14 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\largequadruped\legs\beastspider\largebeastspiderlegs.monsterpart 14c14 < "jumpMultiplier" : 1.6 --- > "jumpMultiplier" : 1.0 monsters\ground\largequadruped\legs\bigcat\largebigcatlegs.monsterpart 14c14 < "jumpMultiplier" : 1.3 --- > "jumpMultiplier" : 1.0 monsters\ground\largequadruped\legs\derp\largederplegs.monsterpart 14c14 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\largequadruped\legs\frog\largefroglegs.monsterpart 14c14 < "jumpMultiplier" : 1.6 --- > "jumpMultiplier" : 1.0 monsters\ground\largequadruped\legs\gorilla\largegorillalegs.monsterpart 14c14 < "jumpMultiplier" : 1.3 --- > "jumpMultiplier" : 1.0 monsters\ground\largequadruped\legs\tentacle\largetentaclelegs.monsterpart 14c14 < "jumpMultiplier" : 1.4 --- > "jumpMultiplier" : 1.0 monsters\ground\minibossbiped\minibossbiped.monstertype 85c85,91 < "runSpeed" : 13 --- > "runSpeed" : 13, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\ground\minibossquadruped\minibossquadruped.monstertype 118c118,124 < "runSpeed" : 13 --- > "runSpeed" : 13, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\ground\skills\stompattack.lua 35c35 < jump() --- > mcontroller.controlJump() monsters\ground\skills\triplejumpattack.lua 62c62 < jump() --- > mcontroller.controlJump() monsters\ground\smallbiped\smallbiped.monstertype 97c97,103 < "runSpeed" : 6.5 --- > "runSpeed" : 6.5, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\ground\smallbiped\smallbiped.partparams 6c6 < "jumpMultiplier" : [ "multiply", 0.7], --- > "jumpMultiplier" : [ "multiply", 1.0], monsters\ground\smallbiped\body\belly\smallbellychest.monsterpart 13c13 < "jumpMultiplier" : 1.5 --- > "jumpMultiplier" : 1.0 monsters\ground\smallbiped\body\dino\smalldinochest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\smallbiped\body\fourleg\smallfourlegchest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\smallbiped\body\fuzzy\smallfuzzychest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\smallbiped\body\skirt\smallskirtchest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\smallbiped\body\thinleg\smallthinlegchest.monsterpart 13c13 < "jumpMultiplier" : 1.5 --- > "jumpMultiplier" : 1.0 monsters\ground\smallquadruped\smallquadruped.monstertype 101c101,107 < "runSpeed" : 6.5 --- > "runSpeed" : 6.5, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\ground\smallquadruped\legs\arm\smallarmlegs.monsterpart 14c14 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\smallquadruped\legs\beastspider\smallbeastspiderlegs.monsterpart 14c14 < "jumpMultiplier" : 1.6 --- > "jumpMultiplier" : 1.0 monsters\ground\smallquadruped\legs\bigcat\smallbigcatlegs.monsterpart 14c14 < "jumpMultiplier" : 1.3 --- > "jumpMultiplier" : 1.0 monsters\ground\smallquadruped\legs\derp\smallderplegs.monsterpart 14c14 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\ground\smallquadruped\legs\frog\smallfroglegs.monsterpart 14c14 < "jumpMultiplier" : 1.6 --- > "jumpMultiplier" : 1.0 monsters\ground\smallquadruped\legs\gorilla\smallgorillalegs.monsterpart 14c14 < "jumpMultiplier" : 1.3 --- > "jumpMultiplier" : 1.0 monsters\ground\smallquadruped\legs\tentacle\smalltentaclelegs.monsterpart 14c14 < "jumpMultiplier" : 1.4 --- > "jumpMultiplier" : 1.0 monsters\pets\bunny\petbunny.monstertype 116d115 < "gravityMultiplier" : 1.5, 119d117 < "jumpSpeed" : 15, 121,122c119,125 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\pets\cat\petcat.monstertype 116d115 < "gravityMultiplier" : 1.5, 119d117 < "jumpSpeed" : 15, 121,122c119,125 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\pets\crasberry\crasberry.monstertype 118d117 < "gravityMultiplier" : 1.5, 121d119 < "jumpSpeed" : 15, 123,124c121,127 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\pets\orbis\petorbis.monstertype 117d116 < "gravityMultiplier" : 1.5, 120d118 < "jumpSpeed" : 15, 122,123c120,126 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\pets\piglett\piglett.monstertype 116d115 < "gravityMultiplier" : 1.5, 119d117 < "jumpSpeed" : 15, 121,122c119,125 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\pets\snake\petsnake.monstertype 116d115 < "gravityMultiplier" : 1.5, 119d117 < "jumpSpeed" : 15, 121,122c119,125 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\pets\snugget\snugget.monstertype 119d118 < "gravityMultiplier" : 1.5, 122d120 < "jumpSpeed" : 15, 124,125c122,128 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\pets\weasel\petweasel.monstertype 119d118 < "gravityMultiplier" : 1.5, 122d120 < "jumpSpeed" : 15, 124,125c122,128 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\unique\apexbrainmutant\apexbrainmutant.monstertype 66d65 < "jumpSpeed" : 5, 68,69c67,73 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 15.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\unique\apexmutant\apexmutant.monstertype 66c66 < "mass" : 0.2, --- > "mass" : 0.5, 69d68 < "jumpSpeed" : 20.0, 71,72c70,76 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > "airFriction" : 0.0, > "airJumpProfile": { > "jumpSpeed" : 15.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } monsters\unique\glitchknight\glitchknight.monstertype 34d33 < "jumpSpeed" : 18, 36,37c35,41 < "airFriction" : 0.25, < "airForce" : 50.0 --- > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 45.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\moontant\moontant.monstertype 87a88 > "airFriction" : 0.0, 89,92c90,92 < "jumpSpeed" : 15.0, < "jumpControlForce" : 0.0, < "jumpInitialPercentage" : 0.6, < "jumpHoldTime" : 0.3 --- > "jumpSpeed" : 20.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 monsters\unique\pinfriend\pinfriend.monstertype 34d33 < "jumpSpeed" : 5, 36,37c35,42 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 20.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\po\megapo.monstertype 33d32 < "jumpSpeed" : 2, 35,37c34,40 < "airFriction" : 0.5, < "airForce" : 5.0, < "jumpControlForce" : 5 --- > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 20.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\po\micropo.monstertype 33d32 < "jumpSpeed" : 2, 35,37c34,40 < "airFriction" : 0.5, < "airForce" : 5.0, < "jumpControlForce" : 5 --- > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 20.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\po\po.monstertype 33d32 < "jumpSpeed" : 2, 35d33 < "airFriction" : 0.5, 37c35,41 < "jumpControlForce" : 5 --- > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 20.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\pogolem\pogolem.monstertype 61d60 < "jumpSpeed" : 5, 63,64c62,69 < "airFriction" : 0.25, < "airForce" : 50.0 --- > "airForce" : 50.0, > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 15.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\poptop\poptop.monstertype 56c56,62 < "jumpSpeed" : 5 --- > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 45.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\poptop\wanderskipstate.lua 36c36 < jump() --- > mcontroller.controlJump() monsters\unique\smallshroom\smallshroom.monstertype 95c95,102 < "runSpeed" : 6 --- > "runSpeed" : 6, > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 40.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } monsters\unique\smallshroom\body\fourleg\shroomchest.monsterpart 13c13 < "jumpMultiplier" : 1.2 --- > "jumpMultiplier" : 1.0 monsters\unique\toxicgolem\toxicgolem.monstertype 31d30 < "jumpSpeed" : 5, 33,34c32,38 < "airFriction" : 0.25, < "airForce" : 50.0 --- > > "airFriction" : 0.0, > "airJumpProfile" : { > "jumpSpeed" : 20.0, > "jumpInitialPercentage" : 1.0, > "jumpHoldTime" : 0.0 > } npcs\apexslave.npctype 569c569,574 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\bandit.npctype 174c174,179 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\chatstate.lua 62c62,63 < if not moveTo(partnerPosition, dt) then --- > local moved = moveTo(partnerPosition, dt) > if moved == false and self.pathing.stuck then 63a65,66 > else > return false npcs\colourfulvillager.npctype 569c569,574 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\cultist.npctype 89c89,94 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\default.npctype 96c96,101 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\follower.npctype 726c726,731 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\followstate.lua 133,134d132 < local toTargetPosition = world.distance(stateData.targetPosition, position) < local shouldRun = targetPositionDistance > stateData.runDistance 136,140c134,139 < controlFace(toTarget[1]) < < moveTo(stateData.targetPosition, dt, { < run = stateData.run; < }) --- > local moved = moveTo(stateData.targetPosition, dt, {run = stateData.run}) > if moved == "running" then > controlFace(self.pathing.deltaX) > elseif moved == false and self.pathing.stuck then > return true > end npcs\guard.npctype 143c143,150 < "mass" : 0.6 --- > "mass" : 0.6, > > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\meleeattackstate.lua 229c229,230 < if moveTo(movementTargetPosition, dt, { run = running }) then --- > local moved = moveTo(movementTargetPosition, dt, { run = running }) > if moved == "running" then 230a232,233 > elseif moved == false and self.pathing.stuck then > return true npcs\merchant.npctype 2042c2042,2047 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\nakedvillager.npctype 1798c1798,1803 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\pyramidguard.npctype 101,103c101,106 < //"jumpingSuppressed" : true, < "airJumpProfile" : { < "jumpSpeed" : 12.00 --- > > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 15.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 npcs\servant.npctype 639c639,644 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\sitstate.lua 44,46c44,45 < world.debugLine(position, targetPosition, "green") < world.debugPoint(position, "green") < if moveTo(targetPosition, dt) then --- > local moved = moveTo(targetPosition, dt) > if moved == "running" then 47a47,48 > elseif moved == false and self.pathing.stuck then > return true, entity.configParameter("sit.cooldown") npcs\sleepstate.lua 44c44,49 < moveTo(bedPosition, dt) --- > local moved = moveTo(bedPosition, dt) > if moved == "running" then > controlFace(self.pathing.deltaX or toTarget[1]) > elseif moved == false then > moveTo(bedPosition, dt, { returnBest = true, maxDistance = 20 }) > end npcs\testbandit.npctype 174c174,179 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\testguard.npctype 548c548,553 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\tombzombie.npctype 87,89c87,92 < //"jumpingSuppressed" : true, < "airJumpProfile" : { < "jumpSpeed" : 12.00 --- > > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 15.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 npcs\towerascendant.npctype 173c173,178 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\villageguard.npctype 1150c1150,1155 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\villager.npctype 2099c2099,2104 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\wanderstate.lua 56c56,57 < if moveTo(stateData.targetPosition, dt) then --- > local moved = moveTo(stateData.targetPosition, dt) > if moved == "running" then 57a59,60 > elseif moved == false then > moveTo(stateData.targetPosition, dt, { returnBest = true, maxDistance = 20 }) npcs\guard\guardstate.lua 155,159c155,160 < moveTo(stateData.patrolTarget, dt) < local toTarget = world.distance(stateData.patrolTarget, position) < controlFace(self.pathing.deltaX or toTarget[1]) < < if world.magnitude(toTarget) < 3.0 and toTarget[1] < 1.0 then --- > local moved = moveTo(stateData.patrolTarget, dt) > > if moved == "running" then > local toTarget = world.distance(stateData.patrolTarget, position) > controlFace(self.pathing.deltaX or toTarget[1]) > elseif (moved == false and self.pathing.stuck) or moved == true then 162a164 > npcs\guard\returntopoststate.lua 21c21 < moveTo(storage.spawnPosition, dt, {returnBest = true, maxDistance = 25}) --- > moveTo(storage.spawnPosition, dt, {returnBest = true, maxDistance = 25, mustEndOnGround = true}) npcs\mission\minersurvivor.npctype 636c636,641 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\mission\mutantminer.npctype 166c166,171 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\mission\survivor.npctype 707c707,712 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } npcs\outpost\outpostcivilian.npctype 333c333,338 < "jumpSpeed" : 24.0 --- > "airFriction": 0.0, > "airJumpProfile": { > "jumpSpeed" : 45.0, > "jumpInitialPercentage": 1.0, > "jumpHoldTime": 0.0 > } objects\generic\statuspod\statuspod.object 47a48,49 > "health" : 10, > 74,77d75 < "projectileType" : "levitationstatusprojectile", < "projectileParams" : { } < }, < { 89a88 > objects\wired\door\door.lua 42,45c42 < if (entity.isInboundNodeConnected(0)) then < return < end < if capability == 'door' then --- > if capability == 'door' and not entity.isInboundNodeConnected(0) then 47c44 < elseif capability == 'closedDoor' then --- > elseif capability == 'closedDoor' and not entity.isInboundNodeConnected(0) then player\playereffects.animation 42a43,51 > }, > "abort" : { > "frames" : 16, > "cycle" : 1.0, > "mode" : "transition", > "transition" : "none", > "properties" : { > "immediateSound" : "/sfx/tools/teleport_down.wav" > } 116c125 < } \ No newline at end of file --- > } scripts\pathing.lua 15a16 > mustEndOnGround = options.mustEndOnGround, 23a25,32 > > --Really close to the target position, probably don't need to path > local targetDistance = world.magnitude(targetPosition, position) > local toTarget = world.distance(targetPosition, position) > if targetDistance < 2 and math.abs(toTarget[2]) < 1 then > return approachTargetPosition(targetPosition, options.run) > end > 29c38 < script.setUpdateDelta(4) --- > script.setUpdateDelta(self.updateDelta or 5) 43c52 < return true --- > return false 51c60 < return true --- > return false 58,59c67,68 < self.pathing.expirationTime = nil < return true --- > self.pathing.path = nil > return false 64c73 < return true --- > return "running" 74,79c83,96 < local closedDoorIds = world.entityLineQuery(position, { position[1] + util.clamp(delta[1], -2, 2), position[2] }, { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "closedDoor" } }) < for _, closedDoorId in pairs(closedDoorIds) do < if options.openDoorCallback == nil or options.openDoorCallback(closedDoorId) then < if not world.callScriptedEntity(closedDoorId, "openDoor") then < self.pathing.path = nil < return false --- > local line = {position, { position[1] + util.clamp(delta[1], -2, 2), position[2] + util.clamp(delta[2], -2, 2) }} > if world.lineTileCollision(line[1], line[2], "Dynamic") and not world.lineTileCollision(line[1], line[2], "Static") then > -- There is a colliding object in the way. See if we can open it > local closedDoorIds = world.entityLineQuery(line[1], line[2], { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "closedDoor" } }) > if #closedDoorIds == 0 then > -- Colliding object either isn't a door or can't be opened > self.pathing.path = nil > incrementStuckCount() > return false > else > for _, closedDoorId in pairs(closedDoorIds) do > if options.openDoorCallback == nil or options.openDoorCallback(closedDoorId) then > world.callScriptedEntity(closedDoorId, "openDoor") > end 94c111 < return true --- > return "running" 101c118 < return true --- > return "running" 103,106d119 < --Remove air friction while jumping < mcontroller.controlParameters({ < airFriction = 0 < }) 112c125 < return true --- > return "running" 118c131 < return true --- > return "running" 135c148 < return true --- > return "running" 140c153 < return true --- > return "running" 144,147d156 < --Remove air friction while jumping < mcontroller.controlParameters({ < airFriction = 0 < }) 151c160,161 < if delta[2] < 0 then --- > -- Might have to walk a little bit to the next node > if delta[2] < 0 and math.abs(delta[1]) < 1 then 157,158c167 < return true < --- > return "running" 159a169,175 > --Try to not get slowed down by friction from air or walls > mcontroller.controlParameters({ > airFriction = 0, > normalGroundFriction = 0, > ambulatingGroundFriction = 0 > }) > 168c184 < return true --- > return "running" 181c197 < return true --- > return "running" 185c201 < return true --- > return "running" 230c246 < pathStuck() --- > incrementStuckCount() 261c277 < function pathStuck() --- > function incrementStuckCount() 263,265c279 < if self.pathing.stuckCount == nil then < self.pathing.stuckCount = 0 < end --- > self.pathing.stuckCount = self.pathing.stuckCount or 0 268c282,283 < if self.pathing.stuckPosition and world.magnitude(position, self.pathing.stuckPosition) > 1 then --- > local moveDistance = world.magnitude(position, self.pathing.stuckPosition or position) > if moveDistance > entity.configParameter("pathing.stuckResetTolerance", 0.5) then 274c289 < if self.pathing.stuckCount >= 3 then --- > if self.pathing.stuckCount >= entity.configParameter("pathing.stuckCount", 5) then 279a295,307 > function approachTargetPosition(targetPosition, run) > local position = mcontroller.position() > local targetDistance = world.magnitude(position, targetPosition) > local toTarget = world.distance(targetPosition, position) > if targetDistance < 0.1 then > return true > else > moveX(toTarget[1], run) > script.setUpdateDelta(1) > return "running" > end > end > 285,288d312 < if not velocity then < mcontroller.controlJump() < return < end