FILES ----- [NEW] animations\ancienttrapbouldersmash\ancienttrapbouldersmash.animation [NEW] animations\ancienttrapbouldersmash\ancienttrapbouldersmash.frames [NEW] animations\ancienttrapbouldersmash\ancienttrapbouldersmash.png [NEW] animations\aviantrapbouldersmash\aviantrapbouldersmash.animation [NEW] animations\aviantrapbouldersmash\aviantrapbouldersmash.frames [NEW] animations\aviantrapbouldersmash\aviantrapbouldersmash.png [NEW] animations\fizz5\fizz5.animation [NEW] animations\fizz5\fizz5.frames [NEW] animations\fizz5\fizz5.png [NEW] animations\trapbouldersmash\trapbouldersmash.animation [NEW] animations\trapbouldersmash\trapbouldersmash.frames [NEW] animations\trapbouldersmash\trapbouldersmash.png behaviors\monsters\tracking.behavior behaviors\monsters\boss\spiderboss\main.behavior behaviors\monsters\boss\spiderboss\setstage.behavior behaviors\monsters\boss\spiderboss\stage1.behavior behaviors\monsters\boss\spiderboss\stage2.behavior behaviors\monsters\boss\spiderboss\stage3.behavior behaviors\monsters\unique\ixoling.behavior behaviors\sequences\floranmission\floranmissionstart.behavior behaviors\sequences\floranmission\nuruboss.behavior behaviors\sequences\floranmission\nurucombat.behavior behaviors\sequences\floranmission\nurustartboss.behavior 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\choices1.json dungeons\other\challengerooms\quiqksilver5.json dungeons\other\challengerooms\quiqksilver6.json [NEW] dungeons\other\challengerooms\quiqksilver7.json [NEW] dungeons\other\challengerooms\quiqksilver8.json items\swords\mission\nurusspear\nurusspear.sword monsters\bmonster.lua monsters\boss\spiderboss\spiderboss.animation monsters\boss\spiderboss\spiderboss.monstertype monsters\unique\ixoling\ixoling.animation npcs\story\nuru.npctype [NEW] objects\ancient\ancientbigchest\ancientbigchest.frames [NEW] objects\ancient\ancientbigchest\ancientbigchest.object [NEW] objects\ancient\ancientbigchest\ancientbigchest.png [NEW] objects\ancient\ancientbigchest\ancientbigchestlit.frames [NEW] objects\ancient\ancientbigchest\ancientbigchestlit.png [NEW] objects\ancient\ancientbigchest\icon.png objects\ancient\ancientbouldertrap\ancientbouldertrap.object objects\ancient\ancienticetrap\ancienticetrap.object [NEW] objects\ancient\ancientstriplight1\ancientstriplight1.object objects\ancient\ancientstriplight1\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight10\ancientstriplight10.frames [NEW] objects\ancient\ancientstriplight10\ancientstriplight10.object [NEW] objects\ancient\ancientstriplight10\ancientstriplight10.png [NEW] objects\ancient\ancientstriplight10\ancientstriplight10lit.frames [NEW] objects\ancient\ancientstriplight10\ancientstriplight10lit.png [NEW] objects\ancient\ancientstriplight10\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight11\ancientstriplight11.frames [NEW] objects\ancient\ancientstriplight11\ancientstriplight11.object [NEW] objects\ancient\ancientstriplight11\ancientstriplight11.png [NEW] objects\ancient\ancientstriplight11\ancientstriplight11lit.frames [NEW] objects\ancient\ancientstriplight11\ancientstriplight11lit.png [NEW] objects\ancient\ancientstriplight11\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight12\ancientstriplight12.frames [NEW] objects\ancient\ancientstriplight12\ancientstriplight12.object [NEW] objects\ancient\ancientstriplight12\ancientstriplight12.png [NEW] objects\ancient\ancientstriplight12\ancientstriplight12lit.frames [NEW] objects\ancient\ancientstriplight12\ancientstriplight12lit.png [NEW] objects\ancient\ancientstriplight12\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight13\ancientstriplight13.frames [NEW] objects\ancient\ancientstriplight13\ancientstriplight13.object [NEW] objects\ancient\ancientstriplight13\ancientstriplight13.png [NEW] objects\ancient\ancientstriplight13\ancientstriplight13lit.frames [NEW] objects\ancient\ancientstriplight13\ancientstriplight13lit.png [NEW] objects\ancient\ancientstriplight13\ancientstriplighticon.png objects\ancient\ancientstriplight2\ancientstriplight2.object objects\ancient\ancientstriplight2\ancientstriplight2.png objects\ancient\ancientstriplight2\ancientstriplight2lit.png objects\ancient\ancientstriplight2\ancientstriplighticon.png objects\ancient\ancientstriplight3\ancientstriplight3.object objects\ancient\ancientstriplight3\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight4\ancientstriplight4.frames [NEW] objects\ancient\ancientstriplight4\ancientstriplight4.object [NEW] objects\ancient\ancientstriplight4\ancientstriplight4.png [NEW] objects\ancient\ancientstriplight4\ancientstriplight4lit.frames [NEW] objects\ancient\ancientstriplight4\ancientstriplight4lit.png [NEW] objects\ancient\ancientstriplight4\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight5\ancientstriplight5.frames [NEW] objects\ancient\ancientstriplight5\ancientstriplight5.object [NEW] objects\ancient\ancientstriplight5\ancientstriplight5.png [NEW] objects\ancient\ancientstriplight5\ancientstriplight5lit.frames [NEW] objects\ancient\ancientstriplight5\ancientstriplight5lit.png [NEW] objects\ancient\ancientstriplight5\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight6\ancientstriplight6.frames [NEW] objects\ancient\ancientstriplight6\ancientstriplight6.object [NEW] objects\ancient\ancientstriplight6\ancientstriplight6.png [NEW] objects\ancient\ancientstriplight6\ancientstriplight6lit.frames [NEW] objects\ancient\ancientstriplight6\ancientstriplight6lit.png [NEW] objects\ancient\ancientstriplight6\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight7\ancientstriplight7.frames [NEW] objects\ancient\ancientstriplight7\ancientstriplight7.object [NEW] objects\ancient\ancientstriplight7\ancientstriplight7.png [NEW] objects\ancient\ancientstriplight7\ancientstriplight7lit.frames [NEW] objects\ancient\ancientstriplight7\ancientstriplight7lit.png [NEW] objects\ancient\ancientstriplight7\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight8\ancientstriplight8.frames [NEW] objects\ancient\ancientstriplight8\ancientstriplight8.object [NEW] objects\ancient\ancientstriplight8\ancientstriplight8.png [NEW] objects\ancient\ancientstriplight8\ancientstriplight8lit.frames [NEW] objects\ancient\ancientstriplight8\ancientstriplight8lit.png [NEW] objects\ancient\ancientstriplight8\ancientstriplighticon.png [NEW] objects\ancient\ancientstriplight9\ancientstriplight9.frames [NEW] objects\ancient\ancientstriplight9\ancientstriplight9.object [NEW] objects\ancient\ancientstriplight9\ancientstriplight9.png [NEW] objects\ancient\ancientstriplight9\ancientstriplight9lit.frames [NEW] objects\ancient\ancientstriplight9\ancientstriplight9lit.png [NEW] objects\ancient\ancientstriplight9\ancientstriplighticon.png objects\avian\bouldertrap\bouldertrap.object objects\colony\colonydeed\colonydeed.animation objects\colony\colonydeed\colonydeed.png objects\generic\electricdoor\electricdoor.object objects\generic\screenplanet\screenplanet.object [NEW] objects\generic\stepladder\stepladder.frames [NEW] objects\generic\stepladder\stepladder.object [NEW] objects\generic\stepladder\stepladder.png [NEW] objects\generic\stepladder\stepladdericon.png objects\generic\tvstation\tvstation.object objects\hylotl\hylotlredalert\hylotlredalert.object objects\hylotl\largetentacleprop\largetentacleprop.object objects\hylotl\librarybookcaseg2\librarybookcaseg2.object objects\hylotl\librarybookcasel2\librarybookcasel2.object objects\hylotl\librarybookcasel2damage\librarybookcasel2damage.object objects\hylotl\librarybookcasen2\librarybookcasen2.object objects\hylotl\librarybookcasen2damage\librarybookcasen2damage.object objects\hylotl\librarybookcases1\librarybookcases1.object [NEW] objects\mission\skullwalltorch\skullwalltorch.animation [NEW] objects\mission\skullwalltorch\skullwalltorch.frames [NEW] objects\mission\skullwalltorch\skullwalltorch.object [NEW] objects\mission\skullwalltorch\skullwalltorch.png [NEW] objects\mission\skullwalltorch\skullwalltorchicon.png [NEW] objects\mission\skullwalltorch\skullwalltorchlit.frames [NEW] objects\mission\skullwalltorch\skullwalltorchlit.png [NEW] objects\mission\strangeweb1\strangeweb4.frames [NEW] objects\mission\strangeweb1\strangeweb4.object [NEW] objects\mission\strangeweb1\strangeweb4.png [NEW] projectiles\npcs\goocluster\glowygoocluster.projectile [NEW] projectiles\traps\ancienttrapboulderappear\ancienttrapboulderappear.frames [NEW] projectiles\traps\ancienttrapboulderappear\ancienttrapboulderappear.png [NEW] projectiles\traps\ancienttrapboulderappear\ancienttrapboulderappear.projectile projectiles\traps\ancienttrapboulderrolling\ancienttrapboulderrolling.projectile [NEW] projectiles\traps\ancienttrapbouldersmash\ancienttrapbouldersmash.config [NEW] projectiles\traps\ancienttrapbouldersmash\ancienttrapbouldersmash.frames [NEW] projectiles\traps\ancienttrapbouldersmash\ancienttrapbouldersmash.png [NEW] projectiles\traps\ancienttrapbouldersmash\ancienttrapbouldersmash.projectile [NEW] projectiles\traps\aviantrapboulderappear\aviantrapboulderappear.frames [NEW] projectiles\traps\aviantrapboulderappear\aviantrapboulderappear.png [NEW] projectiles\traps\aviantrapboulderappear\aviantrapboulderappear.projectile [NEW] projectiles\traps\aviantrapboulderrolling\aviantrapboulderrolling.frames [NEW] projectiles\traps\aviantrapboulderrolling\aviantrapboulderrolling.png [NEW] projectiles\traps\aviantrapboulderrolling\aviantrapboulderrolling.projectile [NEW] projectiles\traps\aviantrapbouldersmash\aviantrapbouldersmash.config [NEW] projectiles\traps\aviantrapbouldersmash\aviantrapbouldersmash.frames [NEW] projectiles\traps\aviantrapbouldersmash\aviantrapbouldersmash.png [NEW] projectiles\traps\aviantrapbouldersmash\aviantrapbouldersmash.projectile projectiles\traps\trapboulder\trapboulder.projectile projectiles\traps\trapboulderbouncy\trapboulderbouncy.projectile projectiles\traps\trapboulderbouncy\trapboulderbouncylong.projectile [NEW] projectiles\traps\trapboulderbouncyappear\trapboulderappear.frames [NEW] projectiles\traps\trapboulderbouncyappear\trapboulderappear.png [NEW] projectiles\traps\trapboulderbouncyappear\trapboulderbouncyappear.projectile [NEW] projectiles\traps\trapboulderbouncyappear\trapboulderbouncylongappear.projectile [NEW] projectiles\traps\trapbouldersmash\trapbouldersmash.config [NEW] projectiles\traps\trapbouldersmash\trapbouldersmash.frames [NEW] projectiles\traps\trapbouldersmash\trapbouldersmash.png [NEW] projectiles\traps\trapbouldersmash\trapbouldersmash.projectile scripts\actions\entities.lua tenants\villager.tenant DIFFS ----- behaviors\monsters\tracking.behavior 3d2 < "description": "", 5,6c4,5 < "/scripts/behavior.lua", < "/scripts/actions/entities.lua" --- > "/scripts/actions/entities.lua", > "/scripts/behavior.lua" 10c9,12 < "trackingRange": 50 --- > "trackingRange": 50, > "entityTypes": [ > "player" > ] 47a50,58 > "title": "entityInTypes", > "type": "action", > "name": "entityInTypes", > "parameters": { > "entity": "damageSource", > "types": "" > } > }, > { 92,94c103 < "entityTypes": [ < "player" < ], --- > "entityTypes": "", behaviors\monsters\boss\spiderboss\main.behavior 8c8,11 < "/scripts/actions/movement.lua" --- > "/scripts/actions/movement.lua", > "/scripts/actions/sensor.lua", > "/scripts/actions/entities.lua", > "/scripts/behavior.lua" 71,73c74,76 < "title": "timer", < "type": "action", < "name": "timer", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 75,76c78,140 < "time": 2 < } --- > "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" > } > } > ] 101c165 < "emitter": "shellshards" --- > "emitter": "cocoonburst" 244c308 < "percentage": 0.6, --- > "percentage": 0.58, 343c407 < "percentage": 0.2, --- > "percentage": 0.15, 515a580,681 > }, > { > "title": "limiter", > "type": "decorator", > "name": "limiter", > "parameters": { > "limit": 1 > }, > "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": "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", > "parameters": { > "maxLoops": -1, > "untilSuccess": true > }, > "child": { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "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" > } > } > } > ] > } > } > } > ] > } behaviors\monsters\boss\spiderboss\setstage.behavior 43a44,51 > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "generateshell" > } behaviors\monsters\boss\spiderboss\stage1.behavior 3c3,5 < "scripts": [], --- > "scripts": [ > "/scripts/actions/math.lua" > ], 20a23,108 > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 30, > "onFail": false > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Ixodoom Return", > "parameters": {} > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": 5, > "untilSuccess": false > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 20, > "min": -20 > }, > "output": { > "number": "hatchX" > } > }, > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 15, > "min": -15 > }, > "output": { > "number": "hatchY" > } > }, > { > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/hatch.behavior", > "title": "Hatch", > "parameters": { > "spawnOffset": [ > "hatchX", > "hatchY" > ] > } > } > ] > } > } > ] > } > } behaviors\monsters\boss\spiderboss\stage2.behavior 3c3,5 < "scripts": [], --- > "scripts": [ > "/scripts/actions/math.lua" > ], 24,29d25 < "path": "/behaviors/monsters/boss/spiderboss/acidspray.behavior", < "title": "Acid Spray", < "parameters": {} < }, < { < "type": "module", 32a29,114 > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 25, > "onFail": false > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Ixodoom Return", > "parameters": {} > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": 8, > "untilSuccess": false > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 20, > "min": -20 > }, > "output": { > "number": "hatchX" > } > }, > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 15, > "min": -15 > }, > "output": { > "number": "hatchY" > } > }, > { > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/hatch.behavior", > "title": "Hatch", > "parameters": { > "spawnOffset": [ > "hatchX", > "hatchY" > ] > } > } > ] > } > } > ] > } > } behaviors\monsters\boss\spiderboss\stage3.behavior 2a3 > "description": "", 55,56c56,57 < "max": 20, < "min": -20 --- > "max": 15, > "min": -15 behaviors\monsters\unique\ixoling.behavior 14c14 < "title": "Spiderboss", --- > "title": "sequence", 16c16,17 < "name": "dynamic", --- > "name": "sequence", > "parameters": {}, 18a20,37 > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "body", > "state": "spawn" > } > }, > { > "title": "setParticleEmitterActive", > "type": "action", > "name": "setParticleEmitterActive", > "parameters": { > "active": true, > "emitter": "dripslime" > } > }, > { 23c42 < "fail": 1 --- > "success": 2 27,29c46,48 < "type": "module", < "path": "/behaviors/monsters/tracking.behavior", < "title": "Track targets", --- > "title": "controlParameters", > "type": "action", > "name": "controlParameters", 31c50,52 < "queryRange": 70 --- > "config": { > "gravityEnabled": false > } 35c56,162 < "title": "sequence", --- > "title": "wasDamaged", > "type": "action", > "name": "wasDamaged", > "parameters": {} > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": [ > 1, > 30 > ] > } > } > ] > }, > { > "title": "setResourcePercentage", > "type": "action", > "name": "setResourcePercentage", > "parameters": { > "percentage": 1, > "resource": "health" > } > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "hatch" > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "idle", > "type": "body" > } > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": 6, > "untilSuccess": false > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 6.28, > "min": 0 > }, > "output": { > "number": "randAngle" > } > }, > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "position": "self", > "offset": [ > 0, > 0 > ], > "projectileType": "glowygoocluster", > "angle": "randAngle", > "sourceEntity": "self", > "trackSource": false, > "projectileConfig": { > "speed": 2 > }, > "scalePower": true, > "power": 0 > } > } > ] > } > }, > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "parallel", 37,38c164,168 < "name": "sequence", < "parameters": {}, --- > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, 40a171,179 > "type": "module", > "path": "/behaviors/monsters/tracking.behavior", > "title": "Track targets", > "parameters": { > "queryRange": 70, > "trackingRange": 100 > } > }, > { 47,64d185 < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "spawn" < } < }, < { < "title": "setParticleEmitterActive", < "type": "action", < "name": "setParticleEmitterActive", < "parameters": { < "active": true, < "emitter": "dripslime" < } < }, < { 68,193d188 < "parameters": { < "success": 2 < }, < "children": [ < { < "title": "controlParameters", < "type": "action", < "name": "controlParameters", < "parameters": { < "config": { < "gravityEnabled": false < } < } < }, < { < "title": "wasDamaged", < "type": "action", < "name": "wasDamaged", < "parameters": {} < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": [ < 1, < 30 < ] < } < } < ] < }, < { < "title": "setResourcePercentage", < "type": "action", < "name": "setResourcePercentage", < "parameters": { < "percentage": 1, < "resource": "health" < } < }, < { < "title": "repeater", < "type": "decorator", < "name": "repeater", < "parameters": { < "maxLoops": 6, < "untilSuccess": false < }, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "random", < "type": "action", < "name": "random", < "parameters": { < "max": 6.28, < "min": 0 < }, < "output": { < "number": "randAngle" < } < }, < { < "title": "spawnProjectile", < "type": "action", < "name": "spawnProjectile", < "parameters": { < "position": "self", < "offset": [ < 0, < 0 < ], < "projectileType": "goocluster", < "angle": "randAngle", < "sourceEntity": "self", < "trackSource": false, < "projectileConfig": { < "speed": 2 < }, < "scalePower": true, < "power": 0 < } < } < ] < } < }, < { < "title": "playSound", < "type": "action", < "name": "playSound", < "parameters": { < "sound": "hatch" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "idle", < "type": "body" < } < } < ] < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": {}, < "children": [ < { < "title": "dynamic", < "type": "composite", < "name": "dynamic", 197c192 < "title": "sequence", --- > "title": "dynamic", 199c194 < "name": "sequence", --- > "name": "dynamic", 203,237c198,200 < "title": "onGround", < "type": "action", < "name": "onGround", < "parameters": {} < }, < { < "title": "entityInRange", < "type": "action", < "name": "entityInRange", < "parameters": { < "entity": "target", < "xRange": 10 < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "idle" < } < }, < { < "title": "faceEntity", < "type": "action", < "name": "faceEntity", < "parameters": { < "entity": "target" < } < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 239,244c202,216 < "child": { < "title": "cooldown", < "type": "decorator", < "name": "cooldown", < "parameters": { < "cooldown": 1 --- > "children": [ > { > "title": "onGround", > "type": "action", > "name": "onGround", > "parameters": {} > }, > { > "title": "entityInRange", > "type": "action", > "name": "entityInRange", > "parameters": { > "entity": "target", > "xRange": 10 > } 246,249c218,238 < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", --- > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "body", > "state": "idle" > } > }, > { > "title": "faceEntity", > "type": "action", > "name": "faceEntity", > "parameters": { > "entity": "target" > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", 251,331c240,245 < "children": [ < { < "title": "entityInRange", < "type": "action", < "name": "entityInRange", < "parameters": { < "entity": "target", < "yRange": 4 < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "attack" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.25 < } < }, < { < "title": "entityDirection", < "type": "action", < "name": "entityDirection", < "parameters": { < "entity": "self", < "target": "target" < }, < "output": { < "direction": "targetDirection", < "vector": "targetVector" < } < }, < { < "title": "multiply", < "type": "action", < "name": "multiply", < "parameters": { < "number": "targetDirection", < "factor": 50 < }, < "output": { < "result": "dash" < } < }, < { < "title": "spawnProjectile", < "type": "action", < "name": "spawnProjectile", < "parameters": { < "position": "self", < "offset": [ < "targetDirection", < 0 < ], < "projectileType": "chomp4", < "aimVector": [ < "targetDirection", < 0 < ], < "sourceEntity": "self", < "trackSource": true, < "projectileConfig": {}, < "scalePower": true, < "power": 50 < } < }, < { < "title": "playSound", < "type": "action", < "name": "playSound", < "parameters": { < "sound": "attack" < } --- > "child": { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 1 333,334c247,248 < { < "title": "parallel", --- > "child": { > "title": "sequence", 336,340c250,251 < "name": "parallel", < "parameters": { < "fail": -1, < "success": -1 < }, --- > "name": "sequence", > "parameters": {}, 343c254 < "title": "controlApproachVelocity", --- > "title": "entityInRange", 345c256 < "name": "controlApproachVelocity", --- > "name": "entityInRange", 347,351c258,268 < "velocity": [ < "dash", < 0 < ], < "force": 500 --- > "entity": "target", > "yRange": 4 > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "body", > "state": "attack" 359,362c276,331 < "time": [ < 0.15, < 0.35 < ] --- > "time": 0.25 > } > }, > { > "title": "entityDirection", > "type": "action", > "name": "entityDirection", > "parameters": { > "entity": "self", > "target": "target" > }, > "output": { > "direction": "targetDirection", > "vector": "targetVector" > } > }, > { > "title": "multiply", > "type": "action", > "name": "multiply", > "parameters": { > "number": "targetDirection", > "factor": 50 > }, > "output": { > "result": "dash" > } > }, > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "position": "self", > "offset": [ > "targetDirection", > 0 > ], > "projectileType": "chomp4", > "aimVector": [ > "targetDirection", > 0 > ], > "sourceEntity": "self", > "trackSource": true, > "projectileConfig": {}, > "scalePower": true, > "power": 50 > } > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "attack" 363a333,366 > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 > }, > "children": [ > { > "title": "controlApproachVelocity", > "type": "action", > "name": "controlApproachVelocity", > "parameters": { > "velocity": [ > "dash", > 0 > ], > "force": 500 > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": [ > 0.15, > 0.35 > ] > } > } > ] 367c370 < ] --- > } 369,388c372 < } < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "entityDirection", < "type": "action", < "name": "entityDirection", < "parameters": { < "target": "target" < }, < "output": { < "direction": "targetDirection" < } --- > ] 391,406c375,409 < "title": "controlMove", < "type": "action", < "name": "controlMove", < "parameters": { < "direction": "targetDirection", < "run": true < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "walk" < } --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "entityDirection", > "type": "action", > "name": "entityDirection", > "parameters": { > "target": "target" > }, > "output": { > "direction": "targetDirection" > } > }, > { > "title": "controlMove", > "type": "action", > "name": "controlMove", > "parameters": { > "direction": "targetDirection", > "run": true > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "body", > "state": "walk" > } > } > ] 408a412,417 > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} 411,416d419 < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} 421,429c424 < } < ] < }, < { < "title": "Reset", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ --- > }, 431,433c426,428 < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 435,437c430,451 < "type": "body", < "state": "idle" < } --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "body", > "state": "idle" > } > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] behaviors\sequences\floranmission\floranmissionstart.behavior 6a7 > "/npcs/bmain.lua", 8,11c9 < "/scripts/actions/position.lua", < "/scripts/pathing.lua", < "/scripts/util.lua", < "/scripts/vec2.lua" --- > "/scripts/behavior.lua" 12a11 > "parameters": {}, 220a220,229 > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { > "type": "module", > "path": "/behaviors/npc/converseseq.behavior" > } > }, > { 235,242c244,245 < "title": "failer", < "type": "decorator", < "name": "failer", < "parameters": {}, < "child": { < "type": "module", < "path": "/behaviors/sequences/beamout.behavior" < } --- > "type": "module", > "path": "/behaviors/sequences/beamout.behavior" 245,248d247 < }, < { < "type": "module", < "path": "/behaviors/npc/converseseq.behavior" behaviors\sequences\floranmission\nuruboss.behavior 2a3 > "description": "", 4,5c5,6 < "/scripts/actions/notification.lua", < "/npcs/bmain.lua" --- > "/npcs/bmain.lua", > "/scripts/actions/notification.lua" 15,20d15 < "type": "module", < "path": "/behaviors/sequences/floranmission/nurustartboss.behavior", < "title": "Nuru Boss Start", < "parameters": {} < }, < { 25c20 < "fail": -1, --- > "fail": 1, 30,32c25,27 < "title": "succeeder", < "type": "decorator", < "name": "succeeder", --- > "title": "selector", > "type": "composite", > "name": "selector", 34,40c29,47 < "child": { < "title": "dynamic", < "type": "composite", < "name": "dynamic", < "parameters": {}, < "children": [ < { --- > "children": [ > { > "type": "module", > "path": "/behaviors/monsters/tracking.behavior", > "title": "Target Tracking", > "parameters": { > "queryRange": 50, > "trackingRange": 100, > "entityTypes": [ > "player" > ] > } > }, > { > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { 52c59 < "title": "receivedNotification", --- > "title": "setAimPosition", 54c61 < "name": "receivedNotification", --- > "name": "setAimPosition", 56c63,67 < "type": "bossvulnerable" --- > "offset": [ > -1, > 0 > ], > "position": "self" 60c71,113 < "title": "selector", --- > "title": "endPrimaryFire", > "type": "action", > "name": "endPrimaryFire", > "parameters": {} > } > ] > } > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "type": "module", > "path": "/behaviors/sequences/floranmission/nurustartboss.behavior", > "title": "Nuru Boss Start", > "parameters": {} > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 > }, > "children": [ > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "dynamic", 62c115 < "name": "selector", --- > "name": "dynamic", 66,100c119,121 < "title": "limiter", < "type": "decorator", < "name": "limiter", < "parameters": { < "limit": 1 < }, < "child": { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "We cracked its shell. Strike it while it's vulnerable!" < } < } < }, < { < "title": "limiter", < "type": "decorator", < "name": "limiter", < "parameters": { < "limit": 1 < }, < "child": { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "Now. Now! Hit it right in the flesh!" < } < } < }, < { < "title": "limiter", < "type": "decorator", < "name": "limiter", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 102c123,126 < "limit": 1 --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" 104,109c128,191 < "child": { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "It looks almost dead. Deal the finishing blow!" --- > "children": [ > { > "title": "receivedNotification", > "type": "action", > "name": "receivedNotification", > "parameters": { > "type": "bossvulnerable" > } > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "limiter", > "type": "decorator", > "name": "limiter", > "parameters": { > "limit": 1 > }, > "child": { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "We cracked its shell. Strike it while it's vulnerable!" > } > } > }, > { > "title": "limiter", > "type": "decorator", > "name": "limiter", > "parameters": { > "limit": 1 > }, > "child": { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "Now. Now! Hit it right in the flesh!" > } > } > }, > { > "title": "limiter", > "type": "decorator", > "name": "limiter", > "parameters": { > "limit": 1 > }, > "child": { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "It looks almost dead. Deal the finishing blow!" > } > } > } > ] 111c193 < } --- > ] 115,124c197,206 < ] < } < ] < } < }, < { < "type": "module", < "path": "/behaviors/sequences/floranmission/nurucombat.behavior", < "title": "Nuru Boss Combat", < "parameters": {} --- > }, > { > "type": "module", > "path": "/behaviors/sequences/floranmission/nurucombat.behavior", > "title": "Nuru Boss Combat", > "parameters": {} > } > ] > } > ] behaviors\sequences\floranmission\nurucombat.behavior 46c46 < "entity": "target" --- > "entity": "boss" 61a62 > "orderBy": "nearest", 65d65 < "orderBy": "nearest", 69c69 < "entity": "target" --- > "entity": "boss" 92c92 < "entity": "target", --- > "entity": "boss", 96a97 > "title": "", 100c101 < "entity": "target" --- > "entity": "boss" 137c138 < "target": "target" --- > "target": "boss" behaviors\sequences\floranmission\nurustartboss.behavior 57c57 < "title": "limiter", --- > "title": "succeeder", 59,62c59,60 < "name": "limiter", < "parameters": { < "limit": 1 < }, --- > "name": "succeeder", > "parameters": {}, 64,66c62,64 < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "title": "limiter", > "type": "decorator", > "name": "limiter", 68,71c66 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "limit": 1 73,96c68,76 < "children": [ < { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "Hey, check this thing out!" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 4 < } < }, < { < "title": "say", < "type": "action", < "name": "say", < "parameters": { < "content": "This one is much bigger than the one they got last year. Thiss might be tough." < } --- > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" 98,103c78,109 < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 4 --- > "children": [ > { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "Hey, check this thing out!" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 4 > } > }, > { > "title": "say", > "type": "action", > "name": "say", > "parameters": { > "content": "This one is much bigger than the one they got last year. Thiss might be tough." > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 2 > } 105,106c111,120 < } < ] --- > ] > } > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 2 168c182 < "time": 1 --- > "time": 2 dungeons\missions\floranmissions\floranmission1.dungeon 386a387,398 > > { > "value" : [31, 0, 0, 255], > "comment" : "wire #31", > "brush" : [ [ "wire", { "group" : "group31", "local" : true } ] ] > }, > > { > "value" : [32, 0, 0, 255], > "comment" : "wire #32", > "brush" : [ [ "wire", { "group" : "group32", "local" : true } ] ] > }, 388a401,406 > "value" : [33, 0, 0, 255], > "comment" : "wire #33", > "brush" : [ [ "wire", { "group" : "group33", "local" : true } ] ] > }, > > { 1479a1498,1503 > "value" : [0, 225, 62, 255], > "comment" : "strangeweb4", > "brush" : [ [ "clear" ], [ "object", "strangeweb4" ] ] > }, > > { 2336a2361,2372 > "value" : [156, 50, 156, 255], > "comment" : "skullwalltorch facing left", > "brush" : [ [ "clear" ], [ "object", "skullwalltorch", { "direction" : "left" } ] ] > }, > > { > "value" : [156, 60, 156, 255], > "comment" : "skullwalltorch facing right", > "brush" : [ [ "clear" ], [ "object", "skullwalltorch", { "direction" : "right" } ] ] > }, > > { 2418c2454 < "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "left", "parameters" : { "locked" : true } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "left", "parameters" : { "locked" : true, "interactive" : false } } ] ] 2424c2460 < "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "right", "parameters" : { "locked" : true } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "right", "parameters" : { "locked" : true, "interactive" : false } } ] ] dungeons\missions\hylotlmissions\hylotlmission1.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\challengerooms.dungeon 7c7,12 < "anchor" : [ "adventure1", "adventure2", "challengeroom1", "platform1", "platform2", "platform3", "platform4", "platform5", "platform6", "puzzle1", "quiqksilver1", "quiqksilver2", "quiqksilver3", "quiqksilver4" ], --- > "anchor" : [ > "adventure1", "adventure2", "challengeroom1", "platform1", > "platform2", "platform3", "platform4", "platform5", "platform6", "puzzle1", > "quiqksilver1", "quiqksilver2", "quiqksilver3", "quiqksilver4", "quiqksilver5", "quiqksilver6", "quiqksilver7", "quiqksilver8", > "choices1" > ], 111a117,151 > }, > { > "name" : "quiqksilver5", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "quiqksilver5.json" ] > }, > { > "name" : "quiqksilver6", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "quiqksilver6.json" ] > }, > { > "name" : "quiqksilver7", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "quiqksilver7.json" ] > }, > { > "name" : "quiqksilver8", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "quiqksilver8.json" ] > }, > { > "name" : "choices1", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "choices1.json" ] dungeons\other\challengerooms\quiqksilver5.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\quiqksilver6.json [TMX file differences are left out for huge size.] items\swords\mission\nurusspear\nurusspear.sword 14c14 < "fireTime" : 0.8, --- > "fireTime" : 2, 49c49 < "projectileType" : "electricplasmarocket", --- > "projectileType" : "shock", 51,52c51,53 < "speed" : 0.1, < "power" : 7 --- > "speed" : 70, > "power" : 2, > "damageType" : "IgnoresDef" monsters\bmonster.lua 157a158,167 > function setLightActive(args, output) > args = parseArgs(args, { > light = nil, > active = true > }) > if light == nil or active == nil then return false end > > entity.setLightActive(args.light, args.active) > return true > end monsters\boss\spiderboss\spiderboss.animation 387a388,408 > }, > "cocoonburst" : { > "emissionRate" : 1.0, > "offsetRegion" : [-6, -8, 6, 8], > "particles" : [ > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard1" } > ] 400,401c421,423 < "generateshell" : [ "/sfx/npc/quadruped/sandworm_idle1.wav" ] < --- > "generateshell" : [ "/sfx/npc/quadruped/sandworm_idle1.wav" ], > "cocooncrack" : [ "/sfx/gun/boneshotgun.wav" ], > "cocoonburst" : [ "/sfx/objects/capsule_break3.wav"] monsters\boss\spiderboss\spiderboss.monstertype 81c81 < "baseValue" : 400 --- > "baseValue" : 1000 84c84 < "baseValue" : 95 --- > "baseValue" : 97 monsters\unique\ixoling\ixoling.animation 92a93,101 > "lights" : { > "glow" : { > "active" : true, > "position" : [0, 0], > "color" : [64, 128, 64], > "pointLight" : false > } > }, > npcs\story\nuru.npctype 12a13 > "damageTeamType" : "friendly", 72c73 < "baseValue" : 100.0 --- > "baseValue" : 10000.0 objects\ancient\ancientbouldertrap\ancientbouldertrap.object 79c79 < "projectile" : "trapboulderappearbouncy", // name of projectile (required) --- > "projectile" : "ancienttrapboulderappear", // name of projectile (required) objects\ancient\ancienticetrap\ancienticetrap.object 10,15c10,15 < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", --- > "apexDescription" : "It's a deadly ice trap.", > "avianDescription" : "A hazardous ice mechanism.", > "floranDescription" : "Ice can be dangeroussss.", > "glitchDescription" : "Cautious. It's a deadly ice trap.", > "humanDescription" : "Watch out for the deadly ice projectiles.", > "hylotlDescription" : "Ice, water in it's most deadly form.", objects\ancient\ancientstriplight2\ancientstriplight2.object 7c7,8 < "price" : 500, --- > "price" : 375, > "printable" : false, 31c32,33 < "anchors" : [ "background" ] --- > "anchors" : [ "background" ], > "collision" : "solid" 42c44,45 < "anchors" : [ "background" ] --- > "anchors" : [ "background" ], > "collision" : "solid" objects\ancient\ancientstriplight3\ancientstriplight3.object 7c7,8 < "price" : 500, --- > "price" : 300, > "printable" : false, objects\avian\bouldertrap\bouldertrap.object 79c79 < "projectile" : "trapboulderappearrolling", // name of projectile (required) --- > "projectile" : "aviantrapboulderappear", // name of projectile (required) objects\colony\colonydeed\colonydeed.animation 164c164 < "size" : 2.0, --- > "size" : 1.0, 178a179,199 > // fizz > "particle" : { > "type" : "animated", > "animation" : "/animations/fizz5/fizz5.animation", > "position" : [1.0, 3.0], > "size" : 0.5, > "light" : [50, 50, 50], > "fade" : 0.9, > "initialVelocity" : [0.0, 7.0], > "finalVelocity" : [0.0, -5.0], > "approach" : [0, 20], > "timeToLive" : 10, > "layer" : "middle", > "variance" : { > "initialVelocity" : [2, 2.0], > "rotation" : 180, > "angularVelocity" : 180 > } > } > }, > { 183c204 < "size" : 2.0, --- > "size" : 1.0, 202c223 < "size" : 2.0, --- > "size" : 1.0, 221c242 < "size" : 2.0, --- > "size" : 1.0, 240c261 < "size" : 2.0, --- > "size" : 1.0, 259c280 < "size" : 2.0, --- > "size" : 1.0, 278c299 < "size" : 2.0, --- > "size" : 1.0, 297c318 < "size" : 2.0, --- > "size" : 1.0, objects\generic\electricdoor\electricdoor.object 3c3 < "tags" : ["door","electrical"], --- > "tags" : ["door","electronic"], objects\generic\screenplanet\screenplanet.object 3c3 < "tags" : ["electronics"], --- > "tags" : ["electronic"], objects\generic\tvstation\tvstation.object 3c3 < "tags" : ["electronics"], --- > "tags" : ["electronic"], objects\hylotl\hylotlredalert\hylotlredalert.object 8c8 < "description" : "-todo-", --- > "description" : "A bright blue alarm", 10a11,17 > > "apexDescription" : "This light will flash and an alarm will sound when there is an emergency.", > "avianDescription" : "A flashing light and siren that signal an emergency.", > "floranDescription" : "Flashy blue siren issss loud.", > "glitchDescription" : "Panic. A siren that announces an emergency.", > "humanDescription" : "Is a blue alert different from a red alert emergency?", > "hylotlDescription" : "A light that signals an emergency.", objects\hylotl\largetentacleprop\largetentacleprop.object 10c10 < "description" : "-todo-", --- > "description" : "A huge stone tentacle", 15,19c15,19 < "avianDescription" : "-todo", < "floranDescription" : "-todo", < "glitchDescription" : "-todo", < "humanDescription" : "-todo", < "hylotlDescription" : "-todo", --- > "avianDescription" : "There's a tentacle sticking out here.", > "floranDescription" : "What issss thissss?", > "glitchDescription" : "Surprise. A large stone tentacle emerges.", > "humanDescription" : "A gaint tentacle! Is that connected to anything?", > "hylotlDescription" : "A giant stone tentacle appears!", objects\hylotl\librarybookcaseg2\librarybookcaseg2.object 8c8 < "description" : "A very large antique bookcase.", --- > "description" : "A large antique bookcase.", objects\hylotl\librarybookcasel2\librarybookcasel2.object 17c17 < "hylotlDescription" : "It is the contents of a bookcase that really counts.", --- > "hylotlDescription" : "It's the contents of a bookcase that really counts.", objects\hylotl\librarybookcasel2damage\librarybookcasel2damage.object 10c10 < "description" : "-todo-", --- > "description" : "A big antique bookcase that has been damaged", 14,17c14,17 < "apexDescription" : "-todo-", < "avianDescription" : "-todo", < "floranDescription" : "-todo", < "glitchDescription" : "-todo", --- > "apexDescription" : "Most of the books have gone and the bookcase is damaged.", > "avianDescription" : "This bookcase has not been lovingly looked after.", > "floranDescription" : "Messssy old bookcase.", > "glitchDescription" : "Statement. A disheveled bookcase.", 19c19 < "hylotlDescription" : "-todo", --- > "hylotlDescription" : "This library has not been maintained to an appropriate standard.", objects\hylotl\librarybookcasen2\librarybookcasen2.object 8c8 < "description" : "-todo-", --- > "description" : "A fairly big bookcase full of books.", 12,17c12,17 < "apexDescription" : "-todo-", < "avianDescription" : "-todo", < "floranDescription" : "Green. Is a plant?", < "glitchDescription" : "Curious. I have never seen a turtle before.", < "humanDescription" : "A turtle! I like turtles.", < "hylotlDescription" : "The turtle is a truly inspiring creature.", --- > "apexDescription" : "A standard library bookcase.", > "avianDescription" : "An old bookcase full of books.", > "floranDescription" : "Library bookssss.", > "glitchDescription" : "Content. There are many bookcases such as this in Glitch kingdoms.", > "humanDescription" : "A sturdy bookcase.", > "hylotlDescription" : "An assortment of poems and prose line the shelves.", objects\hylotl\librarybookcasen2damage\librarybookcasen2damage.object 10c10 < "description" : "-todo-", --- > "description" : "A library bookcase with missing books", 14,19c14,19 < "apexDescription" : "-todo-", < "avianDescription" : "-todo", < "floranDescription" : "-todo", < "glitchDescription" : "-todo", < "humanDescription" : "-todo", < "hylotlDescription" : "-todo", --- > "apexDescription" : "Most of the books are now missing.", > "avianDescription" : "A lot of the books are now gone from this bookcase.", > "floranDescription" : "More empty shelvesss.", > "glitchDescription" : "Observation. Many books are missing from this bookcase.", > "humanDescription" : "A lot of books are now missing from this bookcase.", > "hylotlDescription" : "Is a library still a library if the books are missing?", objects\hylotl\librarybookcases1\librarybookcases1.object 8c8 < "description" : "-todo-", --- > "description" : "An old bookcase library bookcase", 12,17c12,17 < "apexDescription" : "-todo-", < "avianDescription" : "-todo", < "floranDescription" : "Green. Is a plant?", < "glitchDescription" : "Curious. I have never seen a turtle before.", < "humanDescription" : "A turtle! I like turtles.", < "hylotlDescription" : "The turtle is a truly inspiring creature.", --- > "apexDescription" : "This is quite a fancy old bookcase.", > "avianDescription" : "An ornate Hylotl bookcase.", > "floranDescription" : "Floran ssssmash bookcase already.", > "glitchDescription" : "Jealous. This bookcase would not look out of place in a Glitch castle.", > "humanDescription" : "Fancy bookcase for fancy books.", > "hylotlDescription" : "A traditional Hylotl bookcase.", projectiles\traps\ancienttrapboulderrolling\ancienttrapboulderrolling.projectile 9a10 > "piercing" : true, 14c15 < "file" : "/projectiles/traps/ancienttrapboulderrollingsmashexplosion/ancienttrapboulderrollingsmashexplosion.config" --- > "file" : "/projectiles/traps/ancienttrapbouldersmash/ancienttrapbouldersmash.config" projectiles\traps\trapboulder\trapboulder.projectile 13c13 < "file" : "/projectiles/traps/trapbouldersmashexplosion/trapbouldersmashexplosion.config" --- > "file" : "/projectiles/traps/trapbouldersmash/trapbouldersmash.config" projectiles\traps\trapboulderbouncy\trapboulderbouncy.projectile 14c14 < "file" : "/projectiles/traps/trapbouldersmashexplosion/trapbouldersmashexplosion.config" --- > "file" : "/projectiles/traps/trapbouldersmash/trapbouldersmash.config" projectiles\traps\trapboulderbouncy\trapboulderbouncylong.projectile 14c14 < "file" : "/projectiles/traps/trapbouldersmashexplosion/trapbouldersmashexplosion.config" --- > "file" : "/projectiles/traps/trapbouldersmash/trapbouldersmash.config" scripts\actions\entities.lua 113a114,147 > -- param entity > -- param types > function entityInTypes(args, output) > args = parseArgs(args, { > entity = "target", > types = {"player", "npc", "monster"} > }) > > local entityId = BData:getEntity(args.entity) > if entityId == nil or args.types == nil then return false end > > local entityType = world.entityType(entityId) > for _,acceptedType in pairs(args.types) do > if entityType == acceptedType then > return true > end > end > return false > end > > -- param entity > -- param func > function callScriptedEntity(args, output) > args = parseArgs(args, { > entity = nil, > func = nil > }) > > local entityId = BData:getEntity(args.entity) > if entityId == nil or args.func == nil then return false end > > return world.callScriptedEntity(entityId, args.func) == true > end > tenants\villager.tenant 7,8c7 < "door": 1, < "generic": 3 --- > "door": 1