FILES ----- ai\aimessages.config [NEW] behaviors\npc\converseseq.behavior behaviors\sequences\floranmission\floranmissionstart.behavior behaviors\sequences\floranmission\floranmissionswitch.behavior [NEW] behaviors\sequences\floranmission\nurutunnel.behavior dungeons\missions\avianmissions\avianmission1.json dungeons\missions\floranmissions\floranmission1-liquids.png dungeons\missions\floranmissions\floranmission1-objects.png dungeons\missions\floranmissions\floranmission1-wires1.png dungeons\missions\floranmissions\floranmission1.dungeon dungeons\missions\floranmissions\floranmission1.png dungeons\missions\hylotlmissions\hylotlmission1.json dungeons\other\challengerooms\challengerooms.dungeon [NEW] dungeons\other\challengerooms\platform3.json items\swords\randomgenerated\standard\commonbroadsword.generatedsword items\swords\randomgenerated\standard\rarebroadsword.generatedsword items\swords\randomgenerated\standard\rareshortsword.generatedsword items\swords\randomgenerated\standard\uncommonbroadsword.generatedsword items\swords\randomgenerated\standard\uncommonshortsword.generatedsword items\swords\randomgenerated\standard\broadsword\blade\1.png items\swords\randomgenerated\standard\broadsword\blade\10.png items\swords\randomgenerated\standard\broadsword\blade\11.png items\swords\randomgenerated\standard\broadsword\blade\12.png items\swords\randomgenerated\standard\broadsword\blade\13.png items\swords\randomgenerated\standard\broadsword\blade\14.png items\swords\randomgenerated\standard\broadsword\blade\15.png items\swords\randomgenerated\standard\broadsword\blade\16.png items\swords\randomgenerated\standard\broadsword\blade\17.png items\swords\randomgenerated\standard\broadsword\blade\18.png items\swords\randomgenerated\standard\broadsword\blade\19.png items\swords\randomgenerated\standard\broadsword\blade\2.png items\swords\randomgenerated\standard\broadsword\blade\20.png items\swords\randomgenerated\standard\broadsword\blade\21.png items\swords\randomgenerated\standard\broadsword\blade\22.png items\swords\randomgenerated\standard\broadsword\blade\23.png items\swords\randomgenerated\standard\broadsword\blade\24.png items\swords\randomgenerated\standard\broadsword\blade\25.png items\swords\randomgenerated\standard\broadsword\blade\26.png items\swords\randomgenerated\standard\broadsword\blade\27.png items\swords\randomgenerated\standard\broadsword\blade\28.png items\swords\randomgenerated\standard\broadsword\blade\29.png items\swords\randomgenerated\standard\broadsword\blade\3.png items\swords\randomgenerated\standard\broadsword\blade\30.png items\swords\randomgenerated\standard\broadsword\blade\31.png items\swords\randomgenerated\standard\broadsword\blade\32.png items\swords\randomgenerated\standard\broadsword\blade\33.png items\swords\randomgenerated\standard\broadsword\blade\34.png items\swords\randomgenerated\standard\broadsword\blade\35.png [NEW] items\swords\randomgenerated\standard\broadsword\blade\36.png items\swords\randomgenerated\standard\broadsword\blade\37.png items\swords\randomgenerated\standard\broadsword\blade\38.png items\swords\randomgenerated\standard\broadsword\blade\39.png items\swords\randomgenerated\standard\broadsword\blade\4.png items\swords\randomgenerated\standard\broadsword\blade\40.png items\swords\randomgenerated\standard\broadsword\blade\41.png items\swords\randomgenerated\standard\broadsword\blade\42.png items\swords\randomgenerated\standard\broadsword\blade\43.png items\swords\randomgenerated\standard\broadsword\blade\44.png [NEW] items\swords\randomgenerated\standard\broadsword\blade\45.png [NEW] items\swords\randomgenerated\standard\broadsword\blade\46.png items\swords\randomgenerated\standard\broadsword\blade\5.png items\swords\randomgenerated\standard\broadsword\blade\6.png items\swords\randomgenerated\standard\broadsword\blade\7.png items\swords\randomgenerated\standard\broadsword\blade\8.png items\swords\randomgenerated\standard\broadsword\blade\9.png items\swords\randomgenerated\standard\broadsword\handle\1.png items\swords\randomgenerated\standard\broadsword\handle\10.png items\swords\randomgenerated\standard\broadsword\handle\11.png items\swords\randomgenerated\standard\broadsword\handle\12.png items\swords\randomgenerated\standard\broadsword\handle\13.png items\swords\randomgenerated\standard\broadsword\handle\14.png items\swords\randomgenerated\standard\broadsword\handle\15.png items\swords\randomgenerated\standard\broadsword\handle\16.png items\swords\randomgenerated\standard\broadsword\handle\17.png items\swords\randomgenerated\standard\broadsword\handle\18.png items\swords\randomgenerated\standard\broadsword\handle\19.png items\swords\randomgenerated\standard\broadsword\handle\2.png items\swords\randomgenerated\standard\broadsword\handle\20.png items\swords\randomgenerated\standard\broadsword\handle\21.png items\swords\randomgenerated\standard\broadsword\handle\22.png items\swords\randomgenerated\standard\broadsword\handle\23.png items\swords\randomgenerated\standard\broadsword\handle\24.png items\swords\randomgenerated\standard\broadsword\handle\25.png items\swords\randomgenerated\standard\broadsword\handle\26.png items\swords\randomgenerated\standard\broadsword\handle\27.png items\swords\randomgenerated\standard\broadsword\handle\28.png items\swords\randomgenerated\standard\broadsword\handle\29.png items\swords\randomgenerated\standard\broadsword\handle\3.png items\swords\randomgenerated\standard\broadsword\handle\30.png items\swords\randomgenerated\standard\broadsword\handle\31.png items\swords\randomgenerated\standard\broadsword\handle\32.png items\swords\randomgenerated\standard\broadsword\handle\33.png items\swords\randomgenerated\standard\broadsword\handle\34.png [NEW] items\swords\randomgenerated\standard\broadsword\handle\35.png items\swords\randomgenerated\standard\broadsword\handle\4.png items\swords\randomgenerated\standard\broadsword\handle\5.png items\swords\randomgenerated\standard\broadsword\handle\6.png items\swords\randomgenerated\standard\broadsword\handle\7.png items\swords\randomgenerated\standard\broadsword\handle\8.png items\swords\randomgenerated\standard\broadsword\handle\9.png monsters\boss\missile\behavior.lua monsters\boss\robotboss\skills\robotflamethrowerattack.lua [NEW] monsters\boss\spiderboss\spiderboss_body.png monsters\crawling\crawlingmonster.lua monsters\ground\skills\creategroundrangedattack.lua monsters\swimming\swimmingmonster.lua monsters\swimming\smallfish\smallfish.lua monsters\unique\bugs\behavior.lua npcs\bmain.lua npcs\actions\movement.lua npcs\mission\floranpredator.npctype npcs\mission\floransniper.npctype npcs\mission\floranspectator.npctype npcs\story\nuru.npctype objects\apex\teslaspike\teslaspike.object objects\avian\bardoor2\bardoor2.object [NEW] objects\avian\bardoor2\bardoor2left.frames [NEW] objects\avian\bardoor2\bardoor2left.png [NEW] objects\avian\bardoor2\bardoor2right.frames [NEW] objects\avian\bardoor2\bardoor2right.png [NEW] objects\avian\bardoor2\bardoor2sideways.object [NEW] objects\avian\bardoor2\bardoor2sideways.png [NEW] objects\avian\bardoor2\bardoor2sidewaysicon.png objects\avian\wingedurn\wingedurn.object [NEW] objects\avian\wingedurn\wingedurnceiling.frames [NEW] objects\avian\wingedurn\wingedurnceiling.png [NEW] objects\avian\wingedurn\wingedurnwallleft.frames [NEW] objects\avian\wingedurn\wingedurnwallleft.png [NEW] objects\avian\wingedurn\wingedurnwallright.frames [NEW] objects\avian\wingedurn\wingedurnwallright.png [NEW] objects\challengerooms\sawblade2\sawblade2.object [NEW] objects\challengerooms\sawblade2\sawblade2ceiling.frames [NEW] objects\challengerooms\sawblade2\sawblade2ceiling.png [NEW] objects\challengerooms\sawblade2\sawblade2ground.frames [NEW] objects\challengerooms\sawblade2\sawblade2ground.png [NEW] objects\challengerooms\sawblade2\sawblade2icon.png [NEW] objects\challengerooms\sawblade2\sawblade2left.frames [NEW] objects\challengerooms\sawblade2\sawblade2left.png [NEW] objects\challengerooms\sawblade2\sawblade2right.frames [NEW] objects\challengerooms\sawblade2\sawblade2right.png objects\floran\huntingpunjisticks1\huntingpunjisticks1.object objects\floran\huntingpunjisticks2\huntingpunjisticks2.object objects\gate\ancientpillar\ancientpillar.object objects\gate\ancientstriplight\ancientstriplight.1.object objects\gate\ancientstriplight\ancientstriplight2.object objects\gate\ancientstriplight\ancientstriplight3.object objects\generic\arcadegame\raycaster.lua objects\generic\burningcoals\burningcoals.object objects\glitch\medievalspikes\medievalspikes.object objects\hylotl\airlockdoor\airlockdoor.png objects\hylotl\airlockdoor\airlockdoorsideways.png objects\hylotl\classicbanner1\classicbanner1.object objects\hylotl\classicbanner2\classicbanner2.object objects\hylotl\classicbanner2b\classicbanner2b.object objects\hylotl\classicbanner3\classicbanner3.object [NEW] objects\hylotl\classicbannertattered\classicbannertattered.frames [NEW] objects\hylotl\classicbannertattered\classicbannertattered.object [NEW] objects\hylotl\classicbannertattered\classicbannertattered.png [NEW] objects\hylotl\classicbannertattered\icon.png objects\hylotl\combinationprop\combinationprop.object objects\hylotl\displaylight\displaylight.object objects\hylotl\displaylight\displaylightbroken.object objects\hylotl\librarybookcase\librarybookcase.png [NEW] objects\hylotl\librarybookcaseg2damage\icon.png [NEW] objects\hylotl\librarybookcaseg2damage\librarybookcaseg2damage.frames [NEW] objects\hylotl\librarybookcaseg2damage\librarybookcaseg2damage.object [NEW] objects\hylotl\librarybookcaseg2damage\librarybookcaseg2damage.png objects\hylotl\librarybookcasehuge\librarybookcasehuge.object [NEW] objects\hylotl\librarybookcasehugedamage\icon.png [NEW] objects\hylotl\librarybookcasehugedamage\librarybookcasehugedamage.frames [NEW] objects\hylotl\librarybookcasehugedamage\librarybookcasehugedamage.object [NEW] objects\hylotl\librarybookcasehugedamage\librarybookcasehugedamage.png [NEW] objects\hylotl\librarybookcasel2damage\icon.png [NEW] objects\hylotl\librarybookcasel2damage\librarybookcasel2damage.frames [NEW] objects\hylotl\librarybookcasel2damage\librarybookcasel2damage.object [NEW] objects\hylotl\librarybookcasel2damage\librarybookcasel2damage.png [NEW] objects\hylotl\librarybookcasen2damage\icon.png [NEW] objects\hylotl\librarybookcasen2damage\librarybookcasen2damage.frames [NEW] objects\hylotl\librarybookcasen2damage\librarybookcasen2damage.object [NEW] objects\hylotl\librarybookcasen2damage\librarybookcasen2damage.png objects\hylotl\pumpsign\pumpsign.object objects\minibiome\stonecave\ceilingstalactite1\ceilingstalactite1.object objects\minibiome\stonecave\ceilingstalactite2\ceilingstalactite2.object objects\minibiome\stonecave\ceilingstalactite3\ceilingstalactite3.object objects\minibiome\stonecave\ceilingstalactite4\ceilingstalactite4.object objects\minibiome\stonecave\ceilingstalactite5\ceilingstalactite5.object objects\mission\bonespike\bonespike.object objects\mission\miningpowersign\miningpowersign.object objects\obstacles\arid\ceilingspike1\ceilingspike1.object objects\obstacles\arid\ceilingspike2\ceilingspike2.object objects\obstacles\arid\ceilingspike3\ceilingspike3.object objects\obstacles\arid\ceilingspike4\ceilingspike4.object objects\obstacles\arid\groundspike1\groundspike1.object objects\obstacles\arid\groundspike2\groundspike2.object objects\obstacles\arid\groundspike3\groundspike3.object objects\obstacles\arid\groundspike4\groundspike4.object objects\obstacles\arid\thorns1\thorns1.object objects\obstacles\arid\thorns2\thorns2.object objects\obstacles\arid\thorns3\thorns3.object objects\obstacles\arid\thorns4\thorns4.object objects\obstacles\desert\desertceilingspike1\desertceilingspike1.object objects\obstacles\desert\desertceilingspike2\desertceilingspike2.object objects\obstacles\desert\desertceilingspike3\desertceilingspike3.object objects\obstacles\desert\desertceilingspike4\desertceilingspike4.object objects\obstacles\desert\desertgroundspike1\desertgroundspike1.object objects\obstacles\desert\desertgroundspike2\desertgroundspike2.object objects\obstacles\desert\desertgroundspike3\desertgroundspike3.object objects\obstacles\desert\desertgroundspike4\desertgroundspike4.object objects\obstacles\green\greenceilingspike1\greenceilingspike1.object objects\obstacles\green\greenceilingspike2\greenceilingspike2.object objects\obstacles\green\greenceilingspike3\greenceilingspike3.object objects\obstacles\green\greenceilingspike4\greenceilingspike4.object objects\obstacles\green\greengroundspike1\greengroundspike1.object objects\obstacles\green\greengroundspike2\greengroundspike2.object objects\obstacles\green\greengroundspike3\greengroundspike3.object objects\obstacles\green\greengroundspike4\greengroundspike4.object objects\obstacles\ice\icespike\icespike.object objects\obstacles\ice\icestalactite1\icestalactite1.object objects\obstacles\ice\icestalactite2\icestalactite2.object objects\obstacles\ice\icestalactite3\icestalactite3.object objects\obstacles\ice\icestalactite4\icestalactite4.object objects\obstacles\ice\icestalagmite1\icestalagmite1.object objects\obstacles\ice\icestalagmite2\icestalagmite2.object objects\obstacles\ice\icestalagmite3\icestalagmite3.object objects\obstacles\ice\icestalagmite4\icestalagmite4.object objects\obstacles\magma\magmaceilingspike1\magmaceilingspike1.object objects\obstacles\magma\magmaceilingspike2\magmaceilingspike2.object objects\obstacles\magma\magmaceilingspike3\magmaceilingspike3.object objects\obstacles\magma\magmagroundspike1\magmagroundspike1.object objects\obstacles\magma\magmagroundspike2\magmagroundspike2.object objects\obstacles\magma\magmagroundspike3\magmagroundspike3.object objects\obstacles\savannah\savannahceilingspike1\savannahceilingspike1.object objects\obstacles\savannah\savannahceilingspike2\savannahceilingspike2.object objects\obstacles\savannah\savannahceilingspike3\savannahceilingspike3.object objects\obstacles\savannah\savannahceilingspike4\savannahceilingspike4.object objects\obstacles\savannah\savannahgroundspike1\savannahgroundspike1.object objects\obstacles\savannah\savannahgroundspike2\savannahgroundspike2.object objects\obstacles\savannah\savannahgroundspike3\savannahgroundspike3.object objects\obstacles\savannah\savannahgroundspike4\savannahgroundspike4.object objects\wired\standingturret\standingturret.lua particles\hazard\hazardstat.png scripts\behavior.lua scripts\pathing.lua scripts\util.lua scripts\vec2.lua tech\automobile\car.lua tech\hoverbike\hoverbike.lua tech\mech\mech.lua tiles\platforms\ancientplatform.material DIFFS ----- ai\aimessages.config 37a38,58 > "floranmission101" : { > "message" : "These ruins appear to date back thousands of years. It is probable that you are in sacred grounds." > }, > > "floranmission102" : { > "message" : "I am reading a lot of different life signs in these tunnels. I would advise caution here." > }, > > "floranmission103" : { > "message" : "That girl is young for a hunter, yet she seemed calm in these tunnels. Intriguing." > > }, > > "floranmission104" : { > "message" : "The hunters in these tunnels seem determined to take out the competition. What is it that they are hunting?" > }, > > "floranmission105" : { > "message" : "This residue is organic in origin. Something large must have produced it. I will analyse the data." > }, > behaviors\sequences\floranmission\floranmissionstart.behavior 14c14 < "title": "sequence", --- > "title": "dynamic", 16c16 < "name": "sequence", --- > "name": "dynamic", 20,36c20 < "title": "faceDirection", < "type": "action", < "name": "faceDirection", < "parameters": { < "direction": -1 < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.5 < } < }, < { < "title": "Until success", --- > "title": "limiter", 38c22 < "name": "repeater", --- > "name": "limiter", 40c24 < "untilSuccess": true --- > "limit": 1 43,57c27,208 < "title": "cooldown", < "type": "decorator", < "name": "cooldown", < "parameters": { < "cooldown": 0.5 < }, < "child": { < "title": "queryEntity", < "type": "action", < "name": "queryEntity", < "parameters": { < "entityTypes": [ < "player" < ], < "range": 20 --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1 > }, > "children": [ > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "faceEntity", > "type": "action", > "name": "faceEntity", > "parameters": { > "entity": "player" > } > }, > { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 0.5 > }, > "child": { > "title": "queryEntity", > "type": "action", > "name": "queryEntity", > "parameters": { > "entityTypes": [ > "player" > ], > "range": 10, > "toEntity": "player" > } > } > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "Hello stranger. I'm Nuru. It's been a long time since an outsider joined the sacred hunt." > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 6 > } > }, > { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "Honestly I don't understand what all the fusss is about." > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 6 > } > }, > { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "I win every year, all you get is a 'sacred' bone. It's not even chewy." > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 6 > } > }, > { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "Anyway, it's nice to see some new blood. Let's see if you keep it." > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 6 > } > } > ] > } > ] > }, > { > "title": "setDirection", > "type": "action", > "name": "setDirection", > "parameters": { > "direction": 1 > } > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "move", > "type": "action", > "name": "move", > "parameters": {} > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "Find switch", > "type": "action", > "name": "findObject", > "parameters": { > "range": 10, > "name": "medievalswitchlever", > "position": [ > 852, > 1092 > ], > "toEntity": "switch" > } > }, > { > "title": "Flip switch", > "type": "action", > "name": "interactObject", > "parameters": { > "entity": "switch" > } > } > ] > } > ] > }, > { > "title": "setFlag", > "type": "action", > "name": "setFlag", > "parameters": { > "flag": "beamout" > } 59,75c210 < } < } < }, < { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "Welcome to the jungle. This is a test of how much text I can fit into one box. Testing one two. Three four. Five six." < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 --- > ] 79,113c214,237 < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "Good luck in there!" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 < } < }, < { < "title": "findObject", < "type": "action", < "name": "findObject", < "parameters": { < "position": [ < 528, < 1167 < ], < "range": 5, < "toEntity": "lever" < } < }, < { < "title": "interactObject", < "type": "action", < "name": "interactObject", < "parameters": { < "entity": "lever" < } --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "hasFlag", > "type": "action", > "name": "hasFlag", > "parameters": { > "flag": "beamout" > } > }, > { > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { > "type": "module", > "path": "/behaviors/sequences/beamout.behavior" > } > } > ] 117c241 < "path": "/behaviors/sequences/beamout.behavior" --- > "path": "/behaviors/npc/converseseq.behavior" behaviors\sequences\floranmission\floranmissionswitch.behavior 27,75c27,45 < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "warpToPosition", < "type": "action", < "name": "warpToPosition", < "parameters": { < "position": [ < 1103, < 1105 < ] < } < }, < { < "title": "setVelocity", < "type": "action", < "name": "setVelocity", < "parameters": { < "velocity": [ < 0, < 0 < ] < } < }, < { < "title": "cooldown", < "type": "decorator", < "name": "cooldown", < "parameters": { < "cooldown": 0.5 < }, < "child": { < "title": "queryEntity", < "type": "action", < "name": "queryEntity", < "parameters": { < "entityTypes": [ < "player" < ], < "range": 10, < "position": [ < 1093, < 1058 < ] < } < } --- > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 0.5 > }, > "child": { > "title": "queryEntity", > "type": "action", > "name": "queryEntity", > "parameters": { > "entityTypes": [ > "player" > ], > "range": 10, > "position": [ > 1222, > 1056 > ] 77,91c47 < ] < } < }, < { < "title": "Until success", < "type": "decorator", < "name": "repeater", < "parameters": { < "untilSuccess": true < }, < "child": { < "title": "onGround", < "type": "action", < "name": "onGround", < "parameters": {} --- > } 126,127c82,83 < 1096, < 1080 --- > 1224, > 1072 138,186c94 < "content": "This lever here looks like it can be pulled." < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 < } < }, < { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "It might open the doors." < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 < } < }, < { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "If the doors were open you would be able to progress, but they are closed. What a shame." < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 < } < }, < { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "I know! I can just open them for you." --- > "content": "I can open the doorss for you." 220c128 < "content": "Whack! Good luck out there!" --- > "content": "There" 232,234c140,142 < "title": "setVelocity", < "type": "action", < "name": "setVelocity", --- > "title": "until success", > "type": "decorator", > "name": "repeater", 236,238c144,170 < "velocity": [ < 0, < 85 --- > "untilSuccess": true > }, > "child": { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1 > }, > "children": [ > { > "title": "moveToPosition", > "type": "action", > "name": "moveToPosition", > "parameters": { > "position": [ > 1253, > 1087 > ] > } > }, > { > "title": "faceDirection", > "type": "action", > "name": "faceDirection", > "parameters": {} > } 240,247d171 < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.5 dungeons\missions\avianmissions\avianmission1.json [TMX file differences are left out for huge size.] dungeons\missions\floranmissions\floranmission1.dungeon 1449a1450,1468 > "value" : [0, 225, 32, 255], > "comment" : "slimeblob1", > "brush" : [ [ "clear" ], [ "object", "slimeblob1" ] ] > }, > > { > "value" : [0, 225, 42, 255], > "comment" : "slimeblob2", > "brush" : [ [ "clear" ], [ "object", "slimeblob2" ] ] > }, > > { > "value" : [0, 225, 52, 255], > "comment" : "ceilingslime1", > "brush" : [ [ "clear" ], [ "object", "ceilingslime1" ] ] > }, > > > { 2516c2535 < "value" : [176, 216, 155, 255], --- > "value" : [176, 216, 154, 255], 2530a2550,2564 > "value" : [176, 216, 155, 255], > "comment" : "nuru scene 3", > "brush" : [ [ "npc", > { > "kind" : "npc", > "species" : "floran", > "typeName" : "nuru", > "parameters" : { > "behavior" : "/behaviors/sequences/floranmission/nurutunnel.behavior" > } > } > ] ] > }, > > { 2627a2662,2748 > }, > > // STAGEHANDS > > { > "value" : [0, 240, 240, 255], > "comment" : "ai message trigger stagehand", > "brush" : [ [ "stagehand", > { > "type" : "aimessage", > "parameters" : { > "broadcastArea" : [-8, -8, 8, 25], > "broadcastAction" : { > "type" : "aimessage", > "id" : "floranmission101" > } > } > } > ] ] > }, > > { > "value" : [0, 240, 241, 255], > "comment" : "ai message trigger stagehand", > "brush" : [ [ "stagehand", > { > "type" : "aimessage", > "parameters" : { > "broadcastArea" : [-8, -8, 8, 20], > "broadcastAction" : { > "type" : "aimessage", > "id" : "floranmission102" > } > } > } > ] ] > }, > > { > "value" : [0, 240, 242, 255], > "comment" : "ai message trigger stagehand", > "brush" : [ [ "stagehand", > { > "type" : "aimessage", > "parameters" : { > "broadcastArea" : [-8, -8, 8, 20], > "broadcastAction" : { > "type" : "aimessage", > "id" : "floranmission103" > } > } > } > ] ] > }, > > { > "value" : [0, 240, 243, 255], > "comment" : "ai message trigger stagehand", > "brush" : [ [ "stagehand", > { > "type" : "aimessage", > "parameters" : { > "broadcastArea" : [-8, -8, 8, 20], > "broadcastAction" : { > "type" : "aimessage", > "id" : "floranmission104" > } > } > } > ] ] > }, > > { > "value" : [0, 240, 244, 255], > "comment" : "ai message trigger stagehand", > "brush" : [ [ "stagehand", > { > "type" : "aimessage", > "parameters" : { > "broadcastArea" : [-8, -8, 8, 9], > "broadcastAction" : { > "type" : "aimessage", > "id" : "floranmission105" > } > } > } > ] ] dungeons\missions\hylotlmissions\hylotlmission1.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\challengerooms.dungeon 7c7 < "anchor" : [ "testroom2" ], --- > "anchor" : [ "platform3" ], 16c16 < "name" : "testroom2", --- > "name" : "platform3", 20c20 < "def" : [ "tmx", "testroom2.json" ] --- > "def" : [ "tmx", "platform3.json" ] items\swords\randomgenerated\standard\commonbroadsword.generatedsword 23,24c23,24 < "swordAngle" : -90, < "handPosition" : [-2.7, -16.5], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], 31c31 < "handPosition" : [-2.7, -16.5], --- > "handPosition" : [0, -16.5], 38,40c38,40 < "swordAngle" : -90, < "handPosition" : [-2.7, -27], < "duration" : 0.4, --- > "swordAngle" : -105, > "handPosition" : [3, -28], > "duration" : 0.4, 56,57c56,57 < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], 63,64c63,64 < "swordAngle" : 208, < "handPosition" : [15.0, -17.0], --- > "swordAngle" : 190, > "handPosition" : [21.0, -13.0], 70,71c70,71 < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], items\swords\randomgenerated\standard\rarebroadsword.generatedsword 25,26c25,26 < "swordAngle" : -90, < "handPosition" : [-2.7, -16.5], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], 33c33 < "handPosition" : [-2.7, -16.5], --- > "handPosition" : [0, -16.5], 40,42c40,42 < "swordAngle" : -90, < "handPosition" : [-2.7, -27], < "duration" : 0.4, --- > "swordAngle" : -105, > "handPosition" : [3, -28], > "duration" : 0.4, 58,59c58,59 < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], 65,66c65,66 < "swordAngle" : 208, < "handPosition" : [15.0, -17.0], --- > "swordAngle" : 190, > "handPosition" : [21.0, -13.0], 72,73c72,73 < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], items\swords\randomgenerated\standard\rareshortsword.generatedsword 26c26 < "handPosition" : [-2.7, -14.5], --- > "handPosition" : [0, -16.5], 32,33c32,33 < "swordAngle" : -60, < "handPosition" : [0.2, -25], --- > "swordAngle" : -75, > "handPosition" : [5, -28], 41c41 < "handPosition" : [2.2, -9], --- > "handPosition" : [4, -9], items\swords\randomgenerated\standard\uncommonbroadsword.generatedsword 25,26c25,26 < "swordAngle" : -90, < "handPosition" : [-2.7, -16.5], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], 33c33 < "handPosition" : [-2.7, -16.5], --- > "handPosition" : [0, -16.5], 40,42c40,42 < "swordAngle" : -90, < "handPosition" : [-2.7, -27], < "duration" : 0.4, --- > "swordAngle" : -105, > "handPosition" : [3, -28], > "duration" : 0.4, 58,59c58,59 < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], 65,66c65,66 < "swordAngle" : 208, < "handPosition" : [15.0, -17.0], --- > "swordAngle" : 190, > "handPosition" : [21.0, -13.0], 72,73c72,73 < "swordAngle" : -90, < "handPosition" : [-6.0, -17.0], --- > "swordAngle" : -110, > "handPosition" : [0, -19.5], items\swords\randomgenerated\standard\uncommonshortsword.generatedsword 26c26 < "handPosition" : [-2.7, -14.5], --- > "handPosition" : [0, -16.5], 32,33c32,33 < "swordAngle" : -60, < "handPosition" : [0.2, -25], --- > "swordAngle" : -75, > "handPosition" : [5, -28], 41c41 < "handPosition" : [2.2, -9], --- > "handPosition" : [4, -9], monsters\boss\missile\behavior.lua 34c34 < local tarAngle = util.wrapAngle(math.atan2(tarDelta[2], tarDelta[1])) --- > local tarAngle = util.wrapAngle(math.atan(tarDelta[2], tarDelta[1])) 45c45 < local visualAngle = math.atan2(math.sin(self.angle), math.abs(math.cos(self.angle))) --- > local visualAngle = math.atan(math.sin(self.angle), math.abs(math.cos(self.angle))) monsters\boss\robotboss\skills\robotflamethrowerattack.lua 111c111 < local animationAngle = math.atan2(-aimVector[2], math.abs(aimVector[1])) --Because flipped sprite --- > local animationAngle = math.atan(-aimVector[2], math.abs(aimVector[1])) --Because flipped sprite 115c115 < currentRotationAngle = math.atan2(-math.sin(currentRotationAngle), math.cos(currentRotationAngle)) --Because flipped sprite --- > currentRotationAngle = math.atan(-math.sin(currentRotationAngle), math.cos(currentRotationAngle)) --Because flipped sprite monsters\crawling\crawlingmonster.lua 296c296 < local desiredAngle = math.atan2(self.groundDirection[2], self.groundDirection[1]) + math.pi / 2 --- > local desiredAngle = math.atan(self.groundDirection[2], self.groundDirection[1]) + math.pi / 2 monsters\ground\skills\creategroundrangedattack.lua 108c108 < local rotateAmount = math.atan2(-direction[2],math.abs(direction[1])) --- > local rotateAmount = math.atan(-direction[2],math.abs(direction[1])) 127c127 < local angle = math.atan2(direction[2], math.abs(direction[1])) --- > local angle = math.atan(direction[2], math.abs(direction[1])) monsters\swimming\swimmingmonster.lua 141c141 < local rotateAmount = math.atan2(direction[2], direction[1]) --- > local rotateAmount = math.atan(direction[2], direction[1]) monsters\swimming\smallfish\smallfish.lua 53c53 < local rotateAmount = math.atan2(self.movement[2], self.movement[1]) --- > local rotateAmount = math.atan(self.movement[2], self.movement[1]) monsters\unique\bugs\behavior.lua 59c59 < local angle = math.atan2(self.direction[2], math.abs(self.direction[1])) --- > local angle = math.atan(self.direction[2], math.abs(self.direction[1])) npcs\bmain.lua 81,87c81,82 < function sayToTarget(args) < args = parseArgs(args, { < dialogType = "converse.dialog", < target = "target" < }) < local targetId = getEntity(args.target) < local dialog = nil --- > function getDialogType(dialogType, targetId) > local dialogTypes = {} 89c84 < local withSpecies = args.dialogType .. "." .. entity.species() --- > local withSpecies = dialogType .. "." .. entity.species() 94c89 < dialog = entity.staticRandomizeParameter(withSpecies .. "." .. targetSpecies) --- > table.insert(dialogTypes, withSpecies .. "." .. targetSpecies) 98,103c93,100 < if dialog == nil then < dialog = entity.staticRandomizeParameter(withSpecies .. ".default") < end < < if dialog == nil then < dialog = entity.staticRandomizeParameter(withSpecies) --- > table.insert(dialogTypes, withSpecies .. ".default") > table.insert(dialogTypes, withSpecies) > table.insert(dialogTypes, dialogType .. ".default") > > for _,dialogType in pairs(dialogTypes) do > if entity.configParameter(dialogType) ~= nil then > return dialogType > end 104a102 > end 106,108c104,110 < if dialog == nil then < dialog = entity.randomizeParameter(args.dialogType .. ".default") < end --- > function sayToTarget(args) > args = parseArgs(args, { > dialogType = "converse.dialog", > target = "target" > }) > local targetId = getEntity(args.target) > local dialog = entity.staticRandomizeParameter(getDialogType(args.dialogType, targetId)) 115a118,149 > end > > function getDialog(args) > args = parseArgs(args, { > dialogType = "converse.dialog" > }) > local targetId = getEntity(args.target) > self.dialog = entity.configParameter(getDialogType(args.dialogType, targetId)) > if self.dialog == nil then > return false > end > > return true > end > > function sayNext(args) > args = parseArgs(args, {}) > world.logInfo("%s", self.dialog) > > if self.dialog == nil or #self.dialog == 0 then > return false > end > > local portrait = entity.configParameter("chatPortrait") > if portrait == nil then > entity.say(self.dialog[1]) > else > entity.sayPortrait(self.dialog[1], portrait) > end > > table.remove(self.dialog, 1) > return true npcs\actions\movement.lua 32a33,42 > function controlMove(args) > args = parseArgs(args, { > direction = self.direction, > run = false > }) > > mcontroller.controlMove(args.direction, args.run) > return true > end > npcs\mission\floranpredator.npctype 47,50c47 < "Sssseen you!", < "Ssstab! Ssstab!", < "They're in my sssights!", < "I sssee you!", --- > "I sssee you, hunter!", 52c49 < "Prey sssighted!", --- > "Rival hunter sssighted!", 54,56c51,53 < "Leave none ssstanding!", < "No survivorsss!", < "Nowhere to run!", --- > "Take out the competitionsss!", > "I won't be beaten in the huntsss!", > "You can't run from me, huntersss!", 59,60d55 < "It'sss happening!", < "IT'SSS HAPPENING!", 63,73c58,70 < "Ssstabbing time!", < "Come out and play!", < "Got you!", < "I've sssspotted them!", < "New meatsss!", < "The hunt beginsss!", < "Your time isss up!", < "Fresssh meat!", < "Time to ssslay!", < "Sssay goodbye!", < "Fresssh prey!" --- > "Come out and play, huntersss!", > "You aren't going to ssstop me!", > "I have enemy huntersss in my sights!", > "You won't beat me in the huntsss!", > "Rivalsss! Ssstrangers!", > "You can't ssstop me winning the hunt!", > "Nuru can't beat me this time, and neither can you!", > "Time to ssslay the competition!", > "At leassst you aren't Nuru!", > "You aren't the bessst hunter, I am!", > "You'll perish in the tunnelsss, ssstranger!", > "I won't let an outsider win!", > "Victory won't go to you, outsider!" npcs\mission\floransniper.npctype 47,67c47,54 < "Sssseen you!", < "Ssstab! Ssstab!", < "They're in my sssights!", < "I sssee you!", < "Attack!", < "Prey sssighted!", < "Ssstrike them down!", < "Leave none ssstanding!", < "No survivorsss!", < "Gotcha!", < "Nowhere to run!", < "The hunt isss on!", < "No way outsss!", < "It'sss happening!", < "Time to give chasssse!", < "Ssstabbing time!", < "Come out to play!", < "Got you!", < "I've sssspotted them!", < "New meatsss!", < "Freshhhhh prey!" --- > "I'll ssshoot you down!", > "You can't escape my sssights!", > "I'll fill you with holesss, outsider!", > "You aren't fassst enough to outrun my ssshots!", > "You can't hide from me!", > "I have the vantage point, outsssider!", > "I have the better aim, outsssider!", > "You can't ssssurvive in these tunnelsss! You're an outsider!" npcs\mission\floranspectator.npctype 26,32c26,45 < "Another hunter!", < "You're late!", < "If you wantsss to hunt, then hurry!", < "Late for the hunts! Catch up!", < "Into the pitsss, volunteer!", < "New huntersss!", < "Huntersss! You're late!" --- > "What'sss the point? Nuru winsss every year!", > "A new hunter to rival Nuru in the tunnelsss!", > "Maybe Nuru won't win thisss year?", > "More huntersss! More excitement!", > "Huntersss! You're late!", > "Nuru putsss the rest of the huntersss to ssshame!", > "Who will win the huntsss this year? my bet'sss on Nuru!", > "What are the chancesss that you'll best Nuru, ssstranger?", > "I'm so tired of Nuru winning the huntsss every year!", > "You may be fassst, but Nuru will ssstrike the beast first!", > "Maybe sssomeone else will win thisss year?", > "I am sssure Nuru will win once again!", > "I'd be hunting too, but Nuru isss participating again...", > "Why bother hunting, ssstranger? Nuru will just beat you to it!", > "Are you hoping to catch up in the huntsss?", > "A ssstranger? Are you here to enter the tunnelsss and compete?", > "Are you here to join the huntsss?", > "If you're here for the huntsss, outsider, then you're late!", > "Are you here from ssspace to join the huntsss? You better get going!", > "You bessst hurry if you want to catch up in the hunt!" npcs\story\nuru.npctype 29c29,50 < "chatPortrait" : "/interface/chatbubbles/portraittest.png" --- > "chatPortrait" : "/interface/chatbubbles/portraittest.png", > > "converse" : { > "dialog" : { > "default" : [ > "Other hunters will try to stop you winning the hunt.", > "I've been hunting since I was a ssprout and winning since I was a bud.", > "I'm having a snack here whilst the others rush ahead. They can fight it out amongst themselves.", > "I've always wanted to see the Universe, where are you from?", > "Some day I'll find a way out of here.", > "Florans are mindlessly savage.", > "As top hunter I'm expected to lead this tribe when I come of age.", > "There must be more out there than hunting.", > "I've heard rumour of beasts far beyond any the Floran have hunted.", > "I participate in the hunt to show Florans the best way to win is not to fight amongst ourselves.", > "I try not to sspeak with a hisss, but sssometimes I can't help it.", > "I am seventeen ssummers old.", > "The thought of hunting my life away makes my petals wilt.", > "The Floran are not inherently evil. My father taught me to respect life. A lesson many never learn." > ] > } > } objects\apex\teslaspike\teslaspike.object 38c38 < "damage" : 20, --- > "damage" : 40, 55c55 < "damage" : 20, --- > "damage" : 40, 72c72 < "damage" : 20, --- > "damage" : 40, 89c89 < "damage" : 20, --- > "damage" : 40, 106c106 < "damage" : 20, --- > "damage" : 40, 123c123 < "damage" : 20, --- > "damage" : 40, 140c140 < "damage" : 20, --- > "damage" : 40, 157c157 < "damage" : 20, --- > "damage" : 40, objects\avian\bardoor2\bardoor2.object 21c21 < "dualImage" : "bardoor2.png:", --- > "image" : "bardoor2.png:", 22a23,42 > "animationParts" : { > "door" : "bardoor2.png" > }, > "animationPosition" : [-16, 0], > > "direction" : "left", > "flipImages" : true, > > "spaceScan" : 0.1, > "anchors" : [ "bottom", "top" ] > }, > { > "image" : "bardoor2.png:", > "imagePosition" : [-16, 0], > "animationParts" : { > "door" : "bardoor2.png" > }, > "animationPosition" : [-16, 0], > > "direction" : "right", 39,42d58 < "animationParts" : { < "door" : "bardoor2.png" < }, < "animationPosition" : [-16, 0], objects\avian\wingedurn\wingedurn.object 20c20,24 < "dualImage" : "wingedurn.png:", --- > "image" : "wingedurn.png:", > "imagePosition" : [-16, 0], > > "direction" : "left", > "flipImages" : true, 21a26,30 > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > }, > { > "image" : "wingedurn.png:", 23,24c32,33 < "frames" : 1, < "animationCycle" : 1.0, --- > > "direction" : "right", 27a37,50 > }, > { > "image" : "wingedurnceiling.png:", > "imagePosition" : [-16, -8], > > "direction" : "left", > "flipImages" : true, > > "spaceScan" : 0.1, > "anchors" : [ "top" ] > }, > { > "image" : "wingedurnceiling.png:", > "imagePosition" : [-16, -8], 28a52,73 > "direction" : "right", > > "spaceScan" : 0.1, > "anchors" : [ "top" ] > }, > { > "image" : "wingedurnwallleft.png:", > "imagePosition" : [0, -16], > > "direction" : "right", > > "spaceScan" : 0.1, > "anchors" : [ "left" ] > }, > { > "image" : "wingedurnwallright.png:", > "imagePosition" : [-8, -16], > > "direction" : "right", > > "spaceScan" : 0.1, > "anchors" : [ "right" ] objects\floran\huntingpunjisticks1\huntingpunjisticks1.object 26c26 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 54c54 < "damage" : 20, --- > "damage" : 50, 73c73 < "damage" : 20, --- > "damage" : 50, objects\floran\huntingpunjisticks2\huntingpunjisticks2.object 26c26 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 54c54 < "damage" : 20, --- > "damage" : 50, 73c73 < "damage" : 20, --- > "damage" : 50, objects\gate\ancientpillar\ancientpillar.object 9c9 < "race" : "generic", --- > "race" : "ancient", objects\gate\ancientstriplight\ancientstriplight.1.object 9c9 < "race" : "generic", --- > "race" : "ancient", objects\gate\ancientstriplight\ancientstriplight2.object 9c9 < "race" : "generic", --- > "race" : "ancient", objects\gate\ancientstriplight\ancientstriplight3.object 9c9 < "race" : "generic", --- > "race" : "ancient", objects\generic\arcadegame\raycaster.lua 38c38 < local rayAngle = player.direction - math.atan2(ray[2], ray[1]) --- > local rayAngle = player.direction - math.atan(ray[2], ray[1]) 130c130 < end \ No newline at end of file --- > end objects\generic\burningcoals\burningcoals.object 36c36 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 86c86 < "damage" : 20, --- > "damage" : 50, objects\glitch\medievalspikes\medievalspikes.object 33c33 < "damage" : 20, --- > "damage" : 50, 52c52 < "damage" : 20, --- > "damage" : 50, objects\hylotl\classicbanner1\classicbanner1.object 5c5,6 < "price" : 300, --- > "price" : 250, > "printable" : false, 11c12 < "apexDescription" : "-todo- Rich, heavy curtains.", --- > "apexDescription" : "Rich, heavy curtains.", 13c14 < "floranDescription" : "Apex make curtain from heavy velvet, Floran make curtain from ssskin.", --- > "floranDescription" : "Hylotl make curtain from heavy velvet, Floran make curtain from ssskin.", objects\hylotl\classicbanner2\classicbanner2.object 5c5,6 < "price" : 300, --- > "price" : 250, > "printable" : false, 11c12 < "apexDescription" : "-todo- Rich, heavy curtains.", --- > "apexDescription" : "Rich, heavy curtains.", 13c14 < "floranDescription" : "Apex make curtain from heavy velvet, Floran make curtain from ssskin.", --- > "floranDescription" : "Hylotl make curtain from heavy velvet, Floran make curtain from ssskin.", objects\hylotl\classicbanner2b\classicbanner2b.object 5c5,6 < "price" : 300, --- > "price" : 250, > "printable" : false, 11c12 < "apexDescription" : "-todo- Rich, heavy curtains.", --- > "apexDescription" : "Rich, heavy curtains.", 13c14 < "floranDescription" : "Apex make curtain from heavy velvet, Floran make curtain from ssskin.", --- > "floranDescription" : "Hylotl make curtain from heavy velvet, Floran make curtain from ssskin.", objects\hylotl\classicbanner3\classicbanner3.object 5c5,6 < "price" : 300, --- > "price" : 400, > "printable" : false, 11c12 < "apexDescription" : "-todo- Rich, heavy curtains.", --- > "apexDescription" : "Rich, heavy curtains.", 13c14 < "floranDescription" : "Apex make curtain from heavy velvet, Floran make curtain from ssskin.", --- > "floranDescription" : "Hylotl make curtain from heavy velvet, Floran make curtain from ssskin.", objects\hylotl\combinationprop\combinationprop.object 5c5,6 < "price" : 300, --- > "price" : 350, > "printable" : false, objects\hylotl\displaylight\displaylight.object 11c11 < "description" : "-todo-", --- > "description" : "A directional light used to illuminate items on display.", 15,20c15,20 < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", --- > "apexDescription" : "It's a light, it's sole purpose is to point at that thing.", > "avianDescription" : "I should check out what the light is pointing at, it might be more interesting.", > "floranDescription" : "Bright light shinesss on pretty objects.", > "glitchDescription" : "Humbled. This light is diligently performing it's one purpose.", > "humanDescription" : "I should probably be more intested in what this light is aimed at.", > "hylotlDescription" : "This light is here to illuminate a subject more worthy of my interest than itself.", objects\hylotl\displaylight\displaylightbroken.object 17c17 < "description" : "-todo-", --- > "description" : "This light is meant to illuminate a display of some kind.", 21,26c21,26 < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", --- > "apexDescription" : "Maybe it just needs a new bulb.", > "avianDescription" : "What would it be illuminating if if was on?", > "floranDescription" : "Floran already ssssmash light.", > "glitchDescription" : "Horrified. What a tragic sight, this light needs a replacement bulb urgently.", > "humanDescription" : "This light it out, anyone got a spare bulb?", > "hylotlDescription" : "What a shame, someone should really fix that light before it causes an accident.", objects\hylotl\librarybookcasehuge\librarybookcasehuge.object 5c5 < "price" : 2500, --- > "price" : 3000, objects\hylotl\pumpsign\pumpsign.object 4d3 < "hasObjectItem" : true, 10c9 < "apexDescription" : "A red glowing sign. -todo-", --- > "apexDescription" : "This sign will indicate whether the pump is on or off.", 20c19 < "price" : 300, --- > "price" : 375, objects\minibiome\stonecave\ceilingstalactite1\ceilingstalactite1.object 50c50 < "damage" : 20, --- > "damage" : 50, 66c66 < "damage" : 20, --- > "damage" : 50, objects\minibiome\stonecave\ceilingstalactite2\ceilingstalactite2.object 32c32 < "damage" : 20, --- > "damage" : 50, 48c48 < "damage" : 20, --- > "damage" : 50, objects\minibiome\stonecave\ceilingstalactite3\ceilingstalactite3.object 50c50 < "damage" : 20, --- > "damage" : 50, 66c66 < "damage" : 20, --- > "damage" : 50, objects\minibiome\stonecave\ceilingstalactite4\ceilingstalactite4.object 32c32 < "damage" : 20, --- > "damage" : 50, 48c48 < "damage" : 20, --- > "damage" : 50, objects\minibiome\stonecave\ceilingstalactite5\ceilingstalactite5.object 32c32 < "damage" : 20, --- > "damage" : 50, 48c48 < "damage" : 20, --- > "damage" : 50, objects\mission\bonespike\bonespike.object 27c27 < "color" : [73, 179, 253, 255], --- > "color" : [231, 223, 189, 175], 56c56 < "damage" : 20, --- > "damage" : 50, 74c74 < "damage" : 20, --- > "damage" : 50, 93c93 < "damage" : 20, --- > "damage" : 50, 111c111 < "damage" : 20, --- > "damage" : 50, 129c129 < "damage" : 20, --- > "damage" : 50, 147c147 < "damage" : 20, --- > "damage" : 50, objects\mission\miningpowersign\miningpowersign.object 4d3 < "hasObjectItem" : false, objects\obstacles\arid\ceilingspike1\ceilingspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 56c56 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\ceilingspike2\ceilingspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\ceilingspike3\ceilingspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\ceilingspike4\ceilingspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\groundspike1\groundspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\groundspike2\groundspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\groundspike3\groundspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\groundspike4\groundspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\arid\thorns1\thorns1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 20, --- > "damage" : 50, objects\obstacles\arid\thorns2\thorns2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 20, --- > "damage" : 50, objects\obstacles\arid\thorns3\thorns3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 20, --- > "damage" : 50, objects\obstacles\arid\thorns4\thorns4.object 29c29 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 58c58 < "damage" : 20, --- > "damage" : 50, objects\obstacles\desert\desertceilingspike1\desertceilingspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\desert\desertceilingspike2\desertceilingspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\desert\desertceilingspike3\desertceilingspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\desert\desertceilingspike4\desertceilingspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\desert\desertgroundspike1\desertgroundspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\desert\desertgroundspike2\desertgroundspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\desert\desertgroundspike3\desertgroundspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\desert\desertgroundspike4\desertgroundspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greenceilingspike1\greenceilingspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greenceilingspike2\greenceilingspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greenceilingspike3\greenceilingspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greenceilingspike4\greenceilingspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greengroundspike1\greengroundspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greengroundspike2\greengroundspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greengroundspike3\greengroundspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\green\greengroundspike4\greengroundspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icespike\icespike.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 20, --- > "damage" : 50, 75c75 < "damage" : 20, --- > "damage" : 50, 94c94 < "damage" : 20, --- > "damage" : 50, 112c112 < "damage" : 20, --- > "damage" : 50, 130c130 < "damage" : 20, --- > "damage" : 50, 148c148 < "damage" : 20, --- > "damage" : 50, objects\obstacles\ice\icestalactite1\icestalactite1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icestalactite2\icestalactite2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icestalactite3\icestalactite3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icestalactite4\icestalactite4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icestalagmite1\icestalagmite1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icestalagmite2\icestalagmite2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icestalagmite3\icestalagmite3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\ice\icestalagmite4\icestalagmite4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\magma\magmaceilingspike1\magmaceilingspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\magma\magmaceilingspike2\magmaceilingspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\magma\magmaceilingspike3\magmaceilingspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\magma\magmagroundspike1\magmagroundspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\magma\magmagroundspike2\magmagroundspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\magma\magmagroundspike3\magmagroundspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahceilingspike1\savannahceilingspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahceilingspike2\savannahceilingspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahceilingspike3\savannahceilingspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahceilingspike4\savannahceilingspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahgroundspike1\savannahgroundspike1.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahgroundspike2\savannahgroundspike2.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahgroundspike3\savannahgroundspike3.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\obstacles\savannah\savannahgroundspike4\savannahgroundspike4.object 28c28 < "color" : [73, 179, 253, 255], --- > "color" : [175, 175, 175, 175], 57c57 < "damage" : 10, --- > "damage" : 50, objects\wired\standingturret\standingturret.lua 95c95 < local targetAngle = directionTransformAngle(math.atan2(targetVector[2], targetVector[1])) --- > local targetAngle = directionTransformAngle(math.atan(targetVector[2], targetVector[1])) 143c143 < return math.atan2(angleVec[2], angleVec[1]) --- > return math.atan(angleVec[2], angleVec[1]) 486c486 < angle = directionTransformAngle(math.atan2(targetVector[2], targetVector[1])) --- > angle = directionTransformAngle(math.atan(targetVector[2], targetVector[1])) scripts\behavior.lua 355c355 < -- Always returns running or failure --- > -- Always returns failure 373c373,406 < return false --- > self.child:reset() > end > return false > end > > function BTFailer:reset() > end > > -- Limiter > -- Globally limit the amount of executions > BTLimiter = BTDecorator.new() > decorators["limiter"] = BTLimiter > > function BTLimiter.new(child, limit) > local newNode = { > limit = limit or 1, > runs = 0 > } > setmetatable(newNode, extend(BTLimiter)) > newNode:setChild(child) > return newNode > end > > function BTLimiter.fromJson(node) > local parameters = node.parameters or {} > return BTLimiter.new(nodeFromJson(node.child), parameters.limit) > end > > function BTLimiter:run(dt) > if self.runs >= self.limit then return false end > local result = self.child:run(dt) > if result == true then > self.runs = self.runs + 1 > return true 375c408 < return "running" --- > return result 555a589,608 > end > > function setFlag(args) > if self.flags == nil then self.flags = {} end > args = parseArgs(args, {}) > self.flags[args.flag] = true > return true > end > > function unsetFlag(args) > if self.flags == nil then self.flags = {} end > args = parseArgs(args, {}) > self.flags[args.flag] = nil > return true > end > > function hasFlag(args) > if self.flags == nil then self.flags = {} end > args = parseArgs(args, {}) > return self.flags[args.flag] == true scripts\pathing.lua 456c456 < local collisionResolve = world.resolvePolyCollision(mcontroller.collisionPoly(), position, 0.2) --- > local collisionResolve = world.resolvePolyCollision(mcontroller.collisionPoly(), position, 0.9) scripts\util.lua 98c98 < return delta / 2 * math.pow(ratio, 2) + initial --- > return delta / 2 * ratio^2 + initial 159c159 < local term1 = math.pow(v, 4) - (g * ((g * x * x) + (2 * y * v * v))) --- > local term1 = v^4 - (g * ((g * x * x) + (2 * y * v * v))) 168c168 < aimAngle = math.atan2(v * v + term2, divisor) --- > aimAngle = math.atan(v * v + term2, divisor) 170c170 < aimAngle = math.atan2(v * v - term2, divisor) --- > aimAngle = math.atan(v * v - term2, divisor) scripts\vec2.lua 60c60 < local angle = math.atan2(vector[2], vector[1]) --- > local angle = math.atan(vector[2], vector[1]) tech\automobile\car.lua 60c60 < local aimAngle = math.atan2(diff[2], diff[1]) --- > local aimAngle = math.atan(diff[2], diff[1]) tech\hoverbike\hoverbike.lua 60c60 < local aimAngle = math.atan2(diff[2], diff[1]) --- > local aimAngle = math.atan(diff[2], diff[1]) tech\mech\mech.lua 79c79 < local aimAngle = math.atan2(diff[2], diff[1]) --- > local aimAngle = math.atan(diff[2], diff[1]) tiles\platforms\ancientplatform.material 9c9 < "footstepSound" : "/sfx/blocks/footstep_lightwood.wav", --- > "footstepSound" : "/sfx/blocks/footstep_stone2.wav",