FILES ----- universe_server.config behaviors\monsters\boss\spiderboss\hatch.behavior behaviors\monsters\boss\spiderboss\main.behavior behaviors\monsters\boss\spiderboss\stage1.behavior behaviors\monsters\boss\spiderboss\stage2.behavior behaviors\monsters\boss\spiderboss\stage3.behavior behaviors\monsters\boss\spiderboss\sweep.behavior behaviors\npc\tracking.behavior behaviors\npc\combat\melee.behavior behaviors\tenant\returnhome.behavior biomes\surface\savannah.biome biomes\surface_detached\bones.biome dungeons\microdungeons\biomes\desert\arch1.json dungeons\microdungeons\biomes\desert\arch4.json dungeons\microdungeons\biomes\desert\desertcabin5.json dungeons\microdungeons\biomes\desert\desertmicrodungeons.dungeon dungeons\microdungeons\biomes\desert\desertpillar2.json dungeons\microdungeons\biomes\desert\oldhouse2.json dungeons\microdungeons\biomes\forest\forestwell1.json dungeons\microdungeons\biomes\forest\forestwell2.json dungeons\microdungeons\biomes\oasis\oasisbridge4.json dungeons\microdungeons\biomes\oasis\oasisbuilding5.json dungeons\microdungeons\biomes\savannah\doubledeckerhut.json dungeons\microdungeons\biomes\savannah\groundhut6.json dungeons\microdungeons\biomes\savannah\huntinghut3.json dungeons\microdungeons\biomes\savannah\savannahmicrodungeons.dungeon dungeons\microdungeons\biomes\tarpits\tarcave1.json dungeons\microdungeons\biomes\tarpits\tarcave2.json dungeons\microdungeons\biomes\tarpits\tartunnel1.json dungeons\microdungeons\biomes\tarpits\tartunnel2.json items\materials\moonstoneicon.png items\throwables\flowerygrassseeds.thrownitem items\throwables\grassseeds.thrownitem monsters\bmonster.lua monsters\boss\crystalboss\crystalboss.monstertype monsters\boss\crystalboss\skills\crystaldoublebeamattack.monsterskill monsters\boss\crystalboss\skills\crystalsinebeamattack.monsterskill monsters\boss\crystalboss\skills\crystalsinglebeamattack.monsterskill monsters\boss\spiderboss\spiderboss.animation monsters\crawling\crawlingmonster.lua monsters\flying\circlestate.lua monsters\flying\flyingmonster.lua monsters\flying\glidestate.lua monsters\ground\groundmonster.lua monsters\pets\groundpet.lua monsters\skills\ranged\acidicspitattack.monsterskill monsters\skills\ranged\acidsprayattack.monsterskill monsters\skills\ranged\barbsprayattack.monsterskill monsters\skills\ranged\beetleswarmattack.monsterskill monsters\skills\ranged\bloodvomitattack.monsterskill monsters\skills\ranged\blueflameattack.monsterskill monsters\skills\ranged\bonerainattack.monsterskill monsters\skills\ranged\bubbleblastattack.monsterskill monsters\skills\ranged\burninghaloattack.monsterskill monsters\skills\ranged\cellblastattack.monsterskill monsters\skills\ranged\darkgasattack.monsterskill monsters\skills\ranged\darkplasmaattack.monsterskill monsters\skills\ranged\dragonbreathattack.monsterskill monsters\skills\ranged\flameburstattack.monsterskill monsters\skills\ranged\flyswarmattack.monsterskill monsters\skills\ranged\iceshotattack.monsterskill monsters\skills\ranged\inksprayattack.monsterskill monsters\skills\ranged\plasmaburstattack.monsterskill monsters\skills\ranged\rangedchompattack.monsterskill monsters\skills\ranged\shockballattack.monsterskill monsters\skills\ranged\sonicwaveattack.monsterskill monsters\skills\ranged\spicecloudattack.monsterskill monsters\skills\ranged\spinslashattack.monsterskill monsters\skills\ranged\twistingpulseattack.monsterskill monsters\unique\ixoling\ixoling.animation monsters\unique\ixoling\ixoling.monstertype monsters\unique\po\megapo.monstertype monsters\unique\po\micropo.monstertype monsters\unique\po\po.monstertype monsters\unique\swarpion\swarpion.monstertype npcs\bmain.lua [NEW] npcs\friendlyguard_manipulator.npctype [NEW] npcs\friendlyguard_separator.npctype npcs\friendlypirateguard.npctype npcs\dungeon\apexresearchlab\labguard.npctype npcs\dungeon\apexresearchlab\labguardlookout.npctype npcs\dungeon\apexresearchlab\labscientist.npctype [NEW] npcs\tenants\neon.npctype [NEW] npcs\tenants\socialite.npctype [NEW] objects\biome\desert\sandstonebed\sandstonebed.frames [NEW] objects\biome\desert\sandstonebed\sandstonebed.object [NEW] objects\biome\desert\sandstonebed\sandstonebed.png [NEW] objects\biome\desert\sandstonebed\sandstonebedcover.png [NEW] objects\biome\desert\sandstonebed\sandstonebedicon.png [NEW] objects\biome\desert\sandstonechair\sandstonechair.frames [NEW] objects\biome\desert\sandstonechair\sandstonechair.object [NEW] objects\biome\desert\sandstonechair\sandstonechair.png [NEW] objects\biome\desert\sandstonechair\sandstonechaircover.png [NEW] objects\biome\desert\sandstonechair\sandstonechairicon.png [NEW] objects\biome\desert\sandstonechest\sandstonechest.frames [NEW] objects\biome\desert\sandstonechest\sandstonechest.object [NEW] objects\biome\desert\sandstonechest\sandstonechest.png [NEW] objects\biome\desert\sandstonechest\sandstonechesticon.png [NEW] objects\biome\desert\sandstonedoor\sandstonedoor.frames [NEW] objects\biome\desert\sandstonedoor\sandstonedoor.object [NEW] objects\biome\desert\sandstonedoor\sandstonedoor.png [NEW] objects\biome\desert\sandstonedoor\sandstonedooricon.png [NEW] objects\biome\desert\sandstonetable\sandstonetable.frames [NEW] objects\biome\desert\sandstonetable\sandstonetable.object [NEW] objects\biome\desert\sandstonetable\sandstonetable.png [NEW] objects\biome\desert\sandstonetable\sandstonetableicon.png [NEW] objects\biome\desert\sandstonetorch\sandstonetorch.animation [NEW] objects\biome\desert\sandstonetorch\sandstonetorch.frames [NEW] objects\biome\desert\sandstonetorch\sandstonetorch.object [NEW] objects\biome\desert\sandstonetorch\sandstonetorch.png [NEW] objects\biome\desert\sandstonetorch\sandstonetorchicon.png [NEW] objects\biome\desert\sandstonetorch\sandstonetorchleft.frames [NEW] objects\biome\desert\sandstonetorch\sandstonetorchleft.png [NEW] objects\biome\desert\sandstonetorch\sandstonetorchleftlit.frames [NEW] objects\biome\desert\sandstonetorch\sandstonetorchleftlit.png [NEW] objects\biome\desert\sandstonetorch\sandstonetorchlit.frames [NEW] objects\biome\desert\sandstonetorch\sandstonetorchlit.png [NEW] objects\biome\desert\sandstonetorch\sandstonetorchright.frames [NEW] objects\biome\desert\sandstonetorch\sandstonetorchright.png [NEW] objects\biome\desert\sandstonetorch\sandstonetorchrightlit.frames [NEW] objects\biome\desert\sandstonetorch\sandstonetorchrightlit.png objects\colony\colonydeed\colonydeed.lua objects\generic\copperceilinglight\copperceilinglight.object objects\generic\coppershelf\coppershelf.object objects\outpost\frogfurnishing\frogfurnishing.object objects\outpost\penguinbay\penguinbay.object objects\themed\retroscifi\retroscifibed\retroscifibed.object objects\themed\retroscifi\retroscificabinet\retroscificabinet.object objects\themed\retroscifi\retroscifichair\retroscifichair.object objects\themed\retroscifi\retroscifidresser\retroscifidresser.object objects\themed\retroscifi\retroscifilight\retroscifilight.object objects\themed\retroscifi\retroscifitable\retroscifitable.object objects\themed\retroscifi\retroscifitv\retroscifitv.object objects\tiered\tier10bed\tier10bed.object objects\tiered\tier10chair\tier10chair.object objects\tiered\tier10door\tier10door.object objects\tiered\tier10light\tier10light.object objects\tiered\tier10switch\tier10switch.object objects\tiered\tier10table\tier10table.object objects\tiered\tier10techchest\tier10techchest.object objects\tiered\tier1bed\tier1bed.object objects\tiered\tier1chair\tier1chair.object objects\tiered\tier1light\tier1light.object objects\tiered\tier2bed\tier2bed.object objects\tiered\tier2chair\tier2chair.object objects\tiered\tier2light\tier2light.object objects\tiered\tier2switch\tier2switch.object objects\tiered\tier3bed\tier3bed.object objects\tiered\tier3chair\tier3chair.object objects\tiered\tier3light\tier3light.object objects\tiered\tier3switch\tier3switch.object objects\tiered\tier4bed\tier4bed.object objects\tiered\tier4chair\tier4chair.object objects\tiered\tier4door\tier4door.object objects\tiered\tier4light\tier4light.object objects\tiered\tier4switch\tier4switch.object objects\tiered\tier4table\tier4table.object objects\tiered\tier5bed\tier5bed.object objects\tiered\tier5chair\tier5chair.object objects\tiered\tier5light\tier5light.object objects\tiered\tier5switch\tier5switch.object objects\tiered\tier6bed\tier6bed.object objects\tiered\tier6chair\tier6chair.object objects\tiered\tier6door\tier6door.object objects\tiered\tier6light\tier6light.object objects\tiered\tier6switch\tier6switch.object objects\tiered\tier6table\tier6table.object objects\tiered\tier6techchest\tier6techchest.object objects\tiered\tier7bed\tier7bed.object objects\tiered\tier7chair\tier7chair.object objects\tiered\tier7door\tier7door.object objects\tiered\tier7light\tier7light.object objects\tiered\tier7switch\tier7switch.object objects\tiered\tier7table\tier7table.object objects\tiered\tier7techchest\tier7techchest.object objects\tiered\tier8bed\tier8bed.object objects\tiered\tier8chair\tier8chair.object objects\tiered\tier8light\tier8light.object objects\tiered\tier8switch\tier8switch.object objects\tiered\tier9bed\tier9bed.object objects\tiered\tier9chair\tier9chair.object objects\tiered\tier9light\tier9light.object objects\tiered\tier9switch\tier9switch.object [NEW] plants\trees\forestceiling\foliage\leafed\base1.png [NEW] plants\trees\forestceiling\foliage\leafed\base2.png [NEW] plants\trees\forestceiling\foliage\leafed\end1.png [NEW] plants\trees\forestceiling\foliage\leafed\end2.png [NEW] plants\trees\forestceiling\foliage\leafed\leafed.modularfoliage [NEW] plants\trees\forestceiling\foliage\leafed\mid1.png [NEW] plants\trees\forestceiling\foliage\leafed\mid2.png [NEW] plants\trees\forestceiling\stems\bone\bone.modularstem [NEW] plants\trees\forestceiling\stems\bone\desertvinebase1.png [NEW] plants\trees\forestceiling\stems\bone\desertvinebase2.png [NEW] plants\trees\forestceiling\stems\bone\desertvineend1.png [NEW] plants\trees\forestceiling\stems\bone\desertvineend2.png [NEW] plants\trees\forestceiling\stems\bone\desertvinemid1.png [NEW] plants\trees\forestceiling\stems\bone\desertvinemid2.png projectiles\boss\spiderboss\acidsweep.projectile projectiles\explosions\acidexplosion\acidexplosion.projectile [NEW] projectiles\explosions\acidspitexplosion\acidspitexplosion.config projectiles\npcs\acidspit\acidspit.projectile recipes\furniture\tier1\tier1table.recipe recipes\furniture\tier10\tier10table.recipe recipes\furniture\tier2\tier2table.recipe recipes\furniture\tier3\tier3table.recipe recipes\furniture\tier4\tier4table.recipe recipes\furniture\tier5\tier5table.recipe recipes\furniture\tier6\tier6table.recipe recipes\furniture\tier7\tier7table.recipe recipes\furniture\tier8\tier8table.recipe recipes\furniture\tier9\tier9table.recipe scripts\oldpathing.lua scripts\pathing.lua scripts\util.lua scripts\actions\entities.lua scripts\actions\movement.lua sfx\gun\plasma_ar3.wav sfx\gun\plasma_ar4.wav [NEW] sfx\npc\unique\ixoling_hatch1.wav [NEW] sfx\npc\unique\ixoling_hatch2.wav [NEW] sfx\npc\unique\spiderboss_attack1.wav [NEW] sfx\npc\unique\spiderboss_attack2.wav [NEW] sfx\npc\unique\spiderboss_cocoonburst.wav [NEW] sfx\npc\unique\spiderboss_cocooncrack.wav [NEW] sfx\npc\unique\spiderboss_death.wav [NEW] sfx\npc\unique\spiderboss_idle1.wav [NEW] sfx\npc\unique\spiderboss_idle2.wav [NEW] sfx\npc\unique\spiderboss_pain1.wav [NEW] sfx\npc\unique\spiderboss_pain2.wav [NEW] sfx\npc\unique\spiderboss_shellbreak1.wav [NEW] sfx\npc\unique\spiderboss_shellbreak2.wav [NEW] sfx\npc\unique\spiderboss_shellrestore.wav [NEW] sfx\npc\unique\spiderboss_turnhostile.wav sfx\objects\plant_break1.wav sfx\objects\plant_break3.wav sfx\objects\plant_break5.wav sfx\objects\plant_break6.wav sfx\objects\rock_break1.wav sfx\objects\rock_break2.wav sfx\objects\rock_break3.wav sfx\objects\rock_break5.wav sfx\objects\rock_crumble1.wav sfx\objects\rock_crumble2.wav sfx\objects\rock_crumble3.wav sfx\objects\rock_crumble5.wav [NEW] sfx\projectiles\beetle1.wav [NEW] sfx\projectiles\beetle2.wav [NEW] sfx\projectiles\beetle3.wav [NEW] sfx\projectiles\beetle4.wav [NEW] sfx\projectiles\bloodvomit1.wav [NEW] sfx\projectiles\bloodvomit2.wav [NEW] sfx\projectiles\bloodvomit3.wav [NEW] sfx\projectiles\bloodvomit4.wav [NEW] sfx\projectiles\bloodvomit5.wav [NEW] sfx\projectiles\bloodvomit6.wav [NEW] sfx\projectiles\bloodvomit7.wav [NEW] sfx\projectiles\bonerain1.wav [NEW] sfx\projectiles\bonerain2.wav [NEW] sfx\projectiles\bonerain3.wav [NEW] sfx\projectiles\bonerain_full.wav [NEW] sfx\projectiles\bonerain_throw1.wav [NEW] sfx\projectiles\bonerain_throw2.wav sfx\projectiles\goo_spit1.wav sfx\projectiles\goo_spit2.wav [NEW] sfx\projectiles\plasma1.wav [NEW] sfx\projectiles\plasma2.wav [NEW] sfx\projectiles\spinning_throw.wav [NEW] sfx\projectiles\spit1.wav sfx\projectiles\spit2.wav sfx\projectiles\thorn.wav species\glitch.species stats\npc_primary.lua stats\effects\damageflash\damageflash.statuseffect [NEW] tenants\chef_random.tenant [NEW] tenants\merchant_random.tenant [NEW] tenants\villager_random.tenant [NEW] tenants\guards\guardt2_random.tenant [NEW] tenants\guards\guardt3_random.tenant [NEW] tenants\guards\guardt4_random.tenant [NEW] tenants\guards\guardt5a_random.tenant [NEW] tenants\guards\guardt5m_apex.tenant [NEW] tenants\guards\guardt5m_avian.tenant [NEW] tenants\guards\guardt5m_floran.tenant [NEW] tenants\guards\guardt5m_glitch.tenant [NEW] tenants\guards\guardt5m_human.tenant [NEW] tenants\guards\guardt5m_hylotl.tenant [NEW] tenants\guards\guardt5m_random.tenant [NEW] tenants\guards\guardt5s_apex.tenant [NEW] tenants\guards\guardt5s_avian.tenant [NEW] tenants\guards\guardt5s_floran.tenant [NEW] tenants\guards\guardt5s_glitch.tenant [NEW] tenants\guards\guardt5s_human.tenant [NEW] tenants\guards\guardt5s_hylotl.tenant [NEW] tenants\guards\guardt5s_random.tenant [NEW] tenants\guards\guardt6a_apex.tenant [NEW] tenants\guards\guardt6a_avian.tenant [NEW] tenants\guards\guardt6a_floran.tenant [NEW] tenants\guards\guardt6a_glitch.tenant [NEW] tenants\guards\guardt6a_human.tenant [NEW] tenants\guards\guardt6a_hylotl.tenant [NEW] tenants\guards\guardt6a_random.tenant [NEW] tenants\guards\guardt6m_apex.tenant [NEW] tenants\guards\guardt6m_avian.tenant [NEW] tenants\guards\guardt6m_floran.tenant [NEW] tenants\guards\guardt6m_glitch.tenant [NEW] tenants\guards\guardt6m_human.tenant [NEW] tenants\guards\guardt6m_hylotl.tenant [NEW] tenants\guards\guardt6m_random.tenant [NEW] tenants\guards\guardt6s_apex.tenant [NEW] tenants\guards\guardt6s_avian.tenant [NEW] tenants\guards\guardt6s_floran.tenant [NEW] tenants\guards\guardt6s_glitch.tenant [NEW] tenants\guards\guardt6s_human.tenant [NEW] tenants\guards\guardt6s_hylotl.tenant [NEW] tenants\guards\guardt6s_random.tenant [NEW] tenants\guards\guard_random.tenant [NEW] tenants\other\neon.tenant [NEW] tenants\other\socialite.tenant [NEW] tenants\sub-biome\bones.tenant [NEW] tenants\sub-biome\colourful.tenant [NEW] tenants\sub-biome\eyepatch.tenant [NEW] tenants\sub-biome\flesh.tenant [NEW] tenants\sub-biome\giantflower.tenant [NEW] tenants\sub-biome\glow.tenant [NEW] tenants\sub-biome\oasis.tenant [NEW] tenants\sub-biome\spring.tenant [NEW] tenants\sub-biome\tar.tenant treasure\monster.treasurepools [NEW] versioning\celestialchunk_2_7.lua [NEW] versioning\worldmetadata_8_15.lua DIFFS ----- universe_server.config 31a32,33 > "defaultWorldCoordinate" : "", > 38,50c40,48 < } < // , < // "requiredSystemWorlds" : [ < // { < // "terrestrialBiome" : "forest" < // }, < // { < // "terrestrialBiome" : "desert" < // }, < // { < // "floatingDungeon" : "ancientgateway" < // } < // ] --- > }, > "requiredSystemWorlds" : [ > { > "terrestrialBiome" : "forest" > }, > { > "terrestrialBiome" : "desert" > } > ] behaviors\monsters\boss\spiderboss\hatch.behavior 3d2 < "description": "", 5d3 < "/scripts/actions/movement.lua", 7d4 < "/scripts/actions/position.lua", 8a6,7 > "/scripts/actions/movement.lua", > "/scripts/actions/position.lua", 13,16c12 < "spawnOffset": [ < 0, < 0 < ] --- > "hatchNumber": 5 19c15 < "title": "parallel", --- > "title": "cleanup", 21,25c17,18 < "name": "parallel", < "parameters": { < "fail": -1, < "success": -1 < }, --- > "name": "cleanup", > "parameters": {}, 28c21 < "title": "setVelocity", --- > "title": "setAnimationState", 30c23 < "name": "setVelocity", --- > "name": "setAnimationState", 32,35c25,26 < "velocity": [ < 0, < 0 < ] --- > "state": "hatch", > "type": "sound" 39,59c30,53 < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "legs", < "state": "hurt" < } < }, < { < "title": "offsetPosition", < "type": "action", < "name": "offsetPosition", < "parameters": { < "position": "spawn", < "offset": "" --- > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": "", > "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" > } 61,80c55,65 < "output": { < "position": "hatch" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "slam" < } < }, < { < "title": "random", < "type": "action", < "name": "random", < "parameters": { < "max": 30, < "min": 5 --- > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 15, > "min": -15 > }, > "output": { > "number": "hatchY" > } 82,106c67,73 < "output": { < "number": "spawnTime" < } < }, < { < "title": "spawnProjectile", < "type": "action", < "name": "spawnProjectile", < "parameters": { < "position": "hatch", < "offset": [ < 0, < 0 < ], < "projectileType": "ixolingspawn", < "angle": 0, < "aimVector": [ < 0, < 0 < ], < "sourceEntity": "self", < "trackSource": false, < "projectileConfig": { < "timeToLive": "spawnTime", < "animationCycle": "spawnTime" --- > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 108,132c75,189 < "scalePower": false, < "power": 0 < } < }, < { < "title": "playSound", < "type": "action", < "name": "playSound", < "parameters": { < "sound": "hatch" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": {} < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "legs", < "state": "idle" --- > "children": [ > { > "title": "setVelocity", > "type": "action", > "name": "setVelocity", > "parameters": { > "velocity": [ > 0, > 0 > ] > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "legs", > "state": "hurt" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": [ > "hatchX", > "hatchY" > ], > "position": "spawn" > }, > "output": { > "position": "hatch" > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "body", > "state": "slam" > } > }, > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 30, > "min": 10 > }, > "output": { > "number": "spawnTime" > } > }, > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "position": "hatch", > "offset": [ > 0, > 0 > ], > "projectileType": "ixolingspawn", > "angle": 0, > "aimVector": [ > 0, > 0 > ], > "sourceEntity": "self", > "trackSource": false, > "projectileConfig": { > "timeToLive": "spawnTime", > "animationCycle": "spawnTime" > }, > "scalePower": false, > "power": 0 > } > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "hatch" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": {} > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "legs", > "state": "idle" > } > } > ] > } > ] 134,135c191,201 < } < ] --- > ] > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "off", > "type": "sound" > } behaviors\monsters\boss\spiderboss\main.behavior 558a559,566 > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "death" > } > }, > { behaviors\monsters\boss\spiderboss\stage1.behavior 3,5c3,4 < "scripts": [ < "/scripts/actions/math.lua" < ], --- > "description": "", > "scripts": [], 18a18 > "title": "Slam", 21d20 < "title": "Slam", 48a48 > "title": "Ixodoom Return", 51d50 < "title": "Ixodoom Return", 55,57c54,56 < "title": "repeater", < "type": "decorator", < "name": "repeater", --- > "title": "Hatch", > "type": "module", > "name": "spiderboss-hatch", 59,103c58 < "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", < "name": "spiderboss-hatch", < "title": "Hatch", < "parameters": { < "spawnOffset": [ < "hatchX", < "hatchY" < ] < } < } < ] --- > "hatchNumber": 5 110a66 > "title": "Acid Spray", 113d68 < "title": "Acid Spray", behaviors\monsters\boss\spiderboss\stage2.behavior 3,5c3,4 < "scripts": [ < "/scripts/actions/math.lua" < ], --- > "description": "", > "scripts": [], 18a18 > "title": "Slam", 21d20 < "title": "Slam", 24a24 > "title": "Spiderboss Sweep", 27d26 < "title": "Spiderboss Sweep", 54a54 > "title": "Ixodoom Return", 57d56 < "title": "Ixodoom Return", 61,63c60,62 < "title": "repeater", < "type": "decorator", < "name": "repeater", --- > "title": "Hatch", > "type": "module", > "name": "spiderboss-hatch", 65,109c64 < "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", < "name": "spiderboss-hatch", < "title": "Hatch", < "parameters": { < "spawnOffset": [ < "hatchX", < "hatchY" < ] < } < } < ] --- > "hatchNumber": 8 behaviors\monsters\boss\spiderboss\stage3.behavior 4,6c4 < "scripts": [ < "/scripts/actions/math.lua" < ], --- > "scripts": [], 19a18 > "title": "Return to spawn", 22d20 < "title": "Return to spawn", 26,28c24,26 < "title": "repeater", < "type": "decorator", < "name": "repeater", --- > "title": "Hatch", > "type": "module", > "name": "spiderboss-hatch", 30,73c28,31 < "maxLoops": 10, < "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", < "name": "spiderboss-hatch", < "title": "Hatch", < "parameters": { < "spawnOffset": [ < "hatchX", < "hatchY" < ] < } < } --- > "hatchNumber": 10, > "spawnOffset": [ > "hatchX", > "hatchY" 77a36 > "title": "Slam", 80d38 < "title": "Slam", 83a42 > "title": "Acid Spray", 86d44 < "title": "Acid Spray", 89a48 > "title": "Spiderboss Sweep", 92d50 < "title": "Spiderboss Sweep", behaviors\monsters\boss\spiderboss\sweep.behavior 15c15 < "title": "sequence", --- > "title": "cleanup", 17c17 < "name": "sequence", --- > "name": "cleanup", 21c21 < "title": "selector", --- > "title": "sequence", 23c23 < "name": "selector", --- > "name": "sequence", 26a27,149 > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "reverseDirection", > "type": "action", > "name": "reverseDirection", > "parameters": { > "direction": "sweepSide" > }, > "output": { > "direction": "sweepSide" > } > }, > { > "title": "setDirection", > "type": "action", > "name": "setDirection", > "parameters": {}, > "output": { > "direction": "sweepSide" > } > } > ] > }, > { > "title": "multiply", > "type": "action", > "name": "multiply", > "parameters": { > "number": "sweepSide", > "factor": 20 > }, > "output": { > "result": "sweepX" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "position": "spawn", > "x": "sweepX", > "y": 0 > }, > "output": { > "position": "attack" > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "legs", > "state": "walk" > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "body", > "state": "idle" > } > }, > { > "title": "distance", > "type": "action", > "name": "distance", > "parameters": { > "to": "attack" > }, > "output": { > "vector": "toAttack" > } > }, > { > "title": "rotate", > "type": "action", > "name": "rotate", > "parameters": { > "vector": "toAttack", > "immediate": false > } > }, > { > "title": "flyToPosition", > "type": "action", > "name": "flyToPosition", > "parameters": { > "position": "attack" > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "legs", > "state": "rotate" > } > }, > { > "title": "setVelocity", > "type": "action", > "name": "setVelocity", > "parameters": {} > }, > { > "title": "rotate", > "type": "action", > "name": "rotate", > "parameters": { > "angle": 4.71, > "immediate": false > } > }, > { 34c157 < "direction": "sweepSide" --- > "direction": "sweepMove" 38c161 < "title": "setDirection", --- > "title": "multiply", 40,41c163,167 < "name": "setDirection", < "parameters": {}, --- > "name": "multiply", > "parameters": { > "number": "sweepMove", > "factor": 12 > }, 43c169 < "direction": "sweepSide" --- > "result": "lineTest" 45,171c171 < } < ] < }, < { < "title": "multiply", < "type": "action", < "name": "multiply", < "parameters": { < "number": "sweepSide", < "factor": 20 < }, < "output": { < "result": "sweepX" < } < }, < { < "title": "offsetPosition", < "type": "action", < "name": "offsetPosition", < "parameters": { < "position": "spawn", < "x": "sweepX", < "y": 0 < }, < "output": { < "position": "attack" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "legs", < "state": "walk" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "body", < "state": "idle" < } < }, < { < "title": "distance", < "type": "action", < "name": "distance", < "parameters": { < "to": "attack" < }, < "output": { < "vector": "toAttack" < } < }, < { < "title": "rotate", < "type": "action", < "name": "rotate", < "parameters": { < "vector": "toAttack", < "immediate": false < } < }, < { < "title": "flyToPosition", < "type": "action", < "name": "flyToPosition", < "parameters": { < "position": "attack" < } < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "type": "legs", < "state": "rotate" < } < }, < { < "title": "setVelocity", < "type": "action", < "name": "setVelocity", < "parameters": {} < }, < { < "title": "rotate", < "type": "action", < "name": "rotate", < "parameters": { < "angle": 4.71, < "immediate": false < } < }, < { < "title": "reverseDirection", < "type": "action", < "name": "reverseDirection", < "parameters": { < "direction": "sweepSide" < }, < "output": { < "direction": "sweepMove" < } < }, < { < "title": "multiply", < "type": "action", < "name": "multiply", < "parameters": { < "number": "sweepMove", < "factor": 12 < }, < "output": { < "result": "lineTest" < } < }, < { < "title": "selector", < "type": "composite", < "name": "selector", < "parameters": {}, < "children": [ --- > }, 173c173,182 < "title": "sequence", --- > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "sweep", > "type": "sound" > } > }, > { > "title": "selector", 175c184 < "name": "sequence", --- > "name": "selector", 179,185c188,211 < "title": "greaterThan", < "type": "action", < "name": "greaterThan", < "parameters": { < "first": "sweepMove", < "second": 0 < } --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": "sweepMove", > "second": 0 > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "type": "legs", > "state": "straferight" > } > } > ] 193c219 < "state": "straferight" --- > "state": "strafeleft" 199c225,302 < "title": "setAnimationState", --- > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "success": 2 > }, > "children": [ > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": {}, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "sweep" > } > }, > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "offset": [ > 0, > -9 > ], > "projectileType": "acidsweep", > "aimVector": [ > 0, > -1 > ] > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": [ > 0.125, > 0.25 > ] > } > } > ] > } > }, > { > "title": "lineTileCollision", > "type": "action", > "name": "lineTileCollision", > "parameters": { > "y": 0, > "x": "lineTest" > } > }, > { > "title": "controlFly", > "type": "action", > "name": "controlFly", > "parameters": { > "y": 0, > "x": "sweepMove" > } > } > ] > }, > { > "title": "controlFly", 201c304 < "name": "setAnimationState", --- > "name": "controlFly", 203,204c306,309 < "type": "legs", < "state": "strafeleft" --- > "vector": [ > 0, > 0 > ] 206,216c311 < } < ] < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "success": 2 < }, < "children": [ --- > }, 218,262c313,319 < "title": "repeater", < "type": "decorator", < "name": "repeater", < "parameters": {}, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "playSound", < "type": "action", < "name": "playSound", < "parameters": { < "sound": "sweep" < } < }, < { < "title": "spawnProjectile", < "type": "action", < "name": "spawnProjectile", < "parameters": { < "offset": [ < 0, < -9 < ], < "projectileType": "acidsweep", < "aimVector": [ < 0, < -1 < ] < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": [ < 0.125, < 0.25 < ] < } < } --- > "title": "setVelocity", > "type": "action", > "name": "setVelocity", > "parameters": { > "velocity": [ > 0, > 0 267c324 < "title": "lineTileCollision", --- > "title": "setAnimationState", 269c326 < "name": "lineTileCollision", --- > "name": "setAnimationState", 271,272c328,329 < "y": 0, < "x": "lineTest" --- > "type": "legs", > "state": "idle" 276c333 < "title": "controlFly", --- > "title": "timer", 278c335 < "name": "controlFly", --- > "name": "timer", 280,281c337 < "y": 0, < "x": "sweepMove" --- > "time": 0.5 287,308d342 < "title": "controlFly", < "type": "action", < "name": "controlFly", < "parameters": { < "vector": [ < 0, < 0 < ] < } < }, < { < "title": "setVelocity", < "type": "action", < "name": "setVelocity", < "parameters": { < "velocity": [ < 0, < 0 < ] < } < }, < { 313,322c347,348 < "type": "legs", < "state": "idle" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.5 --- > "state": "off", > "type": "sound" behaviors\npc\tracking.behavior 246a247,255 > "title": "damageTeam", > "type": "action", > "name": "damageTeam", > "parameters": {}, > "output": { > "damageTeam": "damageTeam" > } > }, > { 312,313c321 < "monster", < "npc" --- > "monster" 314a323,366 > } > }, > { > "title": "isValidTarget", > "type": "action", > "name": "isValidTarget", > "parameters": { > "entity": "filterItem" > } > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "isNpc", > "type": "action", > "name": "isNpc", > "parameters": { > "entity": "filterItem" > } > }, > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "isNpc", > "type": "action", > "name": "isNpc", > "parameters": { > "entity": "filterItem", > "damageTeam": "damageTeam" > } behaviors\npc\combat\melee.behavior 380a381,438 > } > ] > }, > { > "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": "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" > } > } > ] > } > ] 396a455,462 > }, > { > "title": "unsetFlag", > "type": "action", > "name": "unsetFlag", > "parameters": { > "name": "meleeattacking" > } behaviors\tenant\returnhome.behavior 5a6 > "/scripts/actions/math.lua", 30a32,57 > }, > "output": { > "position": "homePosition" > } > }, > { > "title": "random", > "type": "action", > "name": "random", > "parameters": { > "max": 2, > "min": -2 > }, > "output": { > "number": "offsetX" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": null, > "position": "homePosition", > "x": "offsetX", > "y": 0 biomes\surface\savannah.biome 294c294 < "grassModDensity" : 0.2, --- > "grassModDensity" : 0.6, 297c297 < "ceilingGrassModDensity" : 0.3, --- > "ceilingGrassModDensity" : 0.5, 342a343,354 > "mode" : "ceiling", > "priority" : 2.0, > "variants" : 1, > "distribution" : "/biomes/distributions.config:denseMedium", > > "type" : "tree", > "treeFoliageHueShiftMax" : 30, > "treeStemHueShiftMax" : 10, > "treeStemList" : [ "desertvine"], > "treeFoliageList" : [ "leafed" ] > }, > { 363a376,390 > }, > { > "mode" : "floor", > "priority" : 2.0, > "variants" : 1, > "distribution" : "/biomes/distributions.config:scatteredLarge", > > "type" : "bush", > "bushes" : [ > { > "name" : "savannahbush", > "baseHueShiftMax" : 0, > "modHueShiftMax" : 0 > } > ] biomes\surface_detached\bones.biome 120a121,123 > "ceilingGrassMod" : [ "roots" ], > "ceilingGrassModDensity" : 0.3, > 143a147,158 > }, > { > "mode" : "ceiling", > "priority" : 2.0, > "variants" : 1, > "distribution" : "/biomes/distributions.config:denseMedium", > > "type" : "tree", > "treeFoliageHueShiftMax" : 0, > "treeStemHueShiftMax" : 0, > "treeStemList" : [ "bone"], > "treeFoliageList" : [ "" ] dungeons\microdungeons\biomes\desert\arch1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\desert\arch4.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\desert\desertcabin5.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\desert\desertmicrodungeons.dungeon 8c8 < "anchor" : [ "arch1", "arch2", "arch3", "column1", "desert1", "desert2", "desertcabin1", "desertcabin2", "desertcabin3", "desertcabin4", "desertcabin5", "deserthouse1", "desertpillar1", "desertpillar2", "desertpyramid1", "desertwell1", "desertwell2", "desertwell3", "oldhouse1", "oldhouse2", "oldhouse3", "spikepit1", "spikepit2", "spikepit3" ], --- > "anchor" : [ "arch1", "arch2", "arch3", "arch4", "column1", "desert1", "desert2", "desertcabin1", "desertcabin2", "desertcabin3", "desertcabin4", "desertcabin5", "deserthouse1", "desertpillar1", "desertpillar2", "desertpyramid1", "desertwell1", "desertwell2", "desertwell3", "oldhouse1", "oldhouse2", "oldhouse3", "spikepit1", "spikepit2", "spikepit3" ], 36a37,43 > }, > { > "name" : "arch4", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "arch4.json" ] dungeons\microdungeons\biomes\desert\desertpillar2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\desert\oldhouse2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\forest\forestwell1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\forest\forestwell2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\oasis\oasisbridge4.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\oasis\oasisbuilding5.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\savannah\doubledeckerhut.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\savannah\groundhut6.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\savannah\huntinghut3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\savannah\savannahmicrodungeons.dungeon 9,12c9 < "anchor" : [ "arena", "bunkerhut1", "bunkerhut2", "campsite1", "campsite2", "campsite3", "crateplatform", "damagedhut1", < "groundhut1", "groundhut2", "groundhut3", "groundhut4", "groundhut5", "groundhut6", "groundhutfullofpots", "houseontunnel", < "largetallhut", "marketstall", "overhang1", "smalltunnel1", "smalltunnel2", "spikepit1", "tallhutwithlargebunker", "talltreasurehut", < "tinybridge1", "tunnelmound1", "twotallhuts", "walltunnel1", "walltunnel2", "warriorrelaxing", "huntinghut1", "huntinghut2", "huntinghut3" ], --- > "anchor" : [ "arena", "bunkerhut1", "bunkerhut2", "campsite1", "campsite2", "campsite3", "crateplatform", "damagedhut1", "doubledeckerhut", "groundhut1", "groundhut2", "groundhut3", "groundhut4", "groundhut5", "groundhut6", "groundhutfullofpots", "houseontunnel", "largetallhut", "marketstall", "overhang1", "smalltunnel1", "smalltunnel2", "spikepit1", "tallhutwithlargebunker", "talltreasurehut", "tinybridge1", "tunnelmound1", "twotallhuts", "walltunnel1", "walltunnel2", "warriorrelaxing", "huntinghut1", "huntinghut2", "huntinghut3" ], dungeons\microdungeons\biomes\tarpits\tarcave1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\tarpits\tarcave2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\tarpits\tartunnel1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\tarpits\tartunnel2.json [TMX file differences are left out for huge size.] items\throwables\flowerygrassseeds.thrownitem 7,8c7,8 < "shortdescription" : "Flowery grass seeds", < "description" : "Get some flowery grass growing!", --- > "shortdescription" : "Flowery Grass Seeds", > "description" : "Toss these on some damp tilled soil to grow flowery grass!", items\throwables\grassseeds.thrownitem 7,8c7,8 < "shortdescription" : "Grass seeds", < "description" : "Get some grass growing!", --- > "shortdescription" : "Grass Seeds", > "description" : "Toss these on some damp tilled soil to grow grass!", monsters\bmonster.lua 24a25,28 > > if entity.hasSound("deathPuff") then > entity.setDeathSound("deathPuff") > end 124,125d127 < < world.debugLine(mcontroller.position(), vec2.add(mcontroller.position(), vec2.mul(vec2.rotate({1,0}, entity.currentRotationAngle("all") - entity.configParameter("rotationOffset", 0)), 10)), "green") monsters\boss\crystalboss\crystalboss.monstertype 121a122,127 > }, > "damagefreezeimmunity" : { > "baseValue" : 1.0 > }, > "damageflashimmunity" : { > "baseValue" : 1.0 monsters\boss\crystalboss\skills\crystaldoublebeamattack.monsterskill 12c12 < "damagePerSecond" : 2000 --- > "damagePerSecond" : 1000 monsters\boss\crystalboss\skills\crystalsinebeamattack.monsterskill 12c12 < "damagePerSecond" : 2000 --- > "damagePerSecond" : 1000 monsters\boss\crystalboss\skills\crystalsinglebeamattack.monsterskill 12c12 < "damagePerSecond" : 2000 --- > "damagePerSecond" : 1000 monsters\boss\spiderboss\spiderboss.animation 113a114,132 > "sound" : { > "priority" : 0, > "default" : "off", > "states" : { > "off" : { > }, > "sweep" : { > "properties" : { > "immediateSound" : "/sfx/npc/unique/spiderboss_idle1.wav" > } > }, > "hatch" : { > "properties" : { > "immediateSound" : "/sfx/npc/unique/spiderboss_idle2.wav" > } > } > } > }, > 176a196,197 > "sound" : {}, > 416,423c437,445 < "spiderslam" : [ "/sfx/npc/quadruped/arrowhead_attack2.wav" ], < "spit" : [ "/sfx/npc/smallbiped/sandworm_small_death.wav" ], < "sweep" : [ "/sfx/objects/florandrum1.wav", "/sfx/objects/florandrum2.wav", "/sfx/objects/florandrum3.wav", "/sfx/objects/florandrum4.wav" ], < "hatch" : [ "/sfx/npc/smallbiped/bugthinghead_small_attack1.wav", "/sfx/npc/smallbiped/bugthinghead_small_attack2.wav" ], < "hurt" : [ "/sfx/npc/quadruped/bugthinghead_death.wav" ], < "generateshell" : [ "/sfx/npc/quadruped/sandworm_idle1.wav" ], < "cocooncrack" : [ "/sfx/gun/boneshotgun.wav" ], < "cocoonburst" : [ "/sfx/objects/capsule_break3.wav"] --- > "spiderslam" : [ "/sfx/npc/unique/spiderboss_attack1.wav", "/sfx/npc/unique/spiderboss_attack2.wav" ], > "spit" : [ "/sfx/npc/unique/spiderboss_attack1.wav", "/sfx/npc/unique/spiderboss_attack2.wav" ], > "sweep" : [ "/sfx/projectiles/spit1.wav", "/sfx/projectiles/spit2.wav" ], > "hatch" : [ "/sfx/projectiles/bonerain_full.wav" ], > "hurt" : [ "/sfx/npc/unique/spiderboss_shellbreak1.wav", "/sfx/npc/unique/spiderboss_shellbreak2.wav" ], > "generateshell" : [ "/sfx/npc/unique/spiderboss_shellrestore.wav" ], > "cocooncrack" : [ "/sfx/npc/unique/spiderboss_cocooncrack.wav" ], > "cocoonburst" : [ "/sfx/npc/unique/spiderboss_cocoonburst.wav" ], > "death" : [ "/sfx/npc/unique/spiderboss_death.wav" ] monsters\crawling\crawlingmonster.lua 0a1,2 > require "/scripts/util.lua" > 2d3 < self.debug = false 112a114,115 > > self.debug = false 617,618c620,621 < -- world.debugLine(blockLine[1], blockLine[2], self.isBlocked and "red" or "blue") < -- if topLine then world.debugLine(topLine[1], topLine[2], self.isBlocked and "red" or "blue") end --- > -- util.debugLine(blockLine[1], blockLine[2], self.isBlocked and "red" or "blue") > -- if topLine then util.debugLine(topLine[1], topLine[2], self.isBlocked and "red" or "blue") end 632,633c635,636 < -- world.debugLine(fallLine[1], fallLine[2], self.willFall and "red" or "blue") < -- world.debugLine({fallLine[1][1], fallLine[1][2] - 1}, {fallLine[2][1], fallLine[2][2] - 1}, self.willFall and "red" or "blue") --- > -- util.debugLine(fallLine[1], fallLine[2], self.willFall and "red" or "blue") > -- util.debugLine({fallLine[1][1], fallLine[1][2] - 1}, {fallLine[2][1], fallLine[2][2] - 1}, self.willFall and "red" or "blue") 853,862d855 < -- draw lines to display the specified rect {x1, y1, x2, y2} in the specified color, optionally offset by basePos < function drawDebugRect(rect, color, basePos) < if basePos then rect = translate(rect, basePos) end < world.debugLine({rect[1], rect[2]}, {rect[1], rect[4]}, color) < world.debugLine({rect[1], rect[2]}, {rect[3], rect[2]}, color) < world.debugLine({rect[3], rect[4]}, {rect[1], rect[4]}, color) < world.debugLine({rect[3], rect[4]}, {rect[3], rect[2]}, color) < end < < -------------------------------------------------------------------------------- 867c860 < drawDebugRect(option.startRect, i == 1 and "#3333FF" or option.valid and "#AAFFBB" or "#FF3333") --- > util.debugRect(option.startRect, i == 1 and "#3333FF" or option.valid and "#AAFFBB" or "#FF3333") monsters\flying\circlestate.lua 0a1,2 > require "/scripts/util.lua" > 84c86 < world.debugLine(mcontroller.position(), destination, "blue") --- > util.debugLine(mcontroller.position(), destination, "blue") monsters\flying\flyingmonster.lua 0a1,2 > require "/scripts/util.lua" > 159c161 < world.debugLine(mcontroller.position(), sensor.position, "green") --- > util.debugLine(mcontroller.position(), sensor.position, "green") 162c164 < world.debugLine(mcontroller.position(), sensor.position, "red") --- > util.debugLine(mcontroller.position(), sensor.position, "red") monsters\flying\glidestate.lua 0a1,2 > require "/scripts/util.lua" > 42c44 < -- world.debugLine(mcontroller.position(), entity.toAbsolutePosition(vector), "cornflowerblue") --- > -- util.debugLine(mcontroller.position(), entity.toAbsolutePosition(vector), "cornflowerblue") monsters\ground\groundmonster.lua 0a1,2 > require "/scripts/util.lua" > 129c131 < self.debug = true --- > self.debug = false 261,263c263 < if self.debug then < world.debugText(inState, mcontroller.position(), "blue") < end --- > util.debugText(inState, mcontroller.position(), "blue") 686,695d685 < -- draw lines to display the specified rect {x1, y1, x2, y2} in the specified color, optionally offset by basePos < function debugRect(rect, color, basePos) < if basePos then rect = translate(rect, basePos) end < world.debugLine({rect[1], rect[2]}, {rect[1], rect[4]}, color) < world.debugLine({rect[1], rect[2]}, {rect[3], rect[2]}, color) < world.debugLine({rect[3], rect[4]}, {rect[1], rect[4]}, color) < world.debugLine({rect[3], rect[4]}, {rect[3], rect[2]}, color) < end < < -------------------------------------------------------------------------------- 700c690 < debugRect(option.startRect, i == 1 and "#3333FF" or option.valid and "#AAFFBB" or "#FF3333") --- > util.debugRect(option.startRect, i == 1 and "#3333FF" or option.valid and "#AAFFBB" or "#FF3333") monsters\pets\groundpet.lua 0a1 > require "/scripts/util.lua" 55c56 < self.debug = true --- > self.debug = false 88,96c89,92 < if self.debug then < script.setUpdateDelta(1) < < if self.actionState.stateDesc() ~= "" then < world.debugText(self.actionState.stateDesc(), mcontroller.position(), "blue") < else < world.debugText(self.state.stateDesc(), mcontroller.position(), "blue") < end < drawDebugResources() --- > if self.actionState.stateDesc() ~= "" then > util.debugText(self.actionState.stateDesc(), mcontroller.position(), "blue") > else > util.debugText(self.state.stateDesc(), mcontroller.position(), "blue") 97a94 > drawDebugResources() 230a228,229 > if not self.debug then return end > 314,323d312 < end < < -------------------------------------------------------------------------------- < -- draw lines to display the specified rect {x1, y1, x2, y2} in the specified color, optionally offset by basePos < function debugRect(rect, color, basePos) < if basePos then rect = translate(rect, basePos) end < world.debugLine({rect[1], rect[2]}, {rect[1], rect[4]}, color) < world.debugLine({rect[1], rect[2]}, {rect[3], rect[2]}, color) < world.debugLine({rect[3], rect[4]}, {rect[1], rect[4]}, color) < world.debugLine({rect[3], rect[4]}, {rect[3], rect[2]}, color) monsters\skills\ranged\acidicspitattack.monsterskill 14,15d13 < "windupTime" : 0.05, < "winddownTime" : 0.2, 24c22 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/spit1.wav", "/sfx/projectiles/spit2.wav" ] monsters\skills\ranged\acidsprayattack.monsterskill 25c25 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/goo_spit1.wav", "/sfx/projectiles/goo_spit2.wav" ] monsters\skills\ranged\barbsprayattack.monsterskill 11c11 < "speed" : 23, --- > "speed" : 45, 14c14,17 < "fireInterval" : 0.1 --- > "fireInterval" : 0.1, > "castTime" : 0.4, > "castEffect" : "castphysical", > "castAnimation" : "charge" 20c23 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/thorn.wav" ] monsters\skills\ranged\beetleswarmattack.monsterskill 15c15,18 < "winddownTime" : 0.5 --- > "windupTime" : 0.05, > "castTime" : 0.4, > "castEffect" : "castpoison", > "castAnimation" : "charge" 21c24 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/beetle1.wav", "/sfx/projectiles/beetle2.wav", "/sfx/projectiles/beetle3.wav", "/sfx/projectiles/beetle4.wav" ] monsters\skills\ranged\bloodvomitattack.monsterskill 24c24 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/bloodvomit1.wav", "/sfx/projectiles/bloodvomit2.wav", "/sfx/projectiles/bloodvomit3.wav", "/sfx/projectiles/bloodvomit4.wav", "/sfx/projectiles/bloodvomit5.wav", "/sfx/projectiles/bloodvomit6.wav", "/sfx/projectiles/bloodvomit7.wav" ] monsters\skills\ranged\blueflameattack.monsterskill 24c24 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/gun/fireblast.wav" ] monsters\skills\ranged\bonerainattack.monsterskill 25c25 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/bonerain_throw1.wav", "/sfx/projectiles/bonerain_throw2.wav" ] monsters\skills\ranged\bubbleblastattack.monsterskill 24c24 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/bubble_blow1.wav", "/sfx/projectiles/bubble_blow2.wav", "/sfx/projectiles/bubble_blow3.wav" ] monsters\skills\ranged\burninghaloattack.monsterskill 26c26 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/fireball_spit.wav" ] monsters\skills\ranged\cellblastattack.monsterskill 22c22 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/gun/lightningcoil1.wav" ] monsters\skills\ranged\darkgasattack.monsterskill 14c14,17 < "fireInterval" : 0.15 --- > "fireInterval" : 0.15, > "castTime" : 0.4, > "castEffect" : "castpoison", > "castAnimation" : "charge" monsters\skills\ranged\darkplasmaattack.monsterskill 15,16c15,17 < "windupTime" : 0.05, < "winddownTime" : 0.2 --- > "castTime" : 0.4, > "castEffect" : "castphysical", > "castAnimation" : "charge" monsters\skills\ranged\dragonbreathattack.monsterskill 14c14,17 < "fireInterval" : 0.066 --- > "fireInterval" : 0.066, > "castTime" : 0.4, > "castEffect" : "castfire", > "castAnimation" : "charge" monsters\skills\ranged\flameburstattack.monsterskill 15c15,18 < "fireInterval" : 0.066 --- > "fireInterval" : 0.066, > "castTime" : 0.4, > "castEffect" : "castfire", > "castAnimation" : "charge" monsters\skills\ranged\flyswarmattack.monsterskill 15c15,18 < "fireInterval" : 0.2 --- > "fireInterval" : 0.2, > "castTime" : 0.4, > "castEffect" : "castpoison", > "castAnimation" : "charge" 21c24 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/bugswarm1.wav", "/sfx/projectiles/bugswarm2.wav", "/sfx/projectiles/bugswarm3.wav", "/sfx/projectiles/bugswarm4.wav" ] monsters\skills\ranged\iceshotattack.monsterskill 14c14,17 < "fireInterval" : 0.3 --- > "fireInterval" : 0.3, > "castTime" : 0.4, > "castEffect" : "castice", > "castAnimation" : "charge" monsters\skills\ranged\inksprayattack.monsterskill 15c15,18 < "fireInterval" : 0.066 --- > "fireInterval" : 0.066, > "castTime" : 0.4, > "castEffect" : "castpoison", > "castAnimation" : "charge" 21c24 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/bloodvomit1.wav", "/sfx/projectiles/bloodvomit2.wav", "/sfx/projectiles/bloodvomit3.wav", "/sfx/projectiles/bloodvomit4.wav", "/sfx/projectiles/bloodvomit5.wav", "/sfx/projectiles/bloodvomit6.wav", "/sfx/projectiles/bloodvomit7.wav" ] monsters\skills\ranged\plasmaburstattack.monsterskill 8,9d7 < "cooldownTime" : 0, < 17,18c15,17 < "windupTime" : 1, < "winddownTime" : 1 --- > "castTime" : 0.4, > "castEffect" : "castice", > "castAnimation" : "charge" 24c23 < "rangedAttack" : [ "/sfx/gun/plasma_pistol1.wav" ] --- > "rangedAttack" : [ "/sfx/projectiles/plasma1.wav", "/sfx/projectiles/plasma2.wav" ] monsters\skills\ranged\rangedchompattack.monsterskill 13c13 < "speed" : 20, --- > "speed" : 30, 17c17,20 < "fireAnimationTiming" : 0.3 --- > "fireAnimationTiming" : 0.3, > "castTime" : 0.4, > "castEffect" : "castphysical", > "castAnimation" : "charge" 23c26 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/npc/monsters/monster_bite2.wav" ] monsters\skills\ranged\shockballattack.monsterskill 17c17,20 < "winddownTime" : 0.2 --- > "winddownTime" : 0.2, > "castTime" : 0.4, > "castEffect" : "castelectric", > "castAnimation" : "charge" monsters\skills\ranged\sonicwaveattack.monsterskill 14,15c14,18 < "windupTime" : 0.05, < "winddownTime" : 0.2 --- > "windupTime" : 0.1, > "winddownTime" : 0.2, > "castTime" : 0.4, > "castEffect" : "castpoison", > "castAnimation" : "charge" monsters\skills\ranged\spicecloudattack.monsterskill 14c14,17 < "fireInterval" : 0.2 --- > "fireInterval" : 0.2, > "castTime" : 0.4, > "castEffect" : "castfire", > "castAnimation" : "charge" monsters\skills\ranged\spinslashattack.monsterskill 17c17,20 < "fireAnimationTiming" : 0.2 --- > "fireAnimationTiming" : 0.2, > "castTime" : 0.4, > "castEffect" : "castphysical", > "castAnimation" : "charge" 23c26 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/projectiles/spinning_throw.wav" ] monsters\skills\ranged\twistingpulseattack.monsterskill 14c14,17 < "fireInterval" : 0.15 --- > "fireInterval" : 0.15, > "castTime" : 0.4, > "castEffect" : "castphysical", > "castAnimation" : "charge" monsters\unique\ixoling\ixoling.animation 143,144c143,144 < "hatch" : [ "/sfx/objects/fleshdoor_open.wav", "/sfx/objects/fleshdoor_close.wav" ], < "attack" : [ "/sfx/npc/smallbiped/arrowhead_small_attack1.wav", "/sfx/npc/smallbiped/arrowhead_small_attack2.wav" ] --- > "hatch" : [ "/sfx/npc/unique/ixoling_hatch1.wav", "/sfx/npc/unique/ixoling_hatch2.wav" ], > "attack" : [ "/sfx/npc/smallbiped/bugthinghead_small_attack1.wav", "/sfx/npc/smallbiped/bugthinghead_small_attack2.wav" ] monsters\unique\ixoling\ixoling.monstertype 56c56 < "targetMaterialKind" : "robotic" --- > "targetMaterialKind" : "organic" monsters\unique\po\megapo.monstertype 10c10 < "dropPools" : [ "noMeatMonsterTreasure" ], --- > "dropPools" : [ ], monsters\unique\po\micropo.monstertype 10c10 < "dropPools" : [ "noMeatMonsterTreasure" ], --- > "dropPools" : [ "weaklingMonsterTreasure" ], monsters\unique\po\po.monstertype 10c10 < "dropPools" : [ "noMeatMonsterTreasure" ], --- > "dropPools" : [ ], monsters\unique\swarpion\swarpion.monstertype 10c10 < "dropPools" : [ "noMeatMonsterTreasure" ], --- > "dropPools" : [ "weaklingMonsterTreasure" ], npcs\bmain.lua 37c37 < self.debug = true --- > self.debug = false 60a61 > self.setFacingDirection = false 219c220 < self.facingDirection = true --- > self.setFacingDirection = true 354a356,365 > > -- output damageTeam > function damageTeam(args, output) > args = parseArgs(args, { > }) > > local team = entity.damageTeam() > BData:setNumber(output.damageTeam, team.team) > return true > end \ No newline at end of file npcs\friendlypirateguard.npctype 3c3 < "baseType" : "villageguard", --- > "baseType" : "guard", 11a12,16 > "attackerLimit" : 8, > "attackerLimitCooldown" : 3, > > "idleTimeRange" : [1, 2], > npcs\dungeon\apexresearchlab\labguard.npctype 47c47 < "baseValue" : 1.0 --- > "baseValue" : 0.5 npcs\dungeon\apexresearchlab\labguardlookout.npctype 47c47 < "baseValue" : 1.0 --- > "baseValue" : 0.5 npcs\dungeon\apexresearchlab\labscientist.npctype 34c34 < "baseValue" : 1.0 --- > "baseValue" : 0.5 objects\colony\colonydeed\colonydeed.lua 134c134,137 < return root.tenantConfig(storage.occupier.name).rent --- > if not storage.occupier.rent then > storage.occupier.rent = root.tenantConfig(storage.occupier.name).rent > end > return storage.occupier.rent 256,259c259,264 < storage.occupier = { < name = occupier.name, < tenants = occupier.tenants < } --- > for _,tenant in ipairs(occupier.tenants) do > if type(tenant.species) == "table" then > tenant.species = tenant.species[math.random(#tenant.species)] > end > end > storage.occupier = occupier 377a383,389 > function getTagCriteria() > if not storage.occupier.tagCriteria then > storage.occupier.tagCriteria = root.tenantConfig(storage.occupier.name).tagCriteria > end > return storage.occupier.tagCriteria > end > 400,401c412 < local tagCriteria = root.tenantConfig(storage.occupier.name).tagCriteria < for tag, requiredAmount in pairs(tagCriteria) do --- > for tag, requiredAmount in pairs(getTagCriteria()) do objects\generic\copperceilinglight\copperceilinglight.object 8d7 < 10a10 > "printable" : false, objects\generic\coppershelf\coppershelf.object 7c7 < --- > "printable" : false, objects\outpost\frogfurnishing\frogfurnishing.object 9c9 < //"hasObjectItem" : false, --- > 84d83 < [ "sandstonebed", "sandstonedoor", "sandstonechest", "sandstonetable", "sandstonetorch" ], objects\outpost\penguinbay\penguinbay.object 10d9 < //"hasObjectItem" : false, objects\themed\retroscifi\retroscifibed\retroscifibed.object 8,9c8,9 < "description" : "-todo-", < "shortdescription" : "Retro Sci-Fi Pod", --- > "description" : "A bed made in a retro-futuristic style.", > "shortdescription" : "Retro-Futuristic-Fi Pod", 13c13 < "apexDescription" : "Ahhh, the best sleep I've ever had was in one of these pods.", --- > "apexDescription" : "Ahhh, the best sleep I've ever had was in one of these.", 19c19 < "novakidDescription": "Sleeping in this bed makes me feel like a science experiment.", --- > "novakidDescription": "Sleepin' in this bed makes me feel like a science experiment.", objects\themed\retroscifi\retroscificabinet\retroscificabinet.object 8,9c8,9 < "description" : "todo.", < "shortdescription" : "Retro Sci-Fi Cabinet", --- > "description" : "A small cabinet made in a retro-futuristic style.", > "shortdescription" : "Retro-Futuristic Cabinet", objects\themed\retroscifi\retroscifichair\retroscifichair.object 8,9c8,9 < "description" : "todo.", < "shortdescription" : "Retro Sci-Fi Chair", --- > "description" : "An egg shaped chair made in a retro-futuristic style.", > "shortdescription" : "Retro-Futuristic Chair", 16c16 < "glitchDescription" : "Confused. How does this chair keep its balance?", --- > "glitchDescription" : "Confused. How does this chair keep it's balance?", 18c18,19 < "hylotlDescription" : "A floating chair, quite novel.", --- > "hylotlDescription" : "A floating chair, how novel.", > "novakidDescription": "This chair looks comfy, like sitting inside an eggshell.", objects\themed\retroscifi\retroscifidresser\retroscifidresser.object 8,9c8,9 < "description" : "todo.", < "shortdescription" : "Retro Sci-Fi Dresser", --- > "description" : "A dresser made in a retro-futuristic style", > "shortdescription" : "Retro-Futuristic Dresser", 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "A timeless classic.", > "avianDescription" : "This style of dresser never feels out of date.", > "floranDescription" : "Any kind of dressssser is useful. I don't care how it looksss.", > "glitchDescription" : "Question. Is this someone's idea of furniture from the future?", > "humanDescription" : "A dresser so unfashionable it's fashionable.", > "hylotlDescription" : "The frailty of trendiness is evident in this dresser's design.", > "novakidDescription": "A world away from the kind of dresser I'm used to.", > objects\themed\retroscifi\retroscifilight\retroscifilight.object 8,9c8,9 < "description" : "-todo-", < "shortdescription" : "Retro Sci-Fi Spotlight", --- > "description" : "A spotlight made in a retro-futuristic style.", > "shortdescription" : "Retro-Futuristic Spotlight", 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "A simple, stylish light.", > "avianDescription" : "A small light that would suit a modern home.", > "floranDescription" : "This sssspotlight is bright.", > "glitchDescription" : "Unimpressed. A simple light with little personality.", > "humanDescription" : "A spotlight fit for any modern dwelling.", > "hylotlDescription" : "This light lacks personality.", > "novakidDescription": "Give me an oil lamp over this thing any day.", > objects\themed\retroscifi\retroscifitable\retroscifitable.object 8,9c8,9 < "description" : "todo.", < "shortdescription" : "Retro Sci-Fi Table", --- > "description" : "A table made in a retro-futuristic style.", > "shortdescription" : "Retro-Futuristic Table", 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "A nice table, really brings a room together.", > "avianDescription" : "I'm afraid this table would tip over if I placed something heavy on it.", > "floranDescription" : "Fancy table still good for feassssting on.", > "glitchDescription" : "Observation. A particularly well balanced table.", > "humanDescription" : "This table looks like it could tip over any minute now.", > "hylotlDescription" : "The beauty in this table is in it's perfect balance.", > "novakidDescription": "I envy this table's ability to stay upright.", > objects\themed\retroscifi\retroscifitv\retroscifitv.object 8,9c8,9 < "description" : "-todo-", < "shortdescription" : "Retro Sci-Fi Television", --- > "description" : "A television set made in a Retro-Futuristic style.", > "shortdescription" : "Retro-Futuristic Television", 12,20c12,20 < /* < "apexDescription" : "-todo-", < "avianDescription" : "-todo-", < "floranDescription" : "-todo-", < "glitchDescription" : "-todo-", < "humanDescription" : "-todo-", < "hylotlDescription" : "-todo-", < "novakidDescription": "-todo-", < */ --- > > "apexDescription" : "This telelvision looks futuristic but I had one as a child.", > "avianDescription" : "I've never really been interested in owning a television, until now.", > "floranDescription" : "Noisssy picture in a fancy box.", > "glitchDescription" : "Interested. I like the look of this technology.", > "humanDescription" : "Finally, a TV that looks as out of date as the medium itself.", > "hylotlDescription" : "Everything about this device is grotesque. A far cry from a good book.", > "novakidDescription": "A slick lookin' talkie box.", > objects\tiered\tier10bed\tier10bed.object 10c10 < "price" : 300, --- > "price" : 250, objects\tiered\tier10chair\tier10chair.object 10c10 < "price" : 180, --- > "price" : 160, objects\tiered\tier10door\tier10door.object 8c8 < "price" : 240, --- > "price" : 160, objects\tiered\tier10light\tier10light.object 7c7 < "price" : 60, --- > "price" : 80, objects\tiered\tier10switch\tier10switch.object 7c7 < "price" : 180, --- > "price" : 90, objects\tiered\tier10table\tier10table.object 10c10 < "price" : 240, --- > "price" : 160, objects\tiered\tier10techchest\tier10techchest.object 10c10 < "price" : 180, --- > "price" : 105, objects\tiered\tier1bed\tier1bed.object 10c10 < "price" : 50, --- > "price" : 75, objects\tiered\tier1chair\tier1chair.object 10c10 < "price" : 30, --- > "price" : 40, objects\tiered\tier1light\tier1light.object 7c7 < "price" : 10, --- > "price" : 20, objects\tiered\tier2bed\tier2bed.object 10c10 < "price" : 75, --- > "price" : 105, objects\tiered\tier2chair\tier2chair.object 10c10 < "price" : 45, --- > "price" : 60, objects\tiered\tier2light\tier2light.object 7c7 < "price" : 15, --- > "price" : 30, objects\tiered\tier2switch\tier2switch.object 6c6 < "price" : 45, --- > "price" : 40, objects\tiered\tier3bed\tier3bed.object 10c10 < "price" : 100, --- > "price" : 135, objects\tiered\tier3chair\tier3chair.object 10c10 < "price" : 60, --- > "price" : 80, objects\tiered\tier3light\tier3light.object 7c7 < "price" : 20, --- > "price" : 40, objects\tiered\tier3switch\tier3switch.object 6c6 < "price" : 60, --- > "price" : 50, objects\tiered\tier4bed\tier4bed.object 10c10 < "price" : 125, --- > "price" : 180, objects\tiered\tier4chair\tier4chair.object 10c10 < "price" : 75, --- > "price" : 110, objects\tiered\tier4door\tier4door.object 8c8 < "price" : 100, --- > "price" : 110, objects\tiered\tier4light\tier4light.object 7c7 < "price" : 25, --- > "price" : 55, objects\tiered\tier4switch\tier4switch.object 6c6 < "price" : 75, --- > "price" : 65, objects\tiered\tier4table\tier4table.object 10c10 < "price" : 100, --- > "price" : 110, objects\tiered\tier5bed\tier5bed.object 10c10 < "price" : 150, --- > "price" : 195, objects\tiered\tier5chair\tier5chair.object 10c10 < "price" : 90, --- > "price" : 120, objects\tiered\tier5light\tier5light.object 7c7 < "price" : 30, --- > "price" : 60, objects\tiered\tier5switch\tier5switch.object 6c6 < "price" : 90, --- > "price" : 70, objects\tiered\tier6bed\tier6bed.object 10c10 < "price" : 300, --- > "price" : 250, objects\tiered\tier6chair\tier6chair.object 10c10 < "price" : 180, --- > "price" : 160, objects\tiered\tier6door\tier6door.object 8c8 < "price" : 240, --- > "price" : 160, objects\tiered\tier6light\tier6light.object 7c7 < "price" : 60, --- > "price" : 80, objects\tiered\tier6switch\tier6switch.object 6c6 < "price" : 180, --- > "price" : 90, objects\tiered\tier6table\tier6table.object 10c10 < "price" : 240, --- > "price" : 160, objects\tiered\tier6techchest\tier6techchest.object 10c10 < "price" : 180, --- > "price" : 105, objects\tiered\tier7bed\tier7bed.object 10c10 < "price" : 300, --- > "price" : 250, objects\tiered\tier7chair\tier7chair.object 10c10 < "price" : 180, --- > "price" : 160, objects\tiered\tier7door\tier7door.object 8c8 < "price" : 240, --- > "price" : 160, objects\tiered\tier7light\tier7light.object 7c7 < "price" : 60, --- > "price" : 80, objects\tiered\tier7switch\tier7switch.object 6c6 < "price" : 180, --- > "price" : 90, objects\tiered\tier7table\tier7table.object 10c10 < "price" : 240, --- > "price" : 160, objects\tiered\tier7techchest\tier7techchest.object 10c10 < "price" : 180, --- > "price" : 105, objects\tiered\tier8bed\tier8bed.object 10c10 < "price" : 150, --- > "price" : 195, objects\tiered\tier8chair\tier8chair.object 10c10 < "price" : 90, --- > "price" : 120, objects\tiered\tier8light\tier8light.object 7c7 < "price" : 30, --- > "price" : 60, objects\tiered\tier8switch\tier8switch.object 6c6 < "price" : 90, --- > "price" : 70, objects\tiered\tier9bed\tier9bed.object 10c10 < "price" : 150, --- > "price" : 195, objects\tiered\tier9chair\tier9chair.object 10c10 < "price" : 90, --- > "price" : 120, objects\tiered\tier9light\tier9light.object 7c7 < "price" : 30, --- > "price" : 60, objects\tiered\tier9switch\tier9switch.object 6c6 < "price" : 90, --- > "price" : 70, projectiles\boss\spiderboss\acidsweep.projectile 11c11 < "file" : "/projectiles/explosions/bulletexplosion/bulletexplosion.config" --- > "file" : "/projectiles/explosions/acidspitexplosion/acidspitexplosion.config" projectiles\explosions\acidexplosion\acidexplosion.projectile 11,12c11,12 < "universalDamage" : true, < "damageKind" : "default" --- > "universalDamage" : false, > "damageKind" : "acid" projectiles\npcs\acidspit\acidspit.projectile 11c11 < "file" : "/projectiles/explosions/bulletexplosion/bulletexplosion.config" --- > "file" : "/projectiles/explosions/acidspitexplosion/acidspitexplosion.config" recipes\furniture\tier1\tier1table.recipe 3c3 < { "item" : "ironbar", "count" : 3 } --- > { "item" : "ironbar", "count" : 2 } recipes\furniture\tier10\tier10table.recipe 3c3 < { "item" : "imperviumcompound", "count" : 3 } --- > { "item" : "imperviumcompound", "count" : 2 } recipes\furniture\tier2\tier2table.recipe 3c3 < { "item" : "steelbar", "count" : 3 } --- > { "item" : "steelbar", "count" : 2 } recipes\furniture\tier3\tier3table.recipe 3c3 < { "item" : "titaniumbar", "count" : 3 } --- > { "item" : "titaniumbar", "count" : 2 } recipes\furniture\tier4\tier4table.recipe 3c3 < { "item" : "durasteelbar", "count" : 3 } --- > { "item" : "durasteelbar", "count" : 2 } recipes\furniture\tier5\tier5table.recipe 3c3 < { "item" : "refinedaegisalt", "count" : 3 } --- > { "item" : "refinedaegisalt", "count" : 2 } recipes\furniture\tier6\tier6table.recipe 3c3 < { "item" : "feroziumcompound", "count" : 3 } --- > { "item" : "feroziumcompound", "count" : 2 } recipes\furniture\tier7\tier7table.recipe 3c3 < { "item" : "ceruliumcompound", "count" : 3 } --- > { "item" : "ceruliumcompound", "count" : 2 } recipes\furniture\tier8\tier8table.recipe 3c3 < { "item" : "refinedviolium", "count" : 3 } --- > { "item" : "refinedviolium", "count" : 2 } recipes\furniture\tier9\tier9table.recipe 3c3 < { "item" : "refinedrubium", "count" : 3 } --- > { "item" : "refinedrubium", "count" : 2 } scripts\oldpathing.lua 0a1,2 > require "/scripts/util.lua" > 56c58 < world.debugText("findPath failed", {position[1], position[2]-2}, "red") --- > util.debugText("findPath failed", {position[1], position[2]-2}, "red") 67c69 < world.debugText("updatePath failed", {position[1], position[2]-2}, "red") --- > util.debugText("updatePath failed", {position[1], position[2]-2}, "red") 124,126c126 < if self.debug then < world.debugText(action, {position[1], position[2]-2}, "blue") < end --- > util.debugText(action, {position[1], position[2]-2}, "blue") scripts\pathing.lua 50c50 < world.debugText("Looking for path", vec2.add(mcontroller.position(), {0, -1}), "yellow") --- > util.debugText("Looking for path", vec2.add(mcontroller.position(), {0, -1}), "yellow") 238c238 < world.debugText(self.action, {self.position[1], self.position[2]-2}, "blue") --- > util.debugText(self.action, {self.position[1], self.position[2]-2}, "blue") 510c510 < if self.debug then debugRect(groundRegion, "blue") end --- > util.debugRect(groundRegion, "blue") 523,525d522 < if type(maxHeight) ~= "number" or type(minHeight) ~= "number" then < world.logInfo("%s %s", maxHeight, minHeight) < end 593c590,592 < function debugPath(finder) --- > function debugPath(pathfinder) > if not self.debug then return end > 598c597 < local edge = finder:lookAhead(step) --- > local edge = pathfinder:lookAhead(step) 609c608 < debugRect(bounds, "yellow") --- > util.debugRect(bounds, "yellow") 614c613 < debugRect(bounds, "yellow") --- > util.debugRect(bounds, "yellow") 626,633c625 < end < < function debugRect(rect, color) < world.debugLine({rect[1], rect[2]}, {rect[3], rect[2]}, color) < world.debugLine({rect[3], rect[2]}, {rect[3], rect[4]}, color) < world.debugLine({rect[3], rect[4]}, {rect[1], rect[4]}, color) < world.debugLine({rect[1], rect[4]}, {rect[1], rect[2]}, color) < end --- > end \ No newline at end of file scripts\util.lua 126,161d125 < function util.debugRect(rect, color) < if self.debug then < world.debugLine({rect[1], rect[2]}, {rect[3], rect[2]}, color) < world.debugLine({rect[3], rect[2]}, {rect[3], rect[4]}, color) < world.debugLine({rect[3], rect[4]}, {rect[1], rect[4]}, color) < world.debugLine({rect[1], rect[4]}, {rect[1], rect[2]}, color) < end < end < < -------------------------------------------------------------------------------- < function util.debugLine(p1, p2, color) < if self.debug then < world.debugLine(p1, p2, color) < end < end < < -------------------------------------------------------------------------------- < function util.debugLog(...) < if self.debug then < world.logInfo(...) < end < end < < -------------------------------------------------------------------------------- < function util.debugPoly(poly, color) < if self.debug then < local current = poly[1] < for i = 2, #poly do < world.debugLine(current, poly[i], "red") < current = poly[i] < end < world.debugLine(current, poly[1], "red") < end < end < < -------------------------------------------------------------------------------- 277a242,265 > end > > -- Debug functions > function util.debugPoint(...) return self.debug and world.debugPoint(...) end > function util.debugLine(...) return self.debug and world.debugLine(...) end > function util.debugText(...) return self.debug and world.debugText(...) end > function util.debugLog(...) return self.debug and world.logInfo(...) end > function util.debugRect(rect, color) > if self.debug then > world.debugLine({rect[1], rect[2]}, {rect[3], rect[2]}, color) > world.debugLine({rect[3], rect[2]}, {rect[3], rect[4]}, color) > world.debugLine({rect[3], rect[4]}, {rect[1], rect[4]}, color) > world.debugLine({rect[1], rect[4]}, {rect[1], rect[2]}, color) > end > end > function util.debugPoly(poly, color) > if self.debug then > local current = poly[1] > for i = 2, #poly do > world.debugLine(current, poly[i], "red") > current = poly[i] > end > world.debugLine(current, poly[1], "red") > end scripts\actions\entities.lua 146a147,161 > -- param damageTeam > function isNpc(args, output) > args = parseArgs(args, { > entity = nil, > damageTeam = nil > }) > > local entityId = BData:getEntity(args.entity) > local team = BData:getNumber(args.damageTeam) > if entityId == nil then return false end > > return world.isNpc(entityId, team) > end > > -- param entity 312,318c327 < local projectileConfig = copy(args.projectileConfig) < if projectileConfig.timeToLive then < projectileConfig.timeToLive = BData:getNumber(projectileConfig.timeToLive) < end < if projectileConfig.animationCycle then < projectileConfig.animationCycle = BData:getNumber(projectileConfig.animationCycle) < end --- > local projectileConfig = {} 326c335,337 < if projectileConfig.speed then projectileConfig.speed = BData:getNumber(projectileConfig.speed) end --- > if args.projectileConfig.speed then projectileConfig.speed = BData:getNumber(args.projectileConfig.speed) end > if args.projectileConfig.timeToLive then projectileConfig.timeToLive = BData:getNumber(args.projectileConfig.timeToLive) end > if args.projectileConfig.animationCycle then projectileConfig.animationCycle = BData:getNumber(args.projectileConfig.animationCycle) end scripts\actions\movement.lua 10a11,17 > function controlFace(direction) > mcontroller.controlFace(direction) > if entity.setAimPosition then > entity.setAimPosition(vec2.add(mcontroller.position(), {direction, -1})) > end > end > 35a43 > if not self.setFacingDirection then controlFace(direction) end 137,138c145,146 < world.debugLine(mcontroller.position(), position, "yellow") < world.debugPoint(position, "yellow") --- > util.debugLine(mcontroller.position(), position, "yellow") > util.debugPoint(position, "yellow") 142,144c150 < if not self.setFacingDirection then < mcontroller.controlFace(pather.deltaX) < end --- > if not self.setFacingDirection then controlFace(pather.deltaX) end 206,209c212,213 < mcontroller.controlFace(direction) < if entity.setAimPosition then < entity.setAimPosition(vec2.add(mcontroller.position(), {direction, -1})) < end --- > controlFace(direction) > 222,225c226 < mcontroller.controlFace(direction) < if entity.setAimPosition then < entity.setAimPosition(vec2.add(mcontroller.position(), {direction, -1})) < end --- > controlFace(direction) species\glitch.species 156,163c156,163 < { "d9c189" : "74665b", "a38d59" : "524840", "735e3a" : "231f1b" }, < { "d9c189" : "536a7c", "a38d59" : "3a4b58", "735e3a" : "181e25" }, < { "d9c189" : "805b4e", "a38d59" : "5b4037", "735e3a" : "271c17" }, < { "d9c189" : "868148", "a38d59" : "5f5b32", "735e3a" : "292915" }, < { "d9c189" : "80704e", "a38d59" : "5b5037", "735e3a" : "272317" }, < { "d9c189" : "6a7c53", "a38d59" : "4b583a", "735e3a" : "1e2518" }, < { "d9c189" : "77537c", "a38d59" : "553a58", "735e3a" : "251825" }, < { "d9c189" : "696969", "a38d59" : "434343", "735e3a" : "0f0f0f" } --- > { "f7e7b2" : "a7978a", "d9c189" : "74665b", "a38d59" : "524840", "735e3a" : "231f1b" }, > { "f7e7b2" : "7f99ae", "d9c189" : "536a7c", "a38d59" : "3a4b58", "735e3a" : "181e25" }, > { "f7e7b2" : "b08677", "d9c189" : "805b4e", "a38d59" : "5b4037", "735e3a" : "271c17" }, > { "f7e7b2" : "b9b36d", "d9c189" : "868148", "a38d59" : "5f5b32", "735e3a" : "292915" }, > { "f7e7b2" : "b4a179", "d9c189" : "80704e", "a38d59" : "5b5037", "735e3a" : "272317" }, > { "f7e7b2" : "9fb385", "d9c189" : "6a7c53", "a38d59" : "4b583a", "735e3a" : "1e2518" }, > { "f7e7b2" : "ae83b4", "d9c189" : "77537c", "a38d59" : "553a58", "735e3a" : "251825" }, > { "f7e7b2" : "9c9c9c", "d9c189" : "696969", "a38d59" : "434343", "735e3a" : "0f0f0f" } stats\npc_primary.lua 56c56 < drawDebugResources() --- > --drawDebugResources() stats\effects\damageflash\damageflash.statuseffect 2a3,4 > "blockingStat" : "damageflashimmunity", > treasure\monster.treasurepools 49a50,64 > "weaklingMonsterTreasure" : [ > [1, { > "pool" : [ > {"weight" : 0.96, "pool" : "money"}, > {"weight" : 0.03, "pool" : "upgradeComponentTreasure"}, > {"weight" : 0.01, "pool" : "basicTreasure"} > ], > "poolRounds" : [ > [0.75, 0], > [0.25, 1] > ], > "allowDuplication" : false > }] > ], >