FILES ----- celestial.config instance_worlds.config [NEW] behaviors\monsters\boss\spiderboss\acidspray.behavior behaviors\monsters\boss\spiderboss\hurt.behavior behaviors\monsters\boss\spiderboss\main.behavior behaviors\monsters\boss\spiderboss\return.behavior celestial\system\gas_giant\gas_giant_base.png celestial\system\gas_giant\gas_giant_clouds.png celestial\system\terrestrial\dynamics\temperate\1.png celestial\system\terrestrial\dynamics\temperate\10.png celestial\system\terrestrial\dynamics\temperate\11.png celestial\system\terrestrial\dynamics\temperate\12.png celestial\system\terrestrial\dynamics\temperate\13.png celestial\system\terrestrial\dynamics\temperate\14.png celestial\system\terrestrial\dynamics\temperate\15.png celestial\system\terrestrial\dynamics\temperate\16.png celestial\system\terrestrial\dynamics\temperate\17.png celestial\system\terrestrial\dynamics\temperate\18.png celestial\system\terrestrial\dynamics\temperate\19.png celestial\system\terrestrial\dynamics\temperate\2.png celestial\system\terrestrial\dynamics\temperate\20.png [NEW] celestial\system\terrestrial\dynamics\temperate\21.png [NEW] celestial\system\terrestrial\dynamics\temperate\22.png [NEW] celestial\system\terrestrial\dynamics\temperate\23.png [NEW] celestial\system\terrestrial\dynamics\temperate\24.png [NEW] celestial\system\terrestrial\dynamics\temperate\25.png [NEW] celestial\system\terrestrial\dynamics\temperate\26.png [NEW] celestial\system\terrestrial\dynamics\temperate\27.png [NEW] celestial\system\terrestrial\dynamics\temperate\28.png [NEW] celestial\system\terrestrial\dynamics\temperate\29.png celestial\system\terrestrial\dynamics\temperate\3.png [NEW] celestial\system\terrestrial\dynamics\temperate\30.png celestial\system\terrestrial\dynamics\temperate\4.png celestial\system\terrestrial\dynamics\temperate\5.png celestial\system\terrestrial\dynamics\temperate\6.png celestial\system\terrestrial\dynamics\temperate\7.png celestial\system\terrestrial\dynamics\temperate\8.png celestial\system\terrestrial\dynamics\temperate\9.png dungeons\missions\avianmissions\avianmission1.json dungeons\missions\hylotlmissions\hylotlmission1.json monsters\bmonster.lua monsters\boss\spiderboss\spiderboss.animation monsters\ground\largequadruped\largequadruped.monstertype monsters\skills\ranged\plasmatorpedoattack.monsterskill projectiles\explosions\pulsecannonexplosion\pulsecannonexplosion.projectile projectiles\guns\unsorted\electricplasmarocket\electricplasmarocket.projectile projectiles\npcs\plasmatorpedo\plasmatorpedo.png projectiles\npcs\plasmatorpedo\plasmatorpedo.projectile scripts\behavior.lua scripts\actions\entities.lua [NEW] scripts\actions\math.lua scripts\actions\position.lua DIFFS ----- celestial.config 68c68 < "dynamicsRange" : [1, 20] --- > "dynamicsRange" : [1, 30] 74c74 < "dynamicsRange" : [1, 20] --- > "dynamicsRange" : [1, 30] 86c86 < "dynamicsRange" : [1, 20] --- > "dynamicsRange" : [1, 30] 104c104 < "dynamicsRange" : [1, 20] --- > "dynamicsRange" : [1, 30] 110c110 < "dynamicsRange" : [1, 20] --- > "dynamicsRange" : [1, 30] 134c134 < "dynamicsRange" : [1, 20] --- > "dynamicsRange" : [1, 30] 140c140 < "dynamicsRange" : [1, 20] --- > "dynamicsRange" : [1, 30] 160c160 < "hueShiftOffsetRange" : [-45, 45] --- > "hueShiftOffsetRange" : [-20, 20] instance_worlds.config 5a6,7 > "spawningEnabled" : false, > 100a103 > "spawningEnabled" : false, 203,297d205 < "oceandungeontest" : { < "type" : "FloatingDungeon", < "dungeonWorld" : "oceandungeontest", < < "worldProperties" : { < "nonCombat" : true < }, < < "skyParameters" : { < "spaceLevel" : 3000, < "ambientLightLevel" : [128, 128, 128], < "satellites" : [ { < "pos" : [ 0.310561, 0.21497 ], < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/desert/maskie3.png?hueshift=-45" < }, { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/desert/maskie3.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/2.png" < }, { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/desert/maskie2.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/20.png" < }, { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/desert/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/5.png" < }, { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/shadows/9.png" < } ] < } ], < "planet" : { < "pos" : [ 0.00538729, 0.46961 ], < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/gas_giant/gas_giant_base.png" < }, { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/gas_giant/gas_giant_clouds.png?addmask=/celestial/system/gas_giant/gas_giant_dynamics/17.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" < }, { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/gas_giant/shadows/9.png" < } ] < }, < "skyType" : "barren", < "horizonImages" : [ { < "right" : "/celestial/system/terrestrial/horizon/liquids/water_r.png", < "left" : "/celestial/system/terrestrial/horizon/liquids/water_l.png" < }, { < "right" : "/celestial/system/terrestrial/horizon/textures/forest_r.png?hueshift=-30?addmask=/celestial/system/terrestrial/horizon/masks/32_r.png;0;0", < "left" : "/celestial/system/terrestrial/horizon/textures/forest_l.png?hueshift=-30?addmask=/celestial/system/terrestrial/horizon/masks/32_l.png;0;0" < }, { < "right" : "/celestial/system/terrestrial/horizon/atmosphere/atmosphere_r.png", < "left" : "/celestial/system/terrestrial/horizon/atmosphere/atmosphere_l.png" < }, { < "right" : "/celestial/system/terrestrial/horizon/shadow/shadow_r.png", < "left" : "/celestial/system/terrestrial/horizon/shadow/shadow_l.png" < } ], < "dayLength" : 1153.36, < "surfaceLevel" : 1000, < "seed" : -5288806180628666923 < } < }, < 301a210 > "spawningEnabled" : false, 393a303 > "spawningEnabled" : false, 485a396 > "spawningEnabled" : false, 577a489 > "spawningEnabled" : false, 683a596 > "spawningEnabled" : false, 789a703 > "spawningEnabled" : false, 896a811 > "spawningEnabled" : false, 1001a917 > "spawningEnabled" : false, behaviors\monsters\boss\spiderboss\hurt.behavior 13a14 > "parameters": {}, behaviors\monsters\boss\spiderboss\main.behavior 4c4,13 < "scripts": [], --- > "scripts": [ > "/scripts/actions/sensor.lua", > "/scripts/actions/movement.lua", > "/scripts/actions/entities.lua", > "/scripts/actions/time.lua", > "/scripts/actions/status.lua", > "/monsters/boss/spiderboss/actions.lua", > "/scripts/util.lua", > "/scripts/vec2.lua" > ], 21a31 > "title": "Track targets", 94c104,106 < "path": "/behaviors/monsters/boss/spiderboss/slam.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/slam.behavior", > "title": "Slam attack", > "parameters": {} 98c110,112 < "path": "/behaviors/monsters/boss/spiderboss/return.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawn", > "parameters": {} 132c146,148 < "path": "/behaviors/monsters/boss/spiderboss/hurt.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/hurt.behavior", > "title": "Hurt", > "parameters": {} 185c201,203 < "path": "/behaviors/monsters/boss/spiderboss/return.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawna", > "parameters": {} 200c218,220 < "path": "/behaviors/monsters/boss/spiderboss/slam.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/slam.behavior", > "title": "Slam attack", > "parameters": {} 204c224,226 < "path": "/behaviors/monsters/boss/spiderboss/return.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawn", > "parameters": {} 207,212c229,232 < "title": "logInfo", < "type": "action", < "name": "logInfo", < "parameters": { < "text": "Attack 2" < } --- > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/acidspray.behavior", > "title": "Acid Spray", > "parameters": {} 215,217c235,237 < "title": "timer", < "type": "action", < "name": "timer", --- > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawn", 252c272,274 < "path": "/behaviors/monsters/boss/spiderboss/hurt.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/hurt.behavior", > "title": "Hurt", > "parameters": {} 305c327,329 < "path": "/behaviors/monsters/boss/spiderboss/return.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawn", > "parameters": {} 320c344,346 < "path": "/behaviors/monsters/boss/spiderboss/slam.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/slam.behavior", > "title": "Slam attack", > "parameters": {} 324c350,352 < "path": "/behaviors/monsters/boss/spiderboss/return.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawn", > "parameters": {} 327,332c355,358 < "title": "logInfo", < "type": "action", < "name": "logInfo", < "parameters": { < "text": "Attack 3" < } --- > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/acidspray.behavior", > "title": "Acid Spray", > "parameters": {} 335,337c361,363 < "title": "timer", < "type": "action", < "name": "timer", --- > "type": "module", > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawn", 364c390,392 < "path": "/behaviors/monsters/boss/spiderboss/hurt.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/hurt.behavior", > "title": "Hurt", > "parameters": {} 378c406,408 < "path": "/behaviors/monsters/boss/spiderboss/return.behavior" --- > "path": "/behaviors/monsters/boss/spiderboss/return.behavior", > "title": "Return to spawn", > "parameters": {} behaviors\monsters\boss\spiderboss\return.behavior 13a14 > "parameters": {}, 24c25,27 < "parameters": {}, --- > "parameters": { > "success": 2 > }, 44,46c47,49 < "title": "succeeder", < "type": "decorator", < "name": "succeeder", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 48,53c51,70 < "child": { < "title": "rotate", < "type": "action", < "name": "rotate", < "parameters": { < "getVec2": "move" --- > "children": [ > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "rotate", > "type": "action", > "name": "rotate", > "parameters": { > "getVec2": "move" > } > } > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} 55c72 < } --- > ] dungeons\missions\avianmissions\avianmission1.json [TMX file differences are left out for huge size.] dungeons\missions\hylotlmissions\hylotlmission1.json [TMX file differences are left out for huge size.] monsters\bmonster.lua 9a10 > local groundSpawnPosition 11c12 < local groundPosition = findGroundPosition(position, -20, 3) --- > groundSpawnPosition = findGroundPosition(position, -20, 3) 13c14 < storage.spawnPosition = groundPosition or position --- > storage.spawnPosition = groundSpawnPosition or position 97,102c98 < function rotate(args) < args = parseArgs(args, { < angle = 0, < immediate = true < }) < --- > function getAngle(args) 105c101 < local direction = BData:getVec2(args.getVec2) --- > local direction = vec2.norm(BData:getVec2(args.getVec2)) 112,113c108,131 < entity.rotateGroup("all", angle, args.immediate) < rotatePoly(entity.currentRotationAngle("all")) --- > return angle > end > > > function rotate(args) > args = parseArgs(args, { > angle = 0, > immediate = true > }) > > local angle > while true do > angle = getAngle(args) > entity.rotateGroup("all", angle, args.immediate) > rotatePoly(entity.currentRotationAngle("all") or 0) > > world.debugLine(mcontroller.position(), vec2.add(mcontroller.position(), vec2.mul(vec2.rotate({1,0}, entity.currentRotationAngle("all") - entity.configParameter("rotationOffset", 0)), 10)), "green") > > diff = ((entity.currentRotationAngle("all") - angle) + 3.14) % 6.28 - 3.14 > if math.abs(diff) < 0.02 or args.immediate then break end > coroutine.yield("running") > end > > rotatePoly(angle) monsters\boss\spiderboss\spiderboss.animation 266c266 < "angularVelocity" : 1 --- > "angularVelocity" : 2 monsters\ground\largequadruped\largequadruped.monstertype 75,76c75 < "baseSkills" : [ "meleeAttack" ], < "specialSkills" : [ "shockingBoltAttack" ] --- > "baseSkills" : [ "meleeAttack" ] monsters\skills\ranged\plasmatorpedoattack.monsterskill 4c4 < "image" : "/monsters/flying/skills/default.png", --- > "image" : "/monsters/skills/defaultelectric.png", 13c13 < "speed" : 25, --- > "speed" : 80, 16c16,19 < "windupTime" : 0.4 --- > "windupTime" : 0.4, > "castTime" : 0.8, > "castEffect" : "castelectric", > "castAnimation" : "melee" projectiles\explosions\pulsecannonexplosion\pulsecannonexplosion.projectile 9a10 > "emitters" : [ "electricplasma", "defaultblue" ], projectiles\guns\unsorted\electricplasmarocket\electricplasmarocket.projectile 19c19 < "emitters" : [ "electricplasma", "defaultblue" ], --- > "emitters" : [ "electricplasma", "defaultblue", "electricplasma", "defaultblue", "electricplasma", "defaultblue" ], projectiles\npcs\plasmatorpedo\plasmatorpedo.projectile 8a9 > "emitters" : [ "electricplasma", "defaultblue" ], scripts\behavior.lua 475c475 < if result == true then --- > while result == true do 481c481,482 < return "running" --- > > result = self.child:run(dt) 793a795,807 > return true > end > > function setNumber(args) > args = parseArgs(args, { > number = 0, > toNumber = "number" > }) > > local number = BData:getNumber(args.number) > if number == nil then return false end > > BData:setNumber(args.toNumber, BData:getNumber(args.number)) scripts\actions\entities.lua 66a67,69 > if args.toVector then > BData:setVec2(args.toVector, toTarget); > end scripts\actions\position.lua 2a3 > fromIndex = "self", 6a8,14 > local offset > if args.x and args.y then > offset = {BData:getNumber(args.x), BData:getNumber(args.y)} > else > offset = BData:getVec2(args.offset) > end > 12c20 < BData:setPosition(args.toIndex, vec2.add(position, args.offset)) --- > BData:setPosition(args.toIndex, vec2.add(position, offset)) 20c28,29 < toIndex = "ahead" --- > toIndex = "ahead", > direction = "direction" 23a33 > local direction = BData:getNumber(args.direction) 26c36 < local offset = {self.direction * args.multiplier, 0} --- > local offset = {direction * args.multiplier, 0}