FILES ----- celestial.config client.config help.config liquids.config server.config behaviors\monsters\boss\spiderboss\main.behavior behaviors\npc\idle.behavior behaviors\npc\combat\melee.behavior behaviors\sequences\floranmission\floranmissionstart.behavior behaviors\sequences\floranmission\nuruboss.behavior behaviors\sequences\floranmission\nurucombat.behavior biomes\underground_detached\slimecaves\dripslime1\dripslime1.object [NEW] interface\inventory\bigbag.frames interface\inventory\bigbag.png [NEW] interface\inventory\bigcart.frames interface\inventory\bigcart.png [NEW] interface\inventory\bigobj.frames interface\inventory\bigobj.png interface\windowconfig\playerinventory.config items\guns\biome\colorful\paintgunpurple\paintgunpurple.gun items\guns\biome\colorful\paintgunred\paintgunred.gun items\guns\biome\colorful\paintgunyellow\paintgunyellow.gun items\guns\biome\ocean\watergun.gun items\guns\novakid\rifle\novatier5rifle.gun items\materials\cabinroofing.matitem items\materials\copperroofing.matitem items\materials\copperwindow.matitem monsters\critter\apexscabcritter\apexscabcritter.monstertype monsters\critter\armadillo\armadillo.monstertype monsters\critter\avianscabcritter\avianscabcritter.monstertype monsters\critter\ballooncritter\ballooncritter.monstertype monsters\critter\birdcritter\birdcritter.monstertype monsters\critter\blipcritter\blipcritter.monstertype monsters\critter\bloodtoadcritter\bloodtoadcritter.monstertype monsters\critter\bouncebagcritter\bouncebagcritter.monstertype monsters\critter\bouncercritter\bouncercritter.monstertype monsters\critter\bowbirdcritter\bowbirdcritter.monstertype monsters\critter\breakercritter\breakercritter.monstertype monsters\critter\breakerfemalecritter\breakerfemalecritter.monstertype monsters\critter\bunny\bunny.monstertype monsters\critter\chevcritter\chevcritter.monstertype monsters\critter\cliffcritter\cliffcritter.monstertype monsters\critter\crabcritter\crabcritter.monstertype monsters\critter\deserttortoisecritter\deserttortoisecritter.monstertype monsters\critter\eyefriend\eyefriend.monstertype monsters\critter\eyepodcritter\eyepodcritter.monstertype monsters\critter\fishberrycritter\fishberrycritter.monstertype monsters\critter\fishchilicritter\fishchilicritter.monstertype monsters\critter\fishcritter\fishcritter.monstertype monsters\critter\fishlemoncritter\fishlemoncritter.monstertype monsters\critter\floatbagcritter\floatbagcritter.monstertype monsters\critter\floranscabcritter\floranscabcritter.monstertype monsters\critter\frog\frog.monstertype monsters\critter\froggpolecritter\frogpolecritter.monstertype monsters\critter\glitchscabcritter\glitchscabcritter.monstertype monsters\critter\gloopcritter\gloopcritter.monstertype monsters\critter\glowingballcritter\glowingballcritter.monstertype monsters\critter\glowingballcritter2\glowingballcritter2.monstertype monsters\critter\glowingfishcritter\glowingfishcritter.monstertype monsters\critter\groopcritter\groopcritter.monstertype monsters\critter\gullcritter\gullcritter.monstertype monsters\critter\harecritter\harecritter.monstertype monsters\critter\hazmatcritter\hazmatcritter.monstertype monsters\critter\hedgehogcritter\hedgehogcritter.monstertype monsters\critter\humanscabcritter\humanscabcritter.monstertype monsters\critter\hylotlscabcritter\hylotlscabcritter.monstertype monsters\critter\jellocritter\jellocritter.monstertype monsters\critter\jellycritter\jellycritter.monstertype monsters\critter\leafscabcritter\leafscabcritter.monstertype monsters\critter\maggotcritter\maggotcritter.monstertype monsters\critter\mousecritter\mousecritter.monstertype monsters\critter\owlcritter\owlcritter.monstertype monsters\critter\penguinscabcritter\penguinscabcritter.monstertype monsters\critter\petalcritter\petalcritter.monstertype monsters\critter\poisonfishcritter\poisonfishcritter.monstertype monsters\critter\pufferfishcritter\pufferfishcritter.monstertype monsters\critter\quibblecritter\quibblecritter.monstertype monsters\critter\ravencritter\ravencritter.monstertype monsters\critter\reasonablecritter\reasonablecritter.monstertype monsters\critter\redbreastcritter\redbreastcritter.monstertype monsters\critter\sackbagcritter\sackbagcritter.monstertype monsters\critter\savybirdcritter\savybirdcritter.monstertype monsters\critter\skellyfishcritter\skellyfishcritter.monstertype monsters\critter\slugbluecritter\slugbluecritter.monstertype monsters\critter\slugcritter\slugcritter.monstertype monsters\critter\sluggreencritter\sluggreencritter.monstertype monsters\critter\snail\snail.monstertype monsters\critter\snakecritter\snakecritter.monstertype monsters\critter\snooglecritter\snooglecritter.monstertype monsters\critter\sporelingcritter\sporelingcritter.monstertype monsters\critter\squeekcritter\squeekcritter.monstertype monsters\critter\squidcritter\squidcritter.monstertype monsters\critter\squirrelcritter\squirrelcritter.monstertype monsters\critter\symbiotecritter\symbiotecritter.monstertype monsters\critter\tinycrocodilecritter\tinycrocodilecritter.monstertype monsters\critter\tortoise\tortoise.monstertype monsters\critter\toucritter\toucritter.monstertype monsters\critter\toxiccrabcritter\toxiccrabcritter.monstertype monsters\critter\tritrotscritter\tritrotscritter.monstertype monsters\critter\vulturecritter\vulturecritter.monstertype monsters\critter\wintercritter\wintercritter.monstertype monsters\critter\wurmcritter\wurmcritter.monstertype monsters\critter\yeticritter\yeticritter.monstertype monsters\ground\groundmonster.lua npcs\statuses.config npcs\mission\penguinscientist.npctype npcs\story\nuru.npctype objects\ancient\hologramgalaxy\hologramgalaxy.object objects\apex\securitycamera\securitycamera.object objects\apex\turret\turret.object objects\colony\colonydeed\colonydeed.lua objects\colony\colonydeed\scanning.lua objects\floran\huntingpike1\huntingpike1.object objects\floran\huntingpike2\huntingpike2.object objects\floran\huntingpike3\huntingpike3.object objects\hylotl\arcadedance\arcadedance.object objects\mission\skulltorch\skulltorch.object objects\mission\skullwalltorch\skullwalltorch.object objects\themed\astronaut\liftoffseat\liftoffseat.object objects\themed\astronaut\marsmodel\marsmodel.object objects\themed\astronaut\mercurymodel\mercurymodel.object objects\themed\astronaut\neptunemodel\neptunemodel.object objects\themed\astronaut\plutomodel\plutomodel.object objects\themed\astronaut\saturnmodel\saturnmodel.object objects\themed\astronaut\sunmodel\sunmodel.object objects\themed\astronaut\uranusmodel\uranusmodel.object objects\themed\astronaut\venusmodel\venusmodel.object objects\themed\gothic\gothiclight\gothiclight.object objects\themed\outdoor\lamppost1\lamppost1.object objects\themed\outdoor\lamppost2\lamppost2.object objects\themed\outdoor\outdoorchair\outdoorchair.object objects\themed\sea\coralmirror\coralmirror.object objects\tiered\tier10door\tier10door.object objects\wired\standingturret\standingturret.object projectiles\guns\grenades\electricplasmagrenade\electricplasmagrenade.projectile projectiles\guns\grenades\electricplasmaimpactgrenade\electricplasmaimpactgrenade.projectile projectiles\guns\grenades\fireplasmagrenade\fireplasmagrenade.projectile projectiles\guns\grenades\fireplasmaimpactgrenade\fireplasmaimpactgrenade.projectile projectiles\guns\grenades\grenade\grenade.projectile projectiles\guns\grenades\iceplasmagrenade\iceplasmagrenade.projectile projectiles\guns\grenades\iceplasmaimpactgrenade\iceplasmaimpactgrenade.projectile projectiles\guns\grenades\impactgrenade\impactgrenade.projectile projectiles\guns\grenades\poisonplasmagrenade\poisonplasmagrenade.projectile projectiles\guns\grenades\poisonplasmaimpactgrenade\poisonplasmaimpactgrenade.projectile projectiles\guns\unsorted\electricplasmarocket\electricplasmarocket.projectile projectiles\guns\unsorted\fireplasmarocket\fireplasmarocket.projectile projectiles\guns\unsorted\iceplasmarocket\iceplasmarocket.projectile projectiles\guns\unsorted\poisonplasmarocket\poisonplasmarocket.projectile projectiles\guns\unsorted\rocket\rocketshell.projectile scripts\behavior.lua scripts\pathing.lua [NEW] scripts\rect.lua scripts\actions\movement.lua sfx\interface\energy_out2.wav stagehands\coordinator.stagehand stagehands\coordinator\npccombat.lua stats\effects\antidote\antidote.statuseffect tiles\materials\copperblock.material tiles\materials\copperroofing.material tiles\materials\copperwindow.material tiles\mods\veingrowth.matmod treasure\common.treasurepools versioning\worldmetadata_14_15.lua versioning\worldmetadata_8_15.lua DIFFS ----- celestial.config 650c650 < "imageScale" : 0.125, --- > "imageScale" : 0.1, 652c652 < "worldSize" : "medium" --- > "worldSize" : "small" 655c655 < "imageScale" : 0.15, --- > "imageScale" : 0.125, 657c657 < "worldSize" : "large" --- > "worldSize" : "medium" 918,921d917 < { < "imageScale" : 0.075, < "worldSize" : "medium" < }, client.config 121,122c121 < "luaGcStepMultiplier" : 2.0, < "luaGcFrameSteps" : 100 --- > "luaGcStepMultiplier" : 2.0 help.config 52c52,54 < "naked" : "Usage /naked. Remove all gear. Useful in macros to give a character new gear replacing the existing gear, or you know, for fun." --- > "naked" : "Usage /naked. Remove all gear. Useful in macros to give a character new gear replacing the existing gear, or you know, for fun.", > "enableSpawning" : "Usage /enableSpawning. Enable automatic monster spawning", > "disableSpawning" : "Usage /disableSpawning. Disable automatic monster spawning" liquids.config 8a9 > "maximumPressureLevelImbalance" : 0.2, 42c43 < } --- > } 173,175c174 < "interactions" : [ < < ] --- > "interactions" : [] server.config 42,43c42 < "luaGcStepMultiplier" : 2.0, < "luaGcFrameSteps" : 300 --- > "luaGcStepMultiplier" : 2.0 behaviors\monsters\boss\spiderboss\main.behavior 22c22 < "title": "parallel", --- > "title": "sequence", 24,27c24,25 < "name": "parallel", < "parameters": { < "fail": 1 < }, --- > "name": "sequence", > "parameters": {}, 30,40c28 < "title": "", < "type": "module", < "name": "tracking", < "parameters": { < "queryRange": 50, < "trackingRange": 100, < "keepInSight": false < } < }, < { < "title": "sequence", --- > "title": "parallel", 42,43c30,33 < "name": "sequence", < "parameters": {}, --- > "name": "parallel", > "parameters": { > "fail": 1 > }, 45a36,45 > "title": "", > "type": "module", > "name": "tracking", > "parameters": { > "keepInSight": true, > "queryRange": 50, > "trackingRange": 100 > } > }, > { 52,76d51 < "title": "setDying", < "type": "action", < "name": "setDying", < "parameters": { < "shouldDie": false < } < }, < { < "title": "receivedNotification", < "type": "action", < "name": "receivedNotification", < "parameters": { < "type": "startboss" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "breakout" < } < }, < { 80,85c55 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 88c58 < "title": "playSound", --- > "title": "setDying", 90c60 < "name": "playSound", --- > "name": "setDying", 92c62 < "sound": "cocooncrack" --- > "shouldDie": false 96c66 < "title": "timer", --- > "title": "receivedNotification", 98c68 < "name": "timer", --- > "name": "receivedNotification", 100c70 < "time": 0.67 --- > "type": "startboss" 104c74 < "title": "playSound", --- > "title": "setAnimationState", 106c76 < "name": "playSound", --- > "name": "setAnimationState", 108c78,79 < "sound": "cocooncrack" --- > "type": "body", > "state": "breakout" 112,114c83,85 < "title": "timer", < "type": "action", < "name": "timer", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 116,117c87,149 < "time": 0.67 < } --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "cocooncrack" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.67 > } > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "cocooncrack" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.67 > } > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "cocooncrack" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.67 > } > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "cocoonburst" > } > } > ] 120c152 < "title": "playSound", --- > "title": "setAnimationState", 122c154 < "name": "playSound", --- > "name": "setAnimationState", 124c156,157 < "sound": "cocooncrack" --- > "type": "body", > "state": "idle" 128c161 < "title": "timer", --- > "title": "setAnimationState", 130c163 < "name": "timer", --- > "name": "setAnimationState", 132c165,166 < "time": 0.67 --- > "type": "legs", > "state": "idle" 136c170 < "title": "playSound", --- > "title": "burstParticleEmitter", 138c172 < "name": "playSound", --- > "name": "burstParticleEmitter", 140c174 < "sound": "cocoonburst" --- > "emitter": "cocoonburst" 146,157c180,182 < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "idle" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 159,161c184,231 < "type": "legs", < "state": "idle" < } --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "shell", > "state": "stage1" > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": 1 > }, > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0.95, > "resource": "health" > } > } > }, > { > "title": "Ixodoom Stage 1", > "type": "module", > "name": "spiderboss-stage1", > "parameters": {} > } > ] > } > ] 164,187c234,236 < "title": "burstParticleEmitter", < "type": "action", < "name": "burstParticleEmitter", < "parameters": { < "emitter": "cocoonburst" < } < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", --- > "title": "Hurt", > "type": "module", > "name": "spiderboss-hurt", 189,190c238,239 < "type": "shell", < "state": "stage1" --- > "minHealth": 0.65, > "maxHealth": 0.95 199c248 < "success": 1 --- > "success": 2 212c261 < "percentage": 0.95, --- > "percentage": 0.65, 217a267,275 > "title": "addEphemeralEffect", > "type": "action", > "name": "addEphemeralEffect", > "parameters": { > "name": "vulnerability", > "duration": 0.1 > } > }, > { 224,244c282 < } < ] < }, < { < "title": "Hurt", < "type": "module", < "name": "spiderboss-hurt", < "parameters": { < "minHealth": 0.65, < "maxHealth": 0.95 < } < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": -1, < "success": 2 < }, < "children": [ --- > }, 246,248c284,286 < "title": "inverter", < "type": "decorator", < "name": "inverter", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 250,256c288,328 < "child": { < "title": "resourcePercentage", < "type": "action", < "name": "resourcePercentage", < "parameters": { < "percentage": 0.65, < "resource": "health" --- > "children": [ > { > "title": "Set stage", > "type": "module", > "name": "spiderboss-setstage", > "parameters": { > "setHealth": 0.65, > "shellState": "stage2" > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": 1 > }, > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0.58, > "resource": "health" > } > } > }, > { > "title": "Ixodoom Stage 2", > "type": "module", > "name": "spiderboss-stage2", > "parameters": {} > } > ] 258,267c330 < } < }, < { < "title": "addEphemeralEffect", < "type": "action", < "name": "addEphemeralEffect", < "parameters": { < "name": "vulnerability", < "duration": 0.1 < } --- > ] 270,284c333 < "title": "Ixodoom Stage 1", < "type": "module", < "name": "spiderboss-stage1", < "parameters": {} < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "Set stage", --- > "title": "Hurt", 286c335 < "name": "spiderboss-setstage", --- > "name": "spiderboss-hurt", 288,289c337,338 < "setHealth": 0.65, < "shellState": "stage2" --- > "minHealth": 0.25, > "maxHealth": 0.6 298c347 < "success": 1 --- > "success": 2 311c360 < "percentage": 0.58, --- > "percentage": 0.25, 316a366,374 > "title": "addEphemeralEffect", > "type": "action", > "name": "addEphemeralEffect", > "parameters": { > "name": "vulnerability", > "duration": 0.1 > } > }, > { 323,343c381 < } < ] < }, < { < "title": "Hurt", < "type": "module", < "name": "spiderboss-hurt", < "parameters": { < "minHealth": 0.25, < "maxHealth": 0.6 < } < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": -1, < "success": 2 < }, < "children": [ --- > }, 345,347c383,385 < "title": "inverter", < "type": "decorator", < "name": "inverter", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 349,355c387,427 < "child": { < "title": "resourcePercentage", < "type": "action", < "name": "resourcePercentage", < "parameters": { < "percentage": 0.25, < "resource": "health" --- > "children": [ > { > "title": "Set stage", > "type": "module", > "name": "spiderboss-setstage", > "parameters": { > "setHealth": 0.25, > "shellState": "stage3" > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": 1 > }, > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0.15, > "resource": "health" > } > } > }, > { > "title": "Ixodoom Stage 3", > "type": "module", > "name": "spiderboss-stage3", > "parameters": {} > } > ] 357,366c429 < } < }, < { < "title": "addEphemeralEffect", < "type": "action", < "name": "addEphemeralEffect", < "parameters": { < "name": "vulnerability", < "duration": 0.1 < } --- > ] 369,383c432 < "title": "Ixodoom Stage 2", < "type": "module", < "name": "spiderboss-stage2", < "parameters": {} < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "Set stage", --- > "title": "Hurt", 385c434 < "name": "spiderboss-setstage", --- > "name": "spiderboss-hurt", 387,388c436,437 < "setHealth": 0.25, < "shellState": "stage3" --- > "minHealth": 0, > "maxHealth": 0.2 397c446 < "success": 1 --- > "success": 2 410c459 < "percentage": 0.15, --- > "percentage": 0, 415a465,473 > "title": "addEphemeralEffect", > "type": "action", > "name": "addEphemeralEffect", > "parameters": { > "name": "vulnerability", > "duration": 0.1 > } > }, > { 423a482,503 > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "hurt", > "type": "body" > } 426c506 < "title": "Hurt", --- > "title": "Return to spawn", 428c508,514 < "name": "spiderboss-hurt", --- > "name": "spiderboss-return", > "parameters": {} > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", 430,431c516,517 < "minHealth": 0, < "maxHealth": 0.2 --- > "state": "hurt", > "type": "legs" 440c526 < "success": 2 --- > "success": -1 444,455c530,537 < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "resourcePercentage", < "type": "action", < "name": "resourcePercentage", < "parameters": { < "percentage": 0, < "resource": "health" < } --- > "title": "setVelocity", > "type": "action", > "name": "setVelocity", > "parameters": { > "velocity": [ > 0, > 0 > ] 459c541 < "title": "addEphemeralEffect", --- > "title": "timer", 461c543 < "name": "addEphemeralEffect", --- > "name": "timer", 463,464c545 < "name": "vulnerability", < "duration": 0.1 --- > "time": 2 466,471d546 < }, < { < "title": "Ixodoom Stage 3", < "type": "module", < "name": "spiderboss-stage3", < "parameters": {} 476c551,577 < "title": "sequence", --- > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "dead", > "type": "body" > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "die", > "type": "legs" > } > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "death" > } > }, > { > "title": "parallel", 478c579 < "name": "sequence", --- > "name": "parallel", 480,483c581,582 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "fail": -1, > "success": -1 487,502c586 < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "hurt", < "type": "body" < } < }, < { < "title": "Return to spawn", < "type": "module", < "name": "spiderboss-return", < "parameters": {} < }, < { < "title": "setAnimationState", --- > "title": "controlParameters", 504c588 < "name": "setAnimationState", --- > "name": "controlParameters", 506,507c590,592 < "state": "hurt", < "type": "legs" --- > "config": { > "gravityEnabled": true > } 511c596 < "title": "parallel", --- > "title": "sequence", 513c598 < "name": "parallel", --- > "name": "sequence", 515,516c600,603 < "fail": -1, < "success": -1 --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" 520c607 < "title": "setVelocity", --- > "title": "timer", 522c609 < "name": "setVelocity", --- > "name": "timer", 524,527c611 < "velocity": [ < 0, < 0 < ] --- > "time": 2 531c615 < "title": "timer", --- > "title": "setDying", 533c617 < "name": "timer", --- > "name": "setDying", 535c619 < "time": 2 --- > "shouldDie": true 541,569c625,627 < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "dead", < "type": "body" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "die", < "type": "legs" < } < }, < { < "title": "playSound", < "type": "action", < "name": "playSound", < "parameters": { < "sound": "death" < } < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", --- > "title": "limiter", > "type": "decorator", > "name": "limiter", 571,572c629 < "fail": -1, < "success": -1 --- > "limit": 1 574,581c631,656 < "children": [ < { < "title": "controlParameters", < "type": "action", < "name": "controlParameters", < "parameters": { < "config": { < "gravityEnabled": true --- > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "lineTileCollision", > "type": "action", > "name": "lineTileCollision", > "parameters": { > "position": "self", > "offset": [ > 0, > -10 > ], > "collisionType": [ > "Null", > "Block", > "Dynamic" > ] 583,593d657 < } < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" 595,602c659,667 < "children": [ < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 < } --- > { > "title": "findObject", > "type": "action", > "name": "findObject", > "parameters": { > "position": "self", > "range": 30, > "orderBy": "nearest", > "name": "dirttrapdoor" 604,610c669,670 < { < "title": "setDying", < "type": "action", < "name": "setDying", < "parameters": { < "shouldDie": true < } --- > "output": { > "list": "trapdoors" 612,619d671 < ] < }, < { < "title": "limiter", < "type": "decorator", < "name": "limiter", < "parameters": { < "limit": 1 621,624c673,676 < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", --- > { > "title": "repeater", > "type": "decorator", > "name": "repeater", 626,666c678,689 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "lineTileCollision", < "type": "action", < "name": "lineTileCollision", < "parameters": { < "position": "self", < "offset": [ < 0, < -10 < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] < } < }, < { < "title": "findObject", < "type": "action", < "name": "findObject", < "parameters": { < "position": "self", < "range": 30, < "orderBy": "nearest", < "name": "dirttrapdoor" < }, < "output": { < "list": "trapdoors" < } < }, < { < "title": "repeater", < "type": "decorator", < "name": "repeater", --- > "maxLoops": -1, > "untilSuccess": true > }, > "child": { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", 668,669c691,694 < "maxLoops": -1, < "untilSuccess": true --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" 671,679c696,700 < "child": { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "children": [ > { > "title": "listPop", > "type": "action", > "name": "listPop", 681,684c702 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "list": "trapdoors" 686,711c704,719 < "children": [ < { < "title": "listPop", < "type": "action", < "name": "listPop", < "parameters": { < "list": "trapdoors" < }, < "output": { < "entity": "trapdoor" < } < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "callScriptedEntity", < "type": "action", < "name": "callScriptedEntity", < "parameters": { < "entity": "trapdoor", < "func": "openDoor" < } < } --- > "output": { > "entity": "trapdoor" > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "callScriptedEntity", > "type": "action", > "name": "callScriptedEntity", > "parameters": { > "entity": "trapdoor", > "func": "openDoor" 713c721 < ] --- > } 715c723 < } --- > ] 717c725 < ] --- > } 719,720c727,728 < } < ] --- > ] > } behaviors\npc\idle.behavior 2a3 > "description": "", 5d5 < "/npcs/bmain.lua", 25c25 < "title": "cooldown", --- > "title": "succeeder", 27,32c27,28 < "name": "cooldown", < "parameters": { < "cooldown": "", < "onFail": false, < "onSuccess": true < }, --- > "name": "succeeder", > "parameters": {}, 34c30 < "title": "succeeder", --- > "title": "cooldown", 36,37c32,37 < "name": "succeeder", < "parameters": {}, --- > "name": "cooldown", > "parameters": { > "cooldown": "", > "onFail": false, > "onSuccess": true > }, behaviors\npc\combat\melee.behavior 281a282,347 > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "entityInRange", > "type": "action", > "name": "entityInRange", > "parameters": { > "entity": "target", > "xRange": 6, > "position": "self" > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "attack delay", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > } > }, > { > "title": "setFlag", > "type": "action", > "name": "setFlag", > "parameters": { > "name": "meleedelay" > } > } > ] > } > ] > }, > { > "title": "unsetFlag", > "type": "action", > "name": "unsetFlag", > "parameters": { > "name": "meleedelay" > } > } > ] > }, > { 364,406c430,435 < "title": "selector", < "type": "composite", < "name": "selector", < "parameters": {}, < "children": [ < { < "title": "hasFlag", < "type": "action", < "name": "hasFlag", < "parameters": { < "name": "meleeattacking" < } < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "attack delay", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.5 < } < }, < { < "title": "setFlag", < "type": "action", < "name": "setFlag", < "parameters": { < "name": "meleeattacking" < } < } < ] < } < ] --- > "title": "hasFlag", > "type": "action", > "name": "hasFlag", > "parameters": { > "name": "meleedelay" > } behaviors\sequences\floranmission\floranmissionstart.behavior 169,179d168 < "title": "setDirection", < "type": "action", < "name": "setDirection", < "parameters": { < "direction": 1 < }, < "output": { < "direction": "direction" < } < }, < { 189c178,180 < "parameters": {} --- > "parameters": { > "direction": 1 > } behaviors\sequences\floranmission\nuruboss.behavior 4a5,6 > "/scripts/actions/entities.lua", > "/scripts/actions/position.lua", 10c12 < "title": "sequence", --- > "title": "selector", 12c14 < "name": "sequence", --- > "name": "selector", 31,33c33,35 < "title": "Target Tracking", < "type": "module", < "name": "tracking", --- > "title": "entityExists", > "type": "action", > "name": "entityExists", 35,40c37 < "keepInSight": false, < "queryRange": 50, < "trackingRange": 100, < "entityTypes": [ < "player" < ] --- > "entity": "boss" 44c41 < "title": "failer", --- > "title": "cooldown", 46,47c43,47 < "name": "failer", < "parameters": {}, --- > "name": "cooldown", > "parameters": { > "cooldown": 1, > "onFail": true > }, 49,51c49,51 < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "title": "findMonster", > "type": "action", > "name": "findMonster", 53,56c53,57 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "orderBy": "nearest", > "position": "self", > "range": 80, > "type": "spiderboss", > "orderby": "nearest" 58,68c59,149 < "children": [ < { < "title": "setAimPosition", < "type": "action", < "name": "setAimPosition", < "parameters": { < "offset": [ < -1, < 0 < ], < "position": "self" --- > "output": { > "entity": "boss" > } > } > } > ] > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "entityExists", > "type": "action", > "name": "entityExists", > "parameters": { > "entity": "player" > } > }, > { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 1, > "onFail": true > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": [ > -11, > 0 > ], > "position": "spawn" > }, > "output": { > "position": "playerQuery" > } > }, > { > "title": "queryEntity", > "type": "action", > "name": "queryEntity", > "parameters": { > "entityTypes": [ > "player" > ], > "orderBy": "nearest", > "position": "playerQuery", > "range": 30, > "withoutEntity": "self" > }, > "output": { > "entity": "player" > } > } > ] > } 70,75c151,158 < }, < { < "title": "endPrimaryFire", < "type": "action", < "name": "endPrimaryFire", < "parameters": {} --- > ] > }, > { > "title": "entityInSight", > "type": "action", > "name": "entityInSight", > "parameters": { > "entity": "player" 77c160,178 < ] --- > } > ] > }, > { > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { > "title": "setAimPosition", > "type": "action", > "name": "setAimPosition", > "parameters": { > "offset": [ > -1, > 0 > ], > "position": "self" > } 212,215c313,338 < "title": "Nuru Boss End", < "type": "module", < "name": "nuruendscene", < "parameters": {} --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "entityExists", > "type": "action", > "name": "entityExists", > "parameters": { > "entity": "boss" > } > } > }, > { > "title": "Nuru Boss End", > "type": "module", > "name": "nuruendscene", > "parameters": {} > } > ] behaviors\sequences\floranmission\nurucombat.behavior 11c11 < "title": "sequence", --- > "title": "cleanup", 13,19c13,14 < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "name": "cleanup", > "parameters": {}, 36,73c31,36 < "title": "selector", < "type": "composite", < "name": "selector", < "parameters": {}, < "children": [ < { < "title": "entityExists", < "type": "action", < "name": "entityExists", < "parameters": { < "entity": "boss" < } < }, < { < "title": "cooldown", < "type": "decorator", < "name": "cooldown", < "parameters": { < "cooldown": 1, < "onFail": true < }, < "child": { < "title": "findMonster", < "type": "action", < "name": "findMonster", < "parameters": { < "orderBy": "nearest", < "position": "self", < "range": 50, < "type": "spiderboss", < "orderby": "nearest" < }, < "output": { < "entity": "boss" < } < } < } < ] --- > "title": "entityExists", > "type": "action", > "name": "entityExists", > "parameters": { > "entity": "boss" > } biomes\underground_detached\slimecaves\dripslime1\dripslime1.object 6c6 < "shortdescription" : "Slime Drop Source", --- > "shortdescription" : "Dripping Slime.", 11,17c11,12 < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription" : "-todo-", --- > "floranDescription" : "Floran not like dripping ssslime.", > "glitchDescription" : "Statement. What appears to be dripping slime.", interface\windowconfig\playerinventory.config 51,54c51 < "position" : [5, 108], < < "baseImage" : "/interface/inventory/emptier.png", < "baseImageChecked" : "/interface/inventory/tabbackground.png", --- > "position" : [5, 109], 59c56,59 < "image" : "/interface/inventory/bigbag.png", --- > "baseImage" : "/interface/inventory/bigbag.png:base", > "baseImageChecked" : "/interface/inventory/bigbag.png:baseChecked", > "pressedImage" : "/interface/inventory/bigbag.png:pressed", > "pressedImageChecked" : "/interface/inventory/bigbag.png:pressedChecked", 62c62,63 < "selected" : true --- > "selected" : true, > "pressedOffset" : [0,0] 65c66,69 < "image" : "/interface/inventory/bigcart.png", --- > "baseImage" : "/interface/inventory/bigcart.png:base", > "baseImageChecked" : "/interface/inventory/bigcart.png:baseChecked", > "pressedImage" : "/interface/inventory/bigcart.png:pressed", > "pressedImageChecked" : "/interface/inventory/bigcart.png:pressedChecked", 67c71,72 < "data" : "showTileGrid" --- > "data" : "showTileGrid", > "pressedOffset" : [0,0] 70c75,78 < "image" : "/interface/inventory/bigobj.png", --- > "baseImage" : "/interface/inventory/bigobj.png:base", > "baseImageChecked" : "/interface/inventory/bigobj.png:baseChecked", > "pressedImage" : "/interface/inventory/bigobj.png:pressed", > "pressedImageChecked" : "/interface/inventory/bigobj.png:pressedChecked", 72c80,81 < "data" : "showObjectGrid" --- > "data" : "showObjectGrid", > "pressedOffset" : [0,0] items\guns\biome\colorful\paintgunpurple\paintgunpurple.gun 8c8 < "description" : "-todo-", --- > "description" : "This gun shoots purple paint.", items\guns\biome\colorful\paintgunred\paintgunred.gun 8c8 < "description" : "-todo-", --- > "description" : "This gun shoots red paint.", items\guns\biome\colorful\paintgunyellow\paintgunyellow.gun 8c8 < "description" : "-todo-", --- > "description" : "This gun shoots yellow paint.", items\guns\biome\ocean\watergun.gun 8c8 < "description" : "-todo-", --- > "description" : "This gun shoots water!", items\guns\novakid\rifle\novatier5rifle.gun 8c8 < "description" : "-todo-", --- > "description" : "Packs a punch!", items\materials\cabinroofing.matitem 9c9 < "florandescription" : "Floran raise the cabin roof.", --- > "florandescription" : "Floran raisse the cabin roof.", items\materials\copperroofing.matitem 6c6 < "description" : "-todo-", --- > "description" : "Copper Roofing", 8,9c8,9 < "glitchdescription" : "-todo", < "florandescription" : "-todo", --- > "glitchDescription" : "Statement. This roofing is made entirely from copper.", > "floranDescription" : "Floran likesss thiss roof.", items\materials\copperwindow.matitem 8,9c8,9 < "glitchdescription" : "-todo-", < "florandescription" : "-todo-", --- > "glitchDescription" : "Statement. A copper window frame.", > "floranDescription" : "Windowsss.", monsters\critter\apexscabcritter\apexscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\armadillo\armadillo.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\avianscabcritter\avianscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\ballooncritter\ballooncritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\birdcritter\birdcritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\blipcritter\blipcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\bloodtoadcritter\bloodtoadcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\bouncebagcritter\bouncebagcritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\bouncercritter\bouncercritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\bowbirdcritter\bowbirdcritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\breakercritter\breakercritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\breakerfemalecritter\breakerfemalecritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\bunny\bunny.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\chevcritter\chevcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\cliffcritter\cliffcritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\crabcritter\crabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\deserttortoisecritter\deserttortoisecritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\eyefriend\eyefriend.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\eyepodcritter\eyepodcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\fishberrycritter\fishberrycritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\fishchilicritter\fishchilicritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\fishcritter\fishcritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\fishlemoncritter\fishlemoncritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\floatbagcritter\floatbagcritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\floranscabcritter\floranscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\frog\frog.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\froggpolecritter\frogpolecritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\glitchscabcritter\glitchscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\gloopcritter\gloopcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\glowingballcritter\glowingballcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\glowingballcritter2\glowingballcritter2.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\glowingfishcritter\glowingfishcritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\groopcritter\groopcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\gullcritter\gullcritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\harecritter\harecritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\hazmatcritter\hazmatcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\hedgehogcritter\hedgehogcritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\humanscabcritter\humanscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\hylotlscabcritter\hylotlscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\jellocritter\jellocritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\jellycritter\jellycritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\leafscabcritter\leafscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\maggotcritter\maggotcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\mousecritter\mousecritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\owlcritter\owlcritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\penguinscabcritter\penguinscabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\petalcritter\petalcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\poisonfishcritter\poisonfishcritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\pufferfishcritter\pufferfishcritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\quibblecritter\quibblecritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\ravencritter\ravencritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\reasonablecritter\reasonablecritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\redbreastcritter\redbreastcritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\sackbagcritter\sackbagcritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\savybirdcritter\savybirdcritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\skellyfishcritter\skellyfishcritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\slugbluecritter\slugbluecritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\slugcritter\slugcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\sluggreencritter\sluggreencritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\snail\snail.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\snakecritter\snakecritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\snooglecritter\snooglecritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\sporelingcritter\sporelingcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\squeekcritter\squeekcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\squidcritter\squidcritter.monstertype 65c65 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\squirrelcritter\squirrelcritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\symbiotecritter\symbiotecritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\tinycrocodilecritter\tinycrocodilecritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\tortoise\tortoise.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\toucritter\toucritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\toxiccrabcritter\toxiccrabcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\tritrotscritter\tritrotscritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\vulturecritter\vulturecritter.monstertype 63c63 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\wintercritter\wintercritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\wurmcritter\wurmcritter.monstertype 60c60 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\critter\yeticritter\yeticritter.monstertype 59c59 < "baseValue" : 1.0 --- > "baseValue" : 0.0 monsters\ground\groundmonster.lua 224c224,226 < if args.sourceId ~= self.target and args.sourceId ~= 0 then setTarget(args.sourceId) end --- > if args.sourceId ~= self.target and args.sourceId ~= 0 and entity.isValidTarget(args.sourceId) then > setTarget(args.sourceId) > end npcs\statuses.config 141c141 < "Refering to people by their second name" --- > "Referring to people by their second name" 499c499 < "Shmoozing", --- > "Schmoozing", npcs\mission\penguinscientist.npctype 23a24,31 > }, > > "statusControllerSettings" : { > "stats" : { > "protection" : { > "baseValue" : 100.0 > } > } npcs\story\nuru.npctype 14c14 < "damageTeamType" : "friendly", --- > "damageTeamType" : "assistant", 52,53c52,53 < "maxHealth" : { < "baseValue" : 10000.0 --- > "protection" : { > "baseValue" : 100.0 objects\ancient\hologramgalaxy\hologramgalaxy.object 23a24 > /* FULLY ANIMATED VERSION 31a33,39 > } > */ > { > "image" : "hologramgalaxy.png:.", "fullbright" : true, > "imagePosition" : [-104, -8], > "frames" : 2, > "animationCycle" : 0.2, 32a41,42 > "spaceScan" : 0.1, > "anchors" : [ "background" ] objects\apex\securitycamera\securitycamera.object 44,47d43 < "damageTeam" : { < "type" : "passive" < }, < objects\apex\turret\turret.object 59,62d58 < "damageTeam" : { < "type" : "passive" < }, < objects\colony\colonydeed\colonydeed.lua 337c337 < if house.fullyLoaded and house.poly then --- > if house.poly and world.regionLoaded(polyBoundBox(house.poly)) then 359c359 < elseif house.fullyLoaded then --- > elseif not house.poly then 392,394c392 < local house = findHouseBoundary(self.position, self.maxPerimeter) < < if not house.fullyLoaded then --- > if not world.regionLoaded(polyBoundBox(storage.house.boundary)) then 397a396,397 > > local house = findHouseBoundary(self.position, self.maxPerimeter) objects\colony\colonydeed\scanning.lua 72,73c72 < poly = nil, < fullyLoaded = true --- > poly = nil 83,84c82 < poly = nil, < fullyLoaded = true --- > poly = nil 96,97d93 < local fullyLoaded = not world.polyCollision(poly, nil, {"Null"}) < 102,103c98 < poly = nil, < fullyLoaded = true --- > poly = nil 115,116c110 < poly = poly, < fullyLoaded = fullyLoaded --- > poly = poly 189c183 < return {{minX,minY}, {maxX,maxY}} --- > return {minX,minY, maxX,maxY} 199,200c193,194 < for x = math.ceil(boundBox[1][1]), math.floor(boundBox[2][1]) do < for y = math.ceil(boundBox[1][2]), math.floor(boundBox[2][2]) do --- > for x = math.ceil(boundBox[1]), math.floor(boundBox[3]) do > for y = math.ceil(boundBox[2]), math.floor(boundBox[4]) do objects\floran\huntingpike1\huntingpike1.object 3c3 < "tags" : ["floran","floranhuntinggrounds","evil"], --- > "tags" : ["floran","floranhuntinggrounds","evil","bone"], objects\floran\huntingpike2\huntingpike2.object 3c3 < "tags" : ["floran","floranhuntinggrounds","evil"], --- > "tags" : ["floran","floranhuntinggrounds","evil","bone"], objects\floran\huntingpike3\huntingpike3.object 3c3 < "tags" : ["floran","floranhuntinggrounds","evil"], --- > "tags" : ["floran","floranhuntinggrounds","evil","bone"], objects\hylotl\arcadedance\arcadedance.object 23,24c23 < "leftImage" : "arcadedanceleft.png:.", < "rightImage" : "arcadedanceright.png:.", --- > "image" : "arcadedanceleft.png:.", 25a25 > "direction" : "left", 30a31,37 > }, > { > "image" : "arcadedanceright.png:.", > "imagePosition" : [-16, 0], > "direction" : "right", > "frames" : 8, > "animationCycle" : 0.8, 31a39,40 > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] objects\mission\skulltorch\skulltorch.object 3c3 < "tags" : ["floran","floranhuntinggrounds","light","evil"], --- > "tags" : ["floran","floranhuntinggrounds","light","evil","bone"], objects\mission\skullwalltorch\skullwalltorch.object 3c3 < "tags" : ["floran","floranhuntinggrounds","evil"], --- > "tags" : ["floran","floranhuntinggrounds","evil","light","bone"], objects\themed\astronaut\liftoffseat\liftoffseat.object 8c8 < "description" : "How do you even get into this thing?", --- > "description" : "A horizontal chair like a captain's chair on an Earth space shuttle.", 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "It is quite fascinating to simulate the experience of early Human space travel.", > "avianDescription" : "I can see how this position would have been the most comfortable during take off.", > "floranDescription" : "It would be fun to lie down while zooming through ssssspace.", > "glitchDescription" : "Fascinated. What an ingenious idea to lay down whilst in transit.", > "humanDescription" : "What a great design. It still holds up.", > "hylotlDescription" : "The idea of piloting a spacecraft in this position is laughable to Hylotl.", > "novakidDescription": "This chair gives a new meaning to laying down on the job.", > objects\themed\astronaut\marsmodel\marsmodel.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "Mars is the fourth planet in the Solar System. It was being terraformed until the Earth was destroyed.", > "avianDescription" : "Mars is named after an ancient earth god of war. It's also known as the 'Red Planet'.", > "floranDescription" : "Marsss had a branch of the Terrene Protectorate Academy being built there until he destruction of Earth...", > "glitchDescription" : "Saddness. Mars was a home to many thousands of people. I wonder how they've fared.", > "humanDescription" : "Mars had several colonies and thousands of people. It's been evacuated due to the destruction of Earth...", > "hylotlDescription" : "Mars was in the middle of major terraforming when the Earth was destroyed...", > "novakidDescription": "Mars had a conoly of Novakid wanderers. I wonder if they're still out there...", > objects\themed\astronaut\mercurymodel\mercurymodel.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "Mercury is the first planet in the Solar System and is gravitationally locked leading to extremely long days.", > "avianDescription" : "Mercury, the first planet in the Solar System. Named after an ancient Earth god of commerce known for swiftness.", > "floranDescription" : "Sssmall planet in the Solar System. The closest to the sun. Inhossspitable.", > "glitchDescription" : "Facination. Mercury's day length is almost 59 Earth-days long and it's year length about 88 Earth-days.", > "humanDescription" : "It's the smallest planet in my home system and the closest to the Sun.", > "hylotlDescription" : "The planet Mercury. Besides being a Solar System planet it's perhaps best known for a series of horrible mining accidents some decades ago.", > "novakidDescription": "Mercury is a tiny, varmint of a planet in the Solar System.", > objects\themed\astronaut\neptunemodel\neptunemodel.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "It's Neptune. The Great Dark Spot on it resembles the more well known Great Red Spot on Jupiter.", > "avianDescription" : "Neptune is named after an ancient Earth god of the sea and it's moons named after lesser sea gods.", > "floranDescription" : "Neptune is the second ice giant in the Solar Sssystem.", > "glitchDescription" : "Saddness. A glitch transport crash landed on Neptune due to a system fault a few years ago. All were lost.", > "humanDescription" : "Neptune is the farthest out planet of my home system, the Solar System.", > "hylotlDescription" : "Neptune has the Great Dark Spot and the Small Dark Spot. If it had a third spot it would be perfect.", > "novakidDescription": "Legends of a great bandit hiding his ship in the Neptunian clouds persist due to strangely common ship disappearances.", > objects\themed\astronaut\plutomodel\plutomodel.object 12,15c12,15 < //"apexDescription" : "-todo-", < //"avianDescription" : "-todo-", < //"floranDescription" : "-todo-", < //"glitchDescription" : "-todo-", --- > "apexDescription" : "I do not understand the human obsession with this minor and insignificant dwarf planet.", > "avianDescription" : "Pluto was named after a god of the underworld in ancient Earth mythology. It reminds me of some similar Avian mythos.", > "floranDescription" : "Sssmall dwarf planet with a chaotic orbit on the outskirts of the Solar Sssystem.", > "glitchDescription" : "Confusion. Why do the humans hold Pluto in such high regard? It's not even a planet.", 17,18c17,18 < //"hylotlDescription" : "-todo-", < //"novakidDescription": "-todo-", --- > "hylotlDescription" : "I learned about this dwarf planet's controversial cultural status in Earth Culture 101 at the Academy.", > "novakidDescription": "Pluto was considered the ninth planet in the Solar System before having it's status revoked. Now it's just a little varmint.", objects\themed\astronaut\saturnmodel\saturnmodel.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "Saturn is a gas giant and the sixth planet in Solar System.", > "avianDescription" : "Saturn was named after an ancient earth god of agriculture. Avian culture has a god that's eerily familiar.", > "floranDescription" : "Saturn is a gas giant of the Solar Sssystem. The rings the biggest in the system.", > "glitchDescription" : "Facination. The massive planetary rings are composed of small space dust to rocks up to ten meters big.", > "humanDescription" : "Saturn is the biggest gas giant in the Solar System. It's rings make it distinct from the other planets there.", > "hylotlDescription" : "Saturn's hexagon is another example of nature's unexpected and logical beauty.", > "novakidDescription": "Saturn was home to the first Earth-origin space outlaws. They'd conceil themselves in the rings and rob tradeships.", > objects\themed\astronaut\sunmodel\sunmodel.object 15,23c15,23 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "The Sun. The center of the Sol System. It's a yellow dwarf which count as roughly 7.6% of all main-sequence stars.", > "avianDescription" : "The star of the Sol System. It's not dissimilar from one of the twin stars of my own home system.", > "floranDescription" : "The Sssun. Despite the destruction of Earth it ssstill shines brightly.", > "glitchDescription" : "Saddness. I wonder when I'll be able to see the Sun with my own eyes again.", > "humanDescription" : "My home star, the Sun. I'll always remember the view from Earth at sunset...", > "hylotlDescription" : "The star of the Sol System and a G-type main-sequence star that serves at the accepted interstellar standard for defining solar mass.", > "novakidDescription": "I would stare at the Sun for hours when at the Academy. I'll miss that.", > objects\themed\astronaut\uranusmodel\uranusmodel.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "Uranus's axis is tilted an extreme of over ninety seven degrees.", > "avianDescription" : "Uranus is named after an earthen god of the sky. The legend pales compared to Avian sky gods.", > "floranDescription" : "Uranus is the seventh planet in the Solar Sssystem. It has faint ringsss.", > "glitchDescription" : "Fascination. Uranus is the coldest planet in the Solar System.", > "humanDescription" : "Uranus finds itself the butt of a joke all too often.", > "hylotlDescription" : "Uranus is curious for it's lop-sided axis, making it unique in the Solar System.", > "novakidDescription": "Uranus is an ice giant which are well known for being good at masking the engine emissions of hiding ships.", > objects\themed\astronaut\venusmodel\venusmodel.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "The planet Venus, covered in sulfur dioxide clouds and by far the hottest planet in the Solar System.", > "avianDescription" : "Venus. Named after an ancient Earth goddess of love and beauty.", > "floranDescription" : "The planet Venusss of the Solar System. It's the second of eight.", > "glitchDescription" : "Fascination. The planet Venus has natural greenhouse gases that that make the surface temperatures very high.", > "humanDescription" : "Venus is the second planet in the Solar System. There was talk of terraforming it before Earth was destroyed.", > "hylotlDescription" : "Venus, neighbor to Earth and almost a big but lifeless due to extreme conditions.", > "novakidDescription": "Venus. You could see it from Earth with your naked eyes as it traveled the stars. I'll miss that...", > objects\themed\gothic\gothiclight\gothiclight.object 20c20 < "novakidDescription": "-todo-", --- > "novakidDescription": "Wonder what it feels like to have one o' these things inside your head.", objects\themed\outdoor\lamppost1\lamppost1.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "A metal lamppost.", > "avianDescription" : "A helpful guide in the dark.", > "floranDescription" : "Tall and sssshiny lamp.", > "glitchDescription" : "Observation. A tall lamppost made from metal.", > "humanDescription" : "A single lamppost.", > "hylotlDescription" : "Like a bright star shining in the sky.", > "novakidDescription": "An electric street lamp.", > objects\themed\outdoor\lamppost2\lamppost2.object 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "A magnificent lamppost.", > "avianDescription" : "Great for especially dark alleys.", > "floranDescription" : "Bright like three moonssss in the sky.", > "glitchDescription" : "Appreciative. I am grateful for the additional lighting.", > "humanDescription" : "Are three lamps really necessary?", > "hylotlDescription" : "Three lamps, reminiscent of the three heads of the mythical hydra.", > "novakidDescription": "Lucky number three.", > objects\themed\outdoor\outdoorchair\outdoorchair.object 12,20c12,13 < /* < "apexDescription" : "todo.", < "avianDescription" : "todo.", < "floranDescription" : "todo.", < "glitchDescription" : "todo.", < "humanDescription" : "todo.", < "hylotlDescription" : "todo.", < "novakidDescription": "-todo-", < */ --- > "floranDescription" : "A fancy chair.", > "glitchDescription" : "Statement. A chair, built to endure the elements.", objects\themed\sea\coralmirror\coralmirror.object 8c8 < "description" : "The reflection in this mirror is hazy, like looking through water.", --- > "description" : "A wall mirror set in a coral frame.", 12,20c12,18 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > "apexDescription" : "The reflection in this mirror is hazy, like looking through water.", > "avianDescription" : "The reflection in this mirror is hazy, like looking through water.", > "floranDescription" : "Looking into mirror isss like being underwater.", > "glitchDescription" : "Unsatisfied. The quality of this reflection is as hazy as looking through water.", > "humanDescription" : "The reflection in this mirror is hazy, like looking through water.", > "hylotlDescription" : "The reflection in this mirror is hazy, like looking through water.", > "novakidDescription" : "The reflection in this mirror is hazy, like looking through water.", objects\tiered\tier10door\tier10door.object 37,38c37,38 < "open" : [ "/sfx/objects/wooddoor_open.wav" ], < "close" : [ "/sfx/objects/wooddoor_close.wav" ] --- > "open" : [ "/sfx/objects/apexcooldoor_open.wav" ], > "close" : [ "/sfx/objects/apexcooldoor_close.wav" ] objects\wired\standingturret\standingturret.object 142c142 < "type" : "friendly" --- > "type" : "assistant" projectiles\guns\grenades\electricplasmagrenade\electricplasmagrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/electricexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/electricexplosionfreeze.config" projectiles\guns\grenades\electricplasmaimpactgrenade\electricplasmaimpactgrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/electricexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/electricexplosionfreeze.config" projectiles\guns\grenades\fireplasmagrenade\fireplasmagrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/fireexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/fireexplosionfreeze.config" projectiles\guns\grenades\fireplasmaimpactgrenade\fireplasmaimpactgrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/fireexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/fireexplosionfreeze.config" projectiles\guns\grenades\grenade\grenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/regularexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/regularexplosionfreeze.config" projectiles\guns\grenades\iceplasmagrenade\iceplasmagrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/iceexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/iceexplosionfreeze.config" projectiles\guns\grenades\iceplasmaimpactgrenade\iceplasmaimpactgrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/iceexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/iceexplosionfreeze.config" projectiles\guns\grenades\impactgrenade\impactgrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/regularexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/regularexplosionfreeze.config" projectiles\guns\grenades\poisonplasmagrenade\poisonplasmagrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/poisonexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/poisonexplosionfreeze.config" projectiles\guns\grenades\poisonplasmaimpactgrenade\poisonplasmaimpactgrenade.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/poisonexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/poisonexplosionfreeze.config" projectiles\guns\unsorted\electricplasmarocket\electricplasmarocket.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/electricexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/electricexplosionfreeze.config" projectiles\guns\unsorted\fireplasmarocket\fireplasmarocket.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/fireexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/fireexplosionfreeze.config" projectiles\guns\unsorted\iceplasmarocket\iceplasmarocket.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/iceexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/iceexplosionfreeze.config" projectiles\guns\unsorted\poisonplasmarocket\poisonplasmarocket.projectile 13c13 < "file" : "/projectiles/explosions/regularexplosion2/poisonexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/poisonexplosionfreeze.config" projectiles\guns\unsorted\rocket\rocketshell.projectile 12c12 < "file" : "/projectiles/explosions/regularexplosion2/regularexplosionfreezeuniversal.config" --- > "file" : "/projectiles/explosions/regularexplosion2/regularexplosionfreeze.config" scripts\behavior.lua 443c443 < task.status, task.lastResult = coroutine.resume(task.coroutine) --- > runTask(task) 455a456,465 > function runTask(task) > local status, result = coroutine.resume(task.coroutine) > if status then > task.status = status > task.lastResult = result > else > world.logInfo("Worker error: %s", result) > end > end > 460,466c470 < local status, result = coroutine.resume(task.coroutine) < if task.status then < task.status = status < task.lastResult = result < else < world.logInfo("Worker error: %s", result) < end --- > runTask(task) scripts\pathing.lua 1a2 > require "/scripts/rect.lua" 41c42 < local result = self.aStar:explore(20) --- > local result = self.aStar:explore(50) 213,217d213 < if self.edge and world.polyCollision(mcontroller.collisionPoly(), self.edge.target.position, {"Null","Block"}) then < -- Terrain changed while following the path and we can't walk this way any < -- more. < self.finder:reset() < end 325c321 < if math.abs(self.delta[1]) > 0.5 and math.abs(self.delta[2]) <= 1 then --- > if math.abs(self.delta[1]) > self:tickMoveDistance() or math.abs(self.delta[2]) >= 1 then 484c480,481 < function validStandingPosition(position, avoidLiquid) --- > function validStandingPosition(position, avoidLiquid, collisionSet) > collisionSet = collisionSet or {"Null", "Block"} 486a484 > local boundRegion = rect.translate(bounds, position) 491d488 < local collisionResolve = world.resolvePolyCollision(mcontroller.collisionPoly(), position, 0.9) 493,495c490,491 < and collisionResolve then < util.debugRect(groundRegion, "blue") < return collisionResolve --- > and not world.rectTileCollision(boundRegion, collisionSet) then > return true 496a493 > return false 500c497 < function findGroundPosition(position, minHeight, maxHeight, avoidLiquid) --- > function findGroundPosition(position, minHeight, maxHeight, avoidLiquid, collisionSet) 507d503 < --Check upward 509,513c505,514 < for y = maxHeight, minHeight, -1 do < local validPosition = validStandingPosition({position[1], position[2] + y}, avoidLiquid) < if validPosition then < groundPosition = validPosition < break; --- > for y = 0, math.max(math.abs(minHeight), math.abs(maxHeight)) do > -- -- Look up > if y <= maxHeight and validStandingPosition({position[1], position[2] + y}, avoidLiquid, collisionSet) then > groundPosition = {position[1], position[2] + y} > break > end > -- Look down > if -y >= minHeight and validStandingPosition({position[1], position[2] - y}, avoidLiquid, collisionSet) then > groundPosition = {position[1], position[2] - y} > break scripts\actions\movement.lua 36d35 < local moved = false 39,50c38,42 < self.movementDelta = direction < local position = mcontroller.position() < position[1] = math.floor(position[1]) + 0.5 < < local yDirs = {0, 1, -1} < for _,yDir in ipairs(yDirs) do < if validStandingPosition({position[1] + direction, position[2] + yDir}) and not blocked then < mcontroller.controlMove(direction, args.run) < if not self.setFacingDirection then controlFace(direction) end < moved = true < break < end --- > local position = vec2.add(mcontroller.position(), {direction, 0}) > if direction > 0 then > position[1] = math.ceil(position[1]) > else > position[1] = math.floor(position[1]) 52c44,48 < if moved then --- > > local groundPosition = findGroundPosition(position, -1, 1, true, {"Null", "Block", "Dynamic"}) > if groundPosition then > mcontroller.controlMove(direction, args.run) > if not self.setFacingDirection then controlFace(direction) end 54a51,52 > mcontroller.setXVelocity(0) > mcontroller.clearControls() 141c139 < output = output --- > output = output or {} stagehands\coordinator.stagehand 13c13 < "scriptDelta" : 20 --- > "scriptDelta" : 5 stagehands\coordinator\npccombat.lua 2a3 > require "/scripts/rect.lua" 20a22,24 > self.rangedUpdateDelta = 5 > self.rangedUpdateTick = math.random(1, self.rangedUpdateDelta) > 22c26,33 < setRangedAttackerPositions() --- > > -- Ranged positioning is expensive and not as vital > -- Update less often than melee one > if self.rangedUpdateTick >= self.rangedUpdateDelta then > setRangedAttackerPositions() > self.rangedUpdateTick = self.rangedUpdateTick - self.rangedUpdateDelta > end > self.rangedUpdateTick = self.rangedUpdateTick + 1 111,120c122,130 < function validAttackPosition(position, bounds, collisionPoly) < local collisionResolve = world.resolvePolyCollision(collisionPoly, position, 0.9) < if collisionResolve then < local groundRegion = { < collisionResolve[1] + bounds[1], collisionResolve[2] + bounds[2] - 1, < collisionResolve[1] + bounds[3], collisionResolve[2] + bounds[2] < } < if world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic", "Platform"}) then < return collisionResolve < end --- > function validAttackPosition(position, bounds) > local groundRegion = { > position[1] + bounds[1], position[2] + bounds[2] - 1, > position[1] + bounds[3], position[2] + bounds[2] > } > if not world.rectTileCollision(rect.translate(bounds, position), {"Null", "Block"}) and world.rectTileCollision(groundRegion, {"Null", "Block", "Dynamic", "Platform"}) then > return true > else > return false 125c135 < function findGroundAttackPosition(position, minHeight, maxHeight, losPosition, bounds, collisionPoly) --- > function findGroundAttackPosition(position, minHeight, maxHeight, losPosition, bounds) 128,131c138,140 < --Check up < local validPosition = validAttackPosition({position[1], position[2] + y}, bounds, collisionPoly) < if validPosition and not world.lineTileCollision({position[1], position[2] + y}, losPosition) then < return validPosition --- > local testPosition = {position[1], position[2] + y} > if validAttackPosition(testPosition, bounds) and not world.lineTileCollision(testPosition, losPosition) then > return testPosition 151,158c160,161 < if not world.material(position, "foreground") and not world.lineTileCollision(position, vec2.add(center, {0, -1})) then < local validPosition = validAttackPosition(position, self.npcBounds, self.npcPoly) < if validPosition then < --world.debugPoint(validPosition, "green") < table.insert(positions, validPosition) < else < --world.debugPoint(position, "yellow") < end --- > if validAttackPosition(position, self.npcBounds) and not world.lineTileCollision(position, vec2.add(center, {0, -1})) then > table.insert(positions, position) stats\effects\antidote\antidote.statuseffect 4c4 < "defaultDuration" : 30, --- > "defaultDuration" : 300, tiles\materials\copperblock.material 8,9c8,9 < "glitchDescription" : "-todo-", < "floranDescription" : " -todo-", --- > "glitchDescription" : "Statement. The gear-like imprints of this block appeal to me.", > "floranDescription" : "Cogsss and Gearsss.", tiles\materials\copperroofing.material 6c6 < "description" : "-todo-", --- > "description" : "Copper Roofing", 8,9c8,9 < "glitchDescription" : "-todo-", < "floranDescription" : "-todo-", --- > "glitchDescription" : "Statement. This roofing is made entirely from copper.", > "floranDescription" : "Floran likesss thiss roof.", tiles\materials\copperwindow.material 8,9c8,9 < "glitchDescription" : "-todo-", < "floranDescription" : "-todo-", --- > "glitchDescription" : "Statement. A copper window frame.", > "floranDescription" : "Windowsss.", tiles\mods\veingrowth.matmod 4c4 < "Description" : "-todo-", --- > "Description" : "Vein Growth", treasure\common.treasurepools 95,96c95 < [0.2, 0], < [0.8, 1] --- > [1.0, 1] 99,103c98,109 < {"weight" : 0.9, "item" : "techchip"}, < {"weight" : 0.9, "item" : "manipulatormodule"}, < {"weight" : 0.2, "item" : "upgrademodule"}, < {"weight" : 0.1, "item" : "teleportercore"}, < {"weight" : 0.0, "item" : "autochip"} --- > {"weight" : 0.10, "item" : ["techchip", 1]}, > {"weight" : 0.10, "item" : ["techchip", 2]}, > {"weight" : 0.10, "item" : ["techchip", 3]}, > {"weight" : 0.02, "item" : "blanktechcard"}, > {"weight" : 0.10, "item" : ["mattermodulecomponent", 2]}, > {"weight" : 0.10, "item" : ["mattermodulecomponent", 4]}, > {"weight" : 0.10, "item" : ["mattermodulecomponent", 6]}, > {"weight" : 0.10, "item" : ["mattermodulecomponent", 8]}, > {"weight" : 0.02, "item" : "manipulatormodule"}, > {"weight" : 0.10, "item" : "upgrademodule"}, > {"weight" : 0.16, "item" : "teleportercore"}, > {"weight" : 0.00, "item" : "autochip"} 494,495c500,501 < {"weight" : 1.0, "item" : [ "generatedgun", 1, { "definition" : "commongrenadelauncher" } ]}, < {"weight" : 1.0, "item" : [ "generatedgun", 1, { "definition" : "commonrocketlauncher" } ]}, --- > {"weight" : 0.7, "item" : [ "generatedgun", 1, { "definition" : "commongrenadelauncher" } ]}, > {"weight" : 0.7, "item" : [ "generatedgun", 1, { "definition" : "commonrocketlauncher" } ]}, 517c523 < {"weight" : 1.0, "item" : [ "generatedgun", 1, { "definition" : "uncommonrocketlauncher" } ]}, --- > {"weight" : 0.7, "item" : [ "generatedgun", 1, { "definition" : "uncommonrocketlauncher" } ]}, 538c544 < {"weight" : 1.0, "item" : [ "generatedgun", 1, { "definition" : "rarerocketlauncher" } ]} --- > {"weight" : 0.7, "item" : [ "generatedgun", 1, { "definition" : "rarerocketlauncher" } ]} versioning\worldmetadata_14_15.lua 5a6 > newPath = string.gsub(newPath, "/celestial/system/gas_giant/gas_giant_clouds.png", "/celestial/system/gas_giant/gas_giant_clouds_0.png") versioning\worldmetadata_8_15.lua 41a42 > newPath = string.gsub(newPath, "/celestial/system/gas_giant/gas_giant_clouds.png", "/celestial/system/gas_giant/gas_giant_clouds_0.png")