FILES ----- behaviors\monsters\boss\dragonboss\dragonboss.behavior behaviors\monsters\critter\walking.behavior behaviors\npc\combat.behavior behaviors\npc\combat\melee.behavior behaviors\npc\combat\ranged.behavior behaviors\npc\unique\cultistinvader.behavior [NEW] behaviors\sequences\glitchmission\baronlounge.behavior behaviors\sequences\glitchmission\baronstart.behavior [NEW] behaviors\sequences\glitchmission\nurufight.behavior [NEW] dungeons\apex\apexcity\apexcity.dungeon [NEW] dungeons\apex\apexcity\apexcityflat1.json [NEW] dungeons\apex\apexcity\apexcityflat2.json [NEW] dungeons\apex\apexcity\apexcityhouse1.json [NEW] dungeons\apex\apexcity\apexcityhouse2.json [NEW] dungeons\apex\apexcity\apexcityhouse3.json [NEW] dungeons\apex\apexcity\apexcityhouse4.json [NEW] dungeons\apex\apexcity\apexcityhouse5.json [NEW] dungeons\apex\apexcity\apexcitymansion1.json [NEW] dungeons\apex\apexcity\apexcitymansion2.json [NEW] dungeons\apex\apexcity\apexcitytemplate.json [NEW] dungeons\apex\apexcity\apexendleft1.json [NEW] dungeons\apex\apexcity\apexendright1.json [NEW] dungeons\apex\apexcity\hylotlcitygardenbunny1.json [NEW] dungeons\apex\apexcity\hylotlcityhouse1.json [NEW] dungeons\apex\apexcity\hylotlcityhouse2.json [NEW] dungeons\apex\apexcity\hylotlcityhousesmall1.json [NEW] dungeons\apex\apexcity\hylotlcityhousesmall2.json [NEW] dungeons\apex\apexcity\hylotlcityhousesmall3.json [NEW] dungeons\apex\apexcity\hylotlcityshop1.json dungeons\human\humancamp\humancamp1.json dungeons\human\humancamp\humancamp5.json dungeons\human\humancamp\humancamplake1.json dungeons\missions\glitchmissions\glitchmission1.json interface\ai\ai.config interface\cockpit\cockpit.config interface\easel\signdispenser.config interface\keybindings\body.png interface\keybindings\footer.png interface\keybindings\header.png interface\keybindings\scrollmenu.png [NEW] interface\keybindings\shine.png interface\objectcrafting\fossilstation.config interface\objectcrafting\refinery.config interface\objectcrafting\repairo.config interface\party\body.png interface\party\footer.png interface\party\header.png interface\popup\body.png interface\popup\footer.png interface\popup\header.png interface\quests\newquest\body.png interface\quests\newquest\bodyshort.png interface\quests\newquest\details.png interface\quests\newquest\detailsshort.png interface\tabs\tabbase.png interface\tabs\tabover.png interface\tabs\tabselected.png interface\tabs\tabselectedover.png interface\title\multiplayerbackground.png interface\title\delete\body.png interface\title\delete\footer.png interface\title\delete\header.png interface\windowconfig\codex.config interface\windowconfig\crafting.config interface\windowconfig\craftinganvil.config interface\windowconfig\craftingfarming.config interface\windowconfig\craftingfood.config interface\windowconfig\craftingfurnace.config interface\windowconfig\craftingfurniture.config interface\windowconfig\craftingfurniturestore.config interface\windowconfig\craftingmedical.config interface\windowconfig\deletedialog.config interface\windowconfig\inventorstable.config interface\windowconfig\keybindingsmenu.config interface\windowconfig\merchant.config interface\windowconfig\multiplayer.config interface\windowconfig\newquest.config interface\windowconfig\newquestshort.config interface\windowconfig\questlog.config interface\windowconfig\spinningwheel.config interface\windowconfig\teaminvite.config interface\windowconfig\wiringstation.config items\active\weapons\weapon.lua items\active\weapons\arena\flamethrowerblade\flamethrowerblade.activeitem items\active\weapons\arena\flamethrowerblade\flamethrowerblade.png [NEW] items\active\weapons\bow\bow\npcbow.activeitem items\active\weapons\fist\fistweapon.lua items\active\weapons\melee\meleeslash.lua [NEW] items\active\weapons\melee\altabilities\broadsword\astraltear\astraltear.altability [NEW] items\active\weapons\melee\altabilities\broadsword\astraltear\astraltear.lua items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.lua items\active\weapons\melee\broadsword\astrosabredeluxe.activeitem items\active\weapons\melee\broadsword\astrosabredeluxe.animation [NEW] items\active\weapons\melee\broadsword\cultistbroadsword.png [NEW] items\active\weapons\melee\broadsword\npccultistbroadsword.activeitem items\active\weapons\melee\broadsword\timepierce.activeitem items\active\weapons\melee\broadsword\timepierce.animation [NEW] items\active\weapons\melee\cultistshortsword\cultistshortsword.activeitem [NEW] items\active\weapons\other\adaptablegun.png items\active\weapons\other\fireworkgun\fireworkgun.activeitem items\active\weapons\other\flamingdemonsword\flamingdemonsword.activeitem items\active\weapons\other\flamingdemonsword\flamingdemonsword.animation items\active\weapons\other\magnorbs\magnorbs.activeitem items\active\weapons\other\magnorbs\magnorbs.animation items\active\weapons\ranged\gun.lua items\active\weapons\ranged\gunfire.lua [NEW] items\active\weapons\ranged\altabilities\flamethrower\flamethrower.altability [NEW] items\active\weapons\ranged\altabilities\flamethrower\flamethrower.lua items\active\weapons\ranged\altabilities\guidedrocket\exmachinarocket.altability items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.lua items\active\weapons\ranged\altabilities\sparkles\sparkles.altability items\active\weapons\ranged\flamethrower\flamethrower.activeitem items\active\weapons\ranged\flamethrower\flamethrower.lua items\active\weapons\whip\altabilities\energyorb.altability items\active\weapons\whip\altabilities\energyorb.lua items\armors\avian\avian-adventurer\avianadventurer.chest items\armors\avian\avian-adventurer\avianadventurer.legs items\armors\avian\avian-commoner\aviancommoner.chest items\armors\avian\avian-commoner\aviancommoner.legs items\armors\avian\avian-fancy\avianfancy.chest items\armors\avian\avian-fancy\avianfancy.legs items\armors\avian\avian-worker\avianworker.chest items\armors\avian\avian-worker\avianworker.legs [NEW] items\armors\backerhats\afrowig\afrowig.head [NEW] items\armors\backerhats\afrowig\head.png [NEW] items\armors\backerhats\afrowig\icons.png [NEW] items\armors\backerhats\afrowig\mask.png [NEW] items\armors\backerhats\valkyriehelm\head.png [NEW] items\armors\backerhats\valkyriehelm\headicon.png items\armors\human\human-concept\concept.chest items\armors\human\human-concept\concept.legs items\armors\human\human-cool\cool.chest items\armors\human\human-cool\cool.legs items\armors\human\human-sweatervest\sweatervest.chest items\armors\human\human-sweatervest\sweatervest.legs items\armors\human\human-workout\workout.chest items\armors\human\human-workout\workout.legs items\armors\other\arenachampion\arenachampion.head items\buildscripts\weaponabilities.config items\generic\crafting\cellmateria.item [NEW] monsters\critter\cell2critter\body.frames [NEW] monsters\critter\cell2critter\body.monsterpart [NEW] monsters\critter\cell2critter\body.png [NEW] monsters\critter\cell2critter\cell2critter.animation [NEW] monsters\critter\cell2critter\cell2critter.monstertype [NEW] monsters\critter\cell3critter\body.frames [NEW] monsters\critter\cell3critter\body.monsterpart [NEW] monsters\critter\cell3critter\body.png [NEW] monsters\critter\cell3critter\cell3critter.animation [NEW] monsters\critter\cell3critter\cell3critter.monstertype [NEW] monsters\critter\cellcritter\body.frames [NEW] monsters\critter\cellcritter\body.monsterpart [NEW] monsters\critter\cellcritter\body.png [NEW] monsters\critter\cellcritter\cellcritter.animation [NEW] monsters\critter\cellcritter\cellcritter.monstertype [NEW] monsters\critter\cellnodividecritter\body.frames [NEW] monsters\critter\cellnodividecritter\body.monsterpart [NEW] monsters\critter\cellnodividecritter\body.png [NEW] monsters\critter\cellnodividecritter\cellnodividecritter.animation [NEW] monsters\critter\cellnodividecritter\cellnodividecritter.monstertype [NEW] monsters\critter\eggcellcritter\body.frames [NEW] monsters\critter\eggcellcritter\body.monsterpart [NEW] monsters\critter\eggcellcritter\body.png [NEW] monsters\critter\eggcellcritter\eggcellcritter.animation [NEW] monsters\critter\eggcellcritter\eggcellcritter.monstertype [NEW] monsters\critter\eggcellflycritter\body.frames [NEW] monsters\critter\eggcellflycritter\body.monsterpart [NEW] monsters\critter\eggcellflycritter\body.png [NEW] monsters\critter\eggcellflycritter\eggcellflycritter.animation [NEW] monsters\critter\eggcellflycritter\eggcellflycritter.monstertype [NEW] monsters\critter\fisheyecritter\body.frames [NEW] monsters\critter\fisheyecritter\body.monsterpart [NEW] monsters\critter\fisheyecritter\body.png [NEW] monsters\critter\fisheyecritter\fisheyecritter.animation [NEW] monsters\critter\fisheyecritter\fisheyecritter.monstertype [NEW] monsters\flyers\tentaclebomb\body.monsterpart [NEW] monsters\flyers\tentaclebomb\tentaclebomb.animation [NEW] monsters\flyers\tentaclebomb\tentaclebomb.frames [NEW] monsters\flyers\tentaclebomb\tentaclebomb.monstertype [NEW] monsters\flyers\tentaclebomb\tentaclebomb.png [NEW] monsters\flyers\tentaclespawner\body.monsterpart [NEW] monsters\flyers\tentaclespawner\tentaclespawner.animation [NEW] monsters\flyers\tentaclespawner\tentaclespawner.frames [NEW] monsters\flyers\tentaclespawner\tentaclespawner.monstertype [NEW] monsters\flyers\tentaclespawner\tentaclespawner.png monsters\mission\helicultist\helicultist.png npcs\bmain.lua npcs\cultist.npctype npcs\arena\arenaadvisor1.npctype npcs\arena\arenaadvisor2.npctype npcs\arena\arenaadvisor3.npctype npcs\arena\arenapyro.npctype npcs\mission\cultistknight.npctype npcs\story\baron.npctype npcs\story\lanafight.npctype npcs\story\nurufight.npctype objects\apex\apexaquarium2\apexaquarium2.png objects\apex\apexaquarium2\apexaquarium2icon.png objects\apex\apexbed\apexbed.png objects\apex\apexbed\apexbedcover.png objects\apex\apexbed\apexbedicon.png objects\apex\apexcounter1\apexcounter1.png objects\apex\apexcounter1\apexcounter1icon.png objects\apex\apexcounter2\apexcounter2.png objects\apex\apexcounter2\apexcounter2icon.png objects\apex\apexdesk\apexdeskicon.png objects\apex\apexdesk\apexdeskleft.png objects\apex\apexdesk\apexdeskright.png objects\apex\apexlamp1\apexlamp1.png objects\apex\apexlamp1\apexlamp1lit.png objects\apex\apexlamp2\apexlamp2.png objects\apex\apexlamp2\apexlamp2icon.png objects\apex\apexlamp2\apexlamp2lit.png objects\apex\apexlamp3\apexlamp3.png objects\apex\apexlamp3\apexlamp3lit.png objects\apex\apexpainting1\apexpainting1.png objects\apex\apexpainting1\apexpainting1icon.png objects\apex\apexpainting2\apexpainting2.png objects\apex\apexpainting2\apexpainting2icon.png objects\apex\apexpainting3\apexpainting3.png objects\apex\apexpainting3\apexpainting3icon.png objects\apex\apexpainting4\apexpainting4.png objects\apex\apexpainting4\apexpainting4icon.png objects\apex\apexpainting5\apexpainting5.png objects\apex\apexpainting5\apexpainting5icon.png objects\apex\apexpiano\apexpiano.png objects\apex\apexpiano\apexpianoicon.png objects\apex\apexrecordplayer\apexrecordplayer.png objects\apex\apexrecordplayer\apexrecordplayericon.png objects\apex\apextable\apextable.png objects\apex\apextable\apextableicon.png objects\apex\apexwardrobe\apexwardrobe.png objects\apex\apexwardrobe\apexwardrobeicon.png objects\apex\apexwoodenchair\apexwoodenchair.png objects\apex\apexwoodenchair\apexwoodenchairicon.png objects\apex\apexwoodenshelves\apexwoodenshelves.png objects\apex\apexwoodenshelves\apexwoodenshelvesicon.png objects\apex\apexwoodpanel\apexwoodpanel.png objects\apex\apexwoodpanel\apexwoodpanelicon.png objects\apex\grandfatherclock\grandfatherclock.png objects\apex\grandfatherclock\grandfatherclockicon.png objects\farmables\pearlpea\pearlpeaseed.object [NEW] particles\sparkles\astraltearsparkle1.particle [NEW] particles\sparkles\astraltearsparkle2.particle [NEW] particles\sparkles\astraltearsparkle3.particle [NEW] projectiles\activeitems\astraltear\astraltear.frames [NEW] projectiles\activeitems\astraltear\astraltear.lua [NEW] projectiles\activeitems\astraltear\astraltear.png [NEW] projectiles\activeitems\astraltear\astraltear.projectile projectiles\activeitems\guidedrocket\guidedrocket.lua [NEW] projectiles\activeitems\whip\whipshock.frames [NEW] projectiles\activeitems\whip\whipshock.png [NEW] projectiles\activeitems\whip\whipshock.projectile projectiles\guns\grenades\shock\shock.projectile projectiles\throwable\fireworkgun\fireworkgun.projectile projectiles\throwable\fireworkgun2\fireworkgun2.projectile [NEW] projectiles\throwable\fireworkgun3\fireworkgun3.frames [NEW] projectiles\throwable\fireworkgun3\fireworkgun3.png [NEW] projectiles\throwable\fireworkgun3\fireworkgun3.projectile quests\outpost\floranarena1.questtemplate quests\outpost\floranarena2.questtemplate quests\outpost\floranarena3.questtemplate quests\outpost\techscientist1.questtemplate [NEW] sfx\gun\magnorbs_fire1.ogg [NEW] sfx\gun\magnorbs_fire10.ogg [NEW] sfx\gun\magnorbs_fire2.ogg [NEW] sfx\gun\magnorbs_fire3.ogg [NEW] sfx\gun\magnorbs_fire4.ogg [NEW] sfx\gun\magnorbs_fire5.ogg [NEW] sfx\gun\magnorbs_fire6.ogg [NEW] sfx\gun\magnorbs_fire7.ogg [NEW] sfx\gun\magnorbs_fire8.ogg [NEW] sfx\gun\magnorbs_fire9.ogg [NEW] sfx\gun\magnorbs_shield.ogg [NEW] sfx\gun\magnorbs_shield_loop1.ogg [NEW] sfx\gun\magnorbs_shield_loop2.ogg [NEW] sfx\projectiles\plasma4.ogg stagehands\coordinator.stagehand stagehands\mission\glitchmissionmanager.lua stagehands\mission\glitchmissionmanager.stagehand DIFFS ----- behaviors\monsters\boss\dragonboss\dragonboss.behavior 7a8 > "/scripts/actions/notification.lua", 9a11 > "/scripts/actions/status.lua", 42c44 < "shouldDie": true --- > "shouldDie": false 59c61 < "title": "Reset", --- > "title": "Spiderboss", 61c63 < "name": "sequence", --- > "name": "dynamic", 65c67 < "title": "loadUniqueEntity", --- > "title": "wasDamaged", 67,70c69,70 < "name": "loadUniqueEntity", < "parameters": { < "uniqueId": "bosshoverposition" < }, --- > "name": "wasDamaged", > "parameters": {}, 72c72 < "entity": "hoverStagehand" --- > "damageSource": "" 76,94c76,135 < "title": "entityPosition", < "type": "action", < "name": "entityPosition", < "parameters": { < "entity": "hoverStagehand" < }, < "output": { < "position": "hoverPosition" < } < }, < { < "title": "flyToPosition", < "type": "action", < "name": "flyToPosition", < "parameters": { < "position": "hoverPosition", < "tolerance": 1, < "speed": 10 < } --- > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "loadUniqueEntity", > "type": "action", > "name": "loadUniqueEntity", > "parameters": { > "uniqueId": "bosshoverposition" > }, > "output": { > "entity": "hoverStagehand" > } > }, > { > "title": "entityPosition", > "type": "action", > "name": "entityPosition", > "parameters": { > "entity": "hoverStagehand" > }, > "output": { > "position": "hoverPosition" > } > }, > { > "title": "flyToPosition", > "type": "action", > "name": "flyToPosition", > "parameters": { > "position": "hoverPosition", > "tolerance": 1, > "speed": 10 > } > }, > { > "title": "Spiderboss", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "receivedNotification", > "type": "action", > "name": "receivedNotification", > "parameters": { > "type": "bossAggro" > } > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] > } > ] 226a268,389 > } > ] > }, > { > "title": "Spiderboss", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0.75, > "resource": "health" > } > }, > { > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", > "parameters": { > "type": "stage", > "tag": "stage1" > } > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0.5, > "resource": "health" > } > }, > { > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", > "parameters": { > "type": "stage", > "tag": "stage2" > } > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0, > "resource": "health" > } > }, > { > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", > "parameters": { > "type": "stage", > "tag": "stage3" > } > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", > "parameters": { > "type": "stage", > "tag": "dead" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 1 > }, > "output": { > "ratio": "" > } > }, > { > "title": "setDying", > "type": "action", > "name": "setDying", > "parameters": { > "shouldDie": true > } > } > ] behaviors\monsters\critter\walking.behavior 3d2 < "description": "", 9c8,14 < "parameters": {}, --- > "parameters": { > "idleTime": [ > 2, > 8 > ], > "wanderTime": 4 > }, 35,38c40 < "time": [ < 2, < 8 < ] --- > "time": "" 82c84 < "time": 4 --- > "time": "" behaviors\npc\combat.behavior 3d2 < "description": "", 10c9,10 < "combatParameters": {} --- > "combatParameters": {}, > "meleeStandby": true 326,328c326,328 < "title": "parallel", < "type": "composite", < "name": "parallel", --- > "title": "optional", > "type": "decorator", > "name": "optional", 330,331c330 < "fail": 1, < "success": -1 --- > "shouldRun": "" 333,338c332,338 < "children": [ < { < "title": "hasMeleePrimary", < "type": "action", < "name": "hasMeleePrimary", < "parameters": {} --- > "child": { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 340,353c340,344 < { < "title": "task", < "type": "decorator", < "name": "task", < "parameters": { < "groupId": "combat", < "taskId": "meleeStandby", < "minMembers": 1, < "maxMembers": 8 < }, < "child": { < "title": "NPC Melee Standby", < "type": "module", < "name": "meleestandby", --- > "children": [ > { > "title": "hasMeleePrimary", > "type": "action", > "name": "hasMeleePrimary", 354a346,362 > }, > { > "title": "task", > "type": "decorator", > "name": "task", > "parameters": { > "groupId": "combat", > "taskId": "meleeStandby", > "minMembers": 1, > "maxMembers": 8 > }, > "child": { > "title": "NPC Melee Standby", > "type": "module", > "name": "meleestandby", > "parameters": {} > } 356,357c364,365 < } < ] --- > ] > } 396c404 < } --- > } \ No newline at end of file behaviors\npc\combat\melee.behavior 3d2 < "description": "", 16c15,16 < "leapCooldown": 4 --- > "leapCooldown": 4, > "leapChance": 0.5 183c183 < "chance": 0.5 --- > "chance": "" behaviors\npc\combat\ranged.behavior 5,6d4 < "/scripts/actions/movement.lua", < "/scripts/actions/position.lua", 8c6,11 < "/scripts/actions/time.lua" --- > "/scripts/actions/projectiles.lua", > "/scripts/behavior/bdata.lua", > "/scripts/actions/math.lua", > "/scripts/actions/time.lua", > "/scripts/actions/movement.lua", > "/scripts/actions/position.lua" 14c17,19 < "rangedMaxFireTime": 1 --- > "rangedMaxFireTime": 1, > "bowDrawTime": 1, > "arrowSpeed": 62.5 167c172 < "title": "parallel", --- > "title": "selector", 169,173c174,175 < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 < }, --- > "name": "selector", > "parameters": {}, 186a189,227 > "title": "primaryWeaponTag", > "type": "action", > "name": "primaryWeaponTag", > "parameters": { > "tag": "bow" > } > }, > { > "title": "beginPrimaryFire", > "type": "action", > "name": "beginPrimaryFire", > "parameters": {} > }, > { > "title": "projectileGravityMultiplier", > "type": "action", > "name": "projectileGravityMultiplier", > "parameters": { > "projectileName": "woodenarrow" > }, > "output": { > "gravityMultiplier": "arrowGravity" > } > }, > { > "title": "setVector", > "type": "action", > "name": "setVector", > "parameters": { > "vector": [ > "facingDirection", > 0 > ] > }, > "output": { > "vector": "aimOffset" > } > }, > { 209,216d249 < "title": "faceEntity", < "type": "action", < "name": "faceEntity", < "parameters": { < "entity": "target" < } < }, < { 228,239c261,307 < "title": "offsetPosition", < "type": "action", < "name": "offsetPosition", < "parameters": { < "offset": [ < 0, < 0 < ], < "position": "targetPosition" < }, < "output": { < "position": "aimPosition" --- > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "projectileAimVector", > "type": "action", > "name": "projectileAimVector", > "parameters": { > "collisionCheck": false, > "fromPosition": "self", > "gravityMultiplier": "arrowGravity", > "speed": "", > "toPosition": "targetPosition", > "useHighArc": false > }, > "output": { > "aimVector": "aimVector" > } > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "aimVector", > "second": [ > 10, > 10 > ] > }, > "output": { > "vector": "aimOffset" > } > } > ] 247c315,316 < "position": "aimPosition" --- > "offset": "aimOffset", > "position": "self" 255c324 < "time": "" --- > "time": 1 262,270c331 < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": "" < } < }, < { < "title": "beginPrimaryFire", --- > "title": "endPrimaryFire", 272c333 < "name": "beginPrimaryFire", --- > "name": "endPrimaryFire", 280c341 < "time": "" --- > "time": 0.2 282c343,354 < }, --- > } > ] > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ 284c356 < "title": "dynamic", --- > "title": "sequence", 286,287c358,364 < "name": "dynamic", < "parameters": {}, --- > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, 290,292c367,369 < "title": "dynamic", < "type": "composite", < "name": "dynamic", --- > "title": "coroutine", > "type": "decorator", > "name": "coroutine", 294,300c371,380 < "children": [ < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { --- > "child": { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { 306a387,436 > }, > { > "title": "faceEntity", > "type": "action", > "name": "faceEntity", > "parameters": { > "entity": "target" > } > }, > { > "title": "entityPosition", > "type": "action", > "name": "entityPosition", > "parameters": { > "entity": "target" > }, > "output": { > "position": "targetPosition" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": [ > 0, > 0 > ], > "position": "targetPosition" > }, > "output": { > "position": "aimPosition" > } > }, > { > "title": "setAimPosition", > "type": "action", > "name": "setAimPosition", > "parameters": { > "position": "aimPosition" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": "" > } 308c438,468 < }, --- > ] > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": "" > } > }, > { > "title": "beginPrimaryFire", > "type": "action", > "name": "beginPrimaryFire", > "parameters": {} > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": "" > } > }, > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ 310,312c470,472 < "title": "inverter", < "type": "decorator", < "name": "inverter", --- > "title": "dynamic", > "type": "composite", > "name": "dynamic", 314,319c474,509 < "child": { < "title": "canFire", < "type": "action", < "name": "canFire", < "parameters": {} < } --- > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "entityInSight", > "type": "action", > "name": "entityInSight", > "parameters": { > "entity": "target" > } > } > }, > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "canFire", > "type": "action", > "name": "canFire", > "parameters": {} > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": "" > } > } > ] 322c512 < "title": "timer", --- > "title": "runner", 324,327c514,515 < "name": "timer", < "parameters": { < "time": "" < } --- > "name": "runner", > "parameters": {} 330,335d517 < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} 337a520,527 > }, > { > "title": "setAimPosition", > "type": "action", > "name": "setAimPosition", > "parameters": { > "position": "aimPosition" > } 340,347d529 < }, < { < "title": "setAimPosition", < "type": "action", < "name": "setAimPosition", < "parameters": { < "position": "aimPosition" < } behaviors\npc\unique\cultistinvader.behavior 5d4 < "/scripts/actions/status.lua", 8a8 > "/scripts/actions/status.lua", 28,35d27 < "title": "addEphemeralEffect", < "type": "action", < "name": "addEphemeralEffect", < "parameters": { < "name": "beamin" < } < }, < { 40c32 < "time": 2 --- > "time": 1 93c85 < "name": "beamout" --- > "name": "beamoutanddie" 101c93 < "time": 0.7 --- > "time": 1 103,108d94 < }, < { < "title": "suicide", < "type": "action", < "name": "suicide", < "parameters": {} behaviors\sequences\glitchmission\baronstart.behavior 2a3 > "description": "", 41,48d41 < "title": "logInfo", < "type": "action", < "name": "logInfo", < "parameters": { < "text": "Mission complete sequence" < } < }, < { 198a192,226 > "title": "baron-lounge", > "type": "module", > "name": "baron-lounge", > "parameters": {} > } > ] > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "receivedNotification", > "type": "action", > "name": "receivedNotification", > "parameters": { > "type": "lastWaveComplete" > } > }, > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { 210,227c238,240 < "title": "moveToPosition", < "type": "action", < "name": "moveToPosition", < "parameters": { < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -10, < "pathOptions": {}, < "position": "spawn", < "run": false < } < }, < { < "title": "findLoungable", < "type": "action", < "name": "findLoungable", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 229,233c242,245 < "position": "self", < "range": 5, < "orderBy": "nearest", < "orientation": "sit", < "unoccupied": true --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" 235,237c247,303 < "output": { < "entity": "throne" < } --- > "children": [ > { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 0.5, > "onFail": true, > "onSuccess": true > }, > "child": { > "title": "queryEntity", > "type": "action", > "name": "queryEntity", > "parameters": { > "entityTypes": [ > "player" > ], > "orderBy": "nearest", > "position": "self", > "range": 10, > "withoutEntity": "self" > }, > "output": { > "list": "players" > } > } > }, > { > "title": "filter", > "type": "decorator", > "name": "filter", > "parameters": { > "list": "players", > "type": "entity" > }, > "child": { > "title": "entityInSight", > "type": "action", > "name": "entityInSight", > "parameters": { > "entity": "filterItem" > } > } > }, > { > "title": "listGet", > "type": "action", > "name": "listGet", > "parameters": { > "list": "players" > }, > "output": { > "entity": "player" > } > } > ] 240,242c306,308 < "title": "setLounging", < "type": "action", < "name": "setLounging", --- > "title": "parallel", > "type": "composite", > "name": "parallel", 244,251c310,410 < "entity": "throne" < } < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} --- > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "entityExists", > "type": "action", > "name": "entityExists", > "parameters": { > "entity": "player" > } > }, > { > "title": "faceEntity", > "type": "action", > "name": "faceEntity", > "parameters": { > "entity": "player" > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "resetLounging", > "type": "action", > "name": "resetLounging", > "parameters": {} > }, > { > "title": "sequentialdialog", > "type": "module", > "name": "sequentialdialog", > "parameters": { > "dialogWaitTime": 6, > "dialogEndWait": 4, > "dialogKey": "dialog.baron.finalWaveComplete", > "dialogTarget": "player" > } > }, > { > "title": "loadUniqueEntity", > "type": "action", > "name": "loadUniqueEntity", > "parameters": { > "uniqueId": "missionmanager" > }, > "output": { > "entity": "missionmanager" > } > }, > { > "title": "sendEntityMessage", > "type": "action", > "name": "sendEntityMessage", > "parameters": { > "entity": "missionmanager", > "message": "bossWave" > } > }, > { > "title": "sequentialdialog", > "type": "module", > "name": "sequentialdialog", > "parameters": { > "dialogWaitTime": 6, > "dialogEndWait": 3, > "dialogKey": "dialog.baron.bossSpawn", > "dialogTarget": "player" > } > }, > { > "title": "broadcastNotification", > "type": "action", > "name": "broadcastNotification", > "parameters": { > "position": "self", > "range": 100, > "entityTypes": [ > "monster" > ], > "type": "bossAggro" > } > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] > } > ] 253a413,418 > }, > { > "title": "baron-lounge", > "type": "module", > "name": "baron-lounge", > "parameters": {} 539,597c704,707 < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "moveToPosition", < "type": "action", < "name": "moveToPosition", < "parameters": { < "avoidLiquid": true, < "failFast": false, < "groundPosition": true, < "maxGround": 5, < "minGround": -10, < "pathOptions": {}, < "position": "spawn", < "run": false < }, < "output": { < "direction": "direction", < "pathfinding": "isPathfinding" < } < }, < { < "title": "findLoungable", < "type": "action", < "name": "findLoungable", < "parameters": { < "position": "self", < "range": 5, < "orderBy": "nearest", < "orientation": "sit", < "unoccupied": true < }, < "output": { < "entity": "throne" < } < }, < { < "title": "setLounging", < "type": "action", < "name": "setLounging", < "parameters": { < "entity": "throne" < } < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} < } < ] --- > "title": "baron-lounge", > "type": "module", > "name": "baron-lounge", > "parameters": {} dungeons\human\humancamp\humancamp1.json [TMX file differences are left out for huge size.] dungeons\human\humancamp\humancamp5.json [TMX file differences are left out for huge size.] dungeons\human\humancamp\humancamplake1.json [TMX file differences are left out for huge size.] dungeons\missions\glitchmissions\glitchmission1.json [TMX file differences are left out for huge size.] interface\ai\ai.config 41c41 < "position" : [374, 183] --- > "position" : [374, 181] interface\cockpit\cockpit.config 464c464 < "position" : [419, 263], --- > "position" : [419, 261], interface\easel\signdispenser.config 17a18,24 > "close" : { > "type" : "button", > "base" : "/interface/inventory/x.png", > "hover" : "/interface/inventory/xhover.png", > "press" : "/interface/inventory/xpress.png", > "position" : [143, 125] > }, interface\objectcrafting\fossilstation.config 18c18 < "position" : [321, 263] --- > "position" : [321, 261] interface\objectcrafting\refinery.config 22a23,29 > "close" : { > "type" : "button", > "base" : "/interface/inventory/x.png", > "hover" : "/interface/inventory/xhover.png", > "press" : "/interface/inventory/xpress.png", > "position" : [123, 64] > }, interface\objectcrafting\repairo.config 15a16,22 > "close" : { > "type" : "button", > "base" : "/interface/inventory/x.png", > "hover" : "/interface/inventory/xhover.png", > "press" : "/interface/inventory/xpress.png", > "position" : [123, 65] > }, interface\windowconfig\codex.config 36c36 < "position" : [143, 254] --- > "position" : [143, 252] interface\windowconfig\crafting.config 16c16 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\craftinganvil.config 19c19 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\craftingfarming.config 19c19 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\craftingfood.config 14c14 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\craftingfurnace.config 18c18 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\craftingfurniture.config 19c19 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\craftingfurniturestore.config 15c15 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\craftingmedical.config 19c19 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\deletedialog.config 11c11 < "position" : [96, 44], --- > "position" : [102, 44], 21c21 < "position" : [16, 26], --- > "position" : [22, 26], 30c30 < "position" : [102, 26], --- > "position" : [108, 26], interface\windowconfig\inventorstable.config 19c19 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\keybindingsmenu.config 292c292 < "position" : [141, 15], --- > "position" : [141, 30], 299c299 < "position" : [19, 15], --- > "position" : [19, 30], 306c306 < "position" : [80, 15], --- > "position" : [80, 30], 320c320 < "rect" : [13, 29, 203, 209], --- > "rect" : [13, 29, 203, 205], 329c329 < "rect" : [2, 6, 189, 166], --- > "rect" : [2, 26, 189, 156], 378c378 < "rect" : [2, 6, 189, 166], --- > "rect" : [2, 26, 189, 156], 427c427 < "rect" : [2, 6, 189, 166], --- > "rect" : [2, 26, 189, 156], interface\windowconfig\merchant.config 17c17 < "position" : [161, 251] --- > "position" : [161, 249] interface\windowconfig\multiplayer.config 12,13c12,13 < "position" : [82.5, 31], < "caption" : "JOIN SERVER" --- > "position" : [82.5, 32], > "caption" : "Join server" 17c17 < "position" : [35, 82], --- > "position" : [35, 85], 27c27 < "position" : [173, 82], --- > "position" : [173, 85], 37c37 < "position" : [35, 66], --- > "position" : [35, 69], 46c46 < "position" : [35, 50], --- > "position" : [35, 53], interface\windowconfig\newquest.config 30c30 < "position" : [30, 212], --- > "position" : [30, 234], 63c63 < "position" : [216, 47], --- > "position" : [216, 67], 69c69 < "position" : [216, 47], --- > "position" : [216, 67], 74c74 < "position" : [235, 72], --- > "position" : [235, 92], 81c81 < "position" : [235, 49], --- > "position" : [235, 69], 92c92 < "position" : [64, 32], --- > "position" : [64, 37], 99c99 < "position" : [144, 32], --- > "position" : [144, 37], 104c104 < "position" : [55, 47], --- > "position" : [110, 67], 112c112 < "position" : [12, 51], --- > "position" : [67, 71], 119c119 < "position" : [140, 200], --- > "position" : [140, 220], 129c129 < "position" : [67, 188], --- > "position" : [67, 208], interface\windowconfig\newquestshort.config 30c30 < "position" : [30, 152], --- > "position" : [30, 174], 36c36 < "position" : [0, 0], --- > "position" : [0, 22], 48c48 < "position" : [9, 93], --- > "position" : [9, 95], 53c53 < "position" : [32, 83], --- > "position" : [32, 85], 64c64 < "position" : [64, 32], --- > "position" : [64, 37], 69,71c69,71 < "base" : "/interface/quests/newquest/acceptUp.png", < "hover" : "/interface/quests/newquest/acceptOver.png", < "position" : [144, 32], --- > "base" : "/interface/quests/newquest/declineUp.png", > "hover" : "/interface/quests/newquest/declineOver.png", > "position" : [144, 37], 76c76 < "position" : [55, 47], --- > "position" : [110, 66], 84c84 < "position" : [12, 51], --- > "position" : [67, 70], 103c103 < "position" : [140, 140], --- > "position" : [140, 160], 113c113 < "position" : [67, 128], --- > "position" : [67, 147], interface\windowconfig\questlog.config 17c17 < "position" : [310, 259] --- > "position" : [310, 257] interface\windowconfig\spinningwheel.config 19c19 < "position" : [321, 263] --- > "position" : [321, 261] interface\windowconfig\teaminvite.config 12,26c12 < "windowtitle" : { < "type" : "title", < "title" : " - ATTENTION - ", < "subtitle" : "", < "size" : 12, < "position" : [0, 254] < }, < "labelPlayerName" : { < "type" : "label", < "position" : [44, 68], < "fontSize" : 8, < "value" : "Enter player name.", < "color" : [255, 255, 255] < }, < "ok" : { --- > "ok" : { 28,30c14,16 < "base" : "/interface/popup/inviteup.png", < "hover" : "/interface/popup/inviteover.png", < "position" : [54, 28], --- > "base" : "/interface/title/delete/cancelDown.png", > "hover" : "/interface/title/delete/cancel.png", > "position" : [12, 31], 35,36c21,22 < "position" : [44, 47], < "hint" : "PLAYER NAME", --- > "position" : [39, 54], > "hint" : "ENTER PLAYER NAME", 39c25,33 < "maxWidth" : 72 --- > "maxWidth" : 82 > }, > "close" : { > "type" : "button", > "caption" : "CANCEL", > "base" : "/interface/title/delete/cancelDown.png", > "hover" : "/interface/title/delete/cancel.png", > "press" : "/interface/title/delete/cancel.png", > "position" : [96, 31] interface\windowconfig\wiringstation.config 19c19 < "position" : [321, 263] --- > "position" : [321, 261] items\active\weapons\weapon.lua 241c241 < function getAbility(abilityConfig) --- > function getAbility(abilitySlot, abilityConfig) 245a246 > abilityConfig.abilitySlot = abilitySlot 251c252 < return getAbility(primaryAbilityConfig) --- > return getAbility("primary", primaryAbilityConfig) 257c258 < return getAbility(altAbilityConfig) --- > return getAbility("alt", altAbilityConfig) items\active\weapons\arena\flamethrowerblade\flamethrowerblade.activeitem 6c6 < "rarity" : "rare", --- > "rarity" : "legendary", 17,18c17,18 < "butt" : "flamethrowerblade.png", < "middle" : "", --- > "butt" : "", > "middle" : "flamethrowerblade.png", 24c24,25 < "fireStart" : [ "/sfx/melee/swing_spear_fire1.ogg", "/sfx/melee/swing_spear_fire2.ogg", "/sfx/melee/swing_spear_fire3.ogg" ], --- > "fire" : [ "/sfx/melee/swing_broadsword_fire1.ogg", "/sfx/melee/swing_broadsword_fire2.ogg", "/sfx/melee/swing_broadsword_fire3.ogg" ], > "fireStart" : [ "/sfx/tech/tech_jetpack_thrust1.ogg" ], 30c31 < "baseOffset" : [-4.1, -2.2], --- > "baseOffset" : [3.1, -2.2], 36a38 > "primaryAbilityType" : "flamethrower", 38,78c40,41 < "scripts" : [], < "class" : "FlamethrowerAttack", < < "fireTime" : 0.065, < "baseDps" : 9.0, < "energyUsage" : 60, < "inaccuracy" : 0.05, < < "fireType" : "auto", < < "projectileType" : "flamethrower", < "projectileParameters" : { }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < } < } --- > "baseDps" : 6, > "energyUsage" : 60 80,81d42 < < "altAbilitySource" : "/items/active/weapons/ranged/altabilities/piercingshot/piercingshot.altability", items\active\weapons\fist\fistweapon.lua 15c15 < self.comboFinisher = getAbility(comboFinisherConfig) --- > self.comboFinisher = getAbility("comboFinisher", comboFinisherConfig) items\active\weapons\melee\meleeslash.lua 22c22 < if not self.weapon.currentAbility and self.fireMode == "primary" and self.cooldownTimer == 0 then --- > if not self.weapon.currentAbility and self.fireMode == (self.activatingFireMode or self.abilitySlot) and self.cooldownTimer == 0 and (not self.energyUsage or not status.resourceLocked("energy")) then 32c32 < while self.fireMode == "primary" do --- > while self.fireMode == (self.activatingFireMode or self.abilitySlot) do 38a39,42 > if self.energyUsage then > status.overConsumeResource("energy", self.energyUsage) > end > 64c68 < animator.burstParticleEmitter(self.weapon.elementalType .. "swoosh") --- > animator.burstParticleEmitter((self.elementalType or self.weapon.elementalType) .. "swoosh") 80c84 < end \ No newline at end of file --- > end items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.lua 33,34c33 < local position = vec2.add(mcontroller.position(), self.projectileOffset) < local aimVector = {mcontroller.facingDirection(), 0} --- > local position = vec2.add(mcontroller.position(), vec2.mul(self.projectileOffset, mcontroller.facingDirection())) 39c38 < world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), aimVector, false, params) --- > world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), self:aimVector(), false, params) 41c40 < animator.playSound(self.weapon.elementalType.."TravelSlash") --- > animator.playSound(self:slashSound()) 44a44,51 > end > > function TravelingSlash:slashSound() > return self.weapon.elementalType.."TravelSlash" > end > > function TravelingSlash:aimVector() > return {mcontroller.facingDirection(), 0} items\active\weapons\melee\broadsword\astrosabredeluxe.activeitem 81c81 < "altAbilitySource" : "/items/active/weapons/melee/altabilities/broadsword/spinslash/superspinslash.altability", --- > "altAbilityType" : "astraltear", items\active\weapons\melee\broadsword\astrosabredeluxe.animation 108a109 > "fullbright" : true, 135a137 > "fullbright" : true, 162a165 > "fullbright" : true, 189a193 > "fullbright" : true, 216a221 > "fullbright" : true, 243a249 > "fullbright" : true, items\active\weapons\melee\broadsword\timepierce.activeitem 39c39 < "statusEffects" : [ "timeslow" ], --- > "statusEffects" : [ ], 82c82,128 < "altAbilitySource" : "/items/active/weapons/melee/altabilities/broadsword/spinslash/superspinslash.altability", --- > "altAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > > "elementalType" : "time", > > "fireTime" : 1.5, > "baseDps" : 12, > "energyUsage" : 20.0, > "damageConfig" : { > "damageSourceKind" : "broadsword", > "statusEffects" : [ "timeslow" ], > "knockback" : 20, > "knockbackMode" : "facing", > "timeoutGroup" : "primary" > }, > > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.333, > "armRotation" : 90, > "weaponRotation" : -90, > "armAngularVelocity" : -1080, > //"armRotation" : 90, > //"weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "fire" : { > "duration" : 0.5, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } > } > }, items\active\weapons\melee\broadsword\timepierce.animation 84a85,92 > ] > }, > "timeswoosh" : { > "active" : false, > "transformationGroups" : ["swoosh"], > "emissionRate" : 50, > "offsetRegion" : [0.75, 0.0, 4.25, 5.0], > "particles" : [ 97,149d104 < ] < }, < "fireswoosh" : { < "active" : false, < "transformationGroups" : ["swoosh"], < "emissionRate" : 50, < "offsetRegion" : [0.75, 0.0, 4.25, 5.0], < "particles" : [ < { "particle" : "fireswoosh1"}, < { "particle" : "fireswoosh2"}, < { "particle" : "fireswoosh3"}, < { "particle" : "fireswoosh1"}, < { "particle" : "fireswoosh2"}, < { "particle" : "fireswoosh3"} < ] < }, < "electricswoosh" : { < "active" : false, < "transformationGroups" : ["swoosh"], < "emissionRate" : 50, < "offsetRegion" : [0.75, 0.0, 4.25, 5.0], < "particles" : [ < { "particle" : "electricswoosh1"}, < { "particle" : "electricswoosh2"}, < { "particle" : "electricswoosh2"} < ] < }, < "poisonswoosh" : { < "active" : false, < "transformationGroups" : ["swoosh"], < "emissionRate" : 50, < "offsetRegion" : [0.75, 0.0, 4.25, 5.0], < "particles" : [ < { "particle" : "poisonswoosh1"}, < { "particle" : "poisonswoosh2"}, < { "particle" : "fireswoosh2"}, < { "particle" : "poisonswoosh1"}, < { "particle" : "poisonswoosh2"}, < { "particle" : "fireswoosh2"} < ] < }, < "iceswoosh" : { < "active" : false, < "transformationGroups" : ["swoosh"], < "emissionRate" : 50, < "offsetRegion" : [0.75, 0.0, 4.25, 5.0], < "particles" : [ < { "particle" : "iceswoosh1"}, < { "particle" : "iceswoosh2"}, < { "particle" : "iceswoosh3"}, < { "particle" : "iceswoosh1"}, < { "particle" : "iceswoosh2"}, < { "particle" : "iceswoosh3"} items\active\weapons\other\fireworkgun\fireworkgun.activeitem 33c33 < "baseDps" : 0.1, --- > "baseDps" : 0.33, 42c42 < "knockback" : 0 --- > "knockback" : 10 items\active\weapons\other\flamingdemonsword\flamingdemonsword.activeitem 7,8c7,8 < "description" : "A flaming blade forged from fallen angels..", < "shortdescription" : "Flaming Demon Sword", --- > "description" : "A flaming blade forged from fallen angels.", > "shortdescription" : "Firestorm's Fury", 11c11 < "twoHanded" : false, --- > "twoHanded" : true, 20c20,21 < "bladefullbright" : "flamingdemonswordfullbright.png" --- > "bladefullbright" : "flamingdemonswordfullbright.png", > "muzzleFlash" : "" 24c25,28 < "fire" : [ "/sfx/melee/swing_broadsword_fire1.ogg", "/sfx/melee/swing_broadsword_fire2.ogg", "/sfx/melee/swing_broadsword_fire3.ogg" ] --- > "fire" : [ "/sfx/melee/swing_broadsword_fire1.ogg", "/sfx/melee/swing_broadsword_fire2.ogg", "/sfx/melee/swing_broadsword_fire3.ogg" ], > "fireStart" : [ "/sfx/tech/tech_jetpack_thrust1.ogg" ], > "fireLoop" : [ "/sfx/melee/rocketspear_loop_fire.ogg" ], > "fireEnd" : [ "/sfx/melee/rocketspear_stop_fire.ogg" ] 30c34 < "elementalType" : "physical", --- > "elementalType" : "fire", 36,37c40,41 < "fireTime" : 1.5, < "baseDps" : 7.5, --- > "fireTime" : 1.1, > "baseDps" : 11, 39,41c43,45 < "damageSourceKind" : "broadsword", < "statusEffects" : [ ], < "knockback" : 20, --- > "damageSourceKind" : "firebroadsword", > "statusEffects" : [ "burning" ], > "knockback" : 30, 49c53 < "weaponRotation" : -10, --- > "weaponRotation" : 0, 56c60 < "weaponRotation" : -10, --- > "weaponRotation" : 0, 78a83,112 > } > } > }, > > "muzzleOffset" : [0.0, 4.0], > "aimOffset" : 0.0, > > "altAbilityType" : "flamethrower", > "altAbility" : { > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : true, > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : true, > "allowRotate" : true, > "allowFlip" : true > }, > "cooldown" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : true, > "allowRotate" : true, > "allowFlip" : true items\active\weapons\other\flamingdemonsword\flamingdemonsword.animation 7a8,19 > "firing" : { > "default" : "off", > "states" : { > "off" : {}, > "fire" : { > "frames" : 2, > "cycle" : 0.07, > "mode" : "transition", > "transition" : "off" > } > } > }, 110a123,141 > }, > "muzzleFlash" : { > "properties" : { > "zLevel" : -1, > "centered" : true, > "offset" : [0.75, 0], > "fullbright" : true, > "transformationGroups" : ["weapon"] > }, > > "partStates" : { > "firing" : { > "fire" : { > "properties" : { > "image" : ":." > } > } > } > } 117a149,156 > }, > > "lights" : { > "muzzleFlash" : { > "active" : false, > "position" : [0, 0], > "color" : [90, 90, 0] > } items\active\weapons\other\magnorbs\magnorbs.activeitem 29c29 < "power" : 4, --- > "power" : 2.25, items\active\weapons\other\magnorbs\magnorbs.animation 178c178 < "fire" : [ "/sfx/melee/swing_dagger.ogg" ], --- > "fire" : [ "/sfx/gun/magnorbs_fire8.ogg", "/sfx/gun/magnorbs_fire9.ogg", "/sfx/gun/magnorbs_fire10.ogg" ], 180c180 < "shieldLoop" : ["/sfx/tech/tech_hoverloop.ogg"], --- > "shieldLoop" : ["/sfx/gun/magnorbs_shield_loop2.ogg"], items\active\weapons\ranged\gun.lua 3d2 < require "/scripts/interp.lua" items\active\weapons\ranged\gunfire.lua 0a1,2 > require "/scripts/interp.lua" > 23c25 < if self.fireMode == "primary" --- > if self.fireMode == (self.activatingFireMode or self.abilitySlot) 72c74,75 < self.weapon.weaponOffset = {interp.linear(progress, from[1], 0), interp.linear(progress, from[2], 0)} --- > local to = self.stances.idle.weaponOffset or {0,0} > self.weapon.weaponOffset = {interp.linear(progress, from[1], to[1]), interp.linear(progress, from[2], to[2])} 74,75c77,78 < self.weapon.relativeWeaponRotation = util.toRadians(interp.linear(progress, self.stances.cooldown.weaponRotation, 0)) < self.weapon.relativeArmRotation = util.toRadians(interp.linear(progress, self.stances.cooldown.armRotation, 0)) --- > self.weapon.relativeWeaponRotation = util.toRadians(interp.linear(progress, self.stances.cooldown.weaponRotation, self.stances.idle.weaponRotation)) > self.weapon.relativeArmRotation = util.toRadians(interp.linear(progress, self.stances.cooldown.armRotation, self.stances.idle.armRotation)) 132c135 < end \ No newline at end of file --- > end items\active\weapons\ranged\altabilities\guidedrocket\exmachinarocket.altability 32a33 > "laserGuideLength" : 60, items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.lua 21a22,32 > local rocketTargetPosition = activeItem.ownerAimPosition() > local rocketTargetDirection = nil > > if self.laserGuideLength then > -- Shoot a ray through the rocketTargetPosition and aim the rocket towards > -- the nearest collision > local target = self:findLaserTarget() > rocketTargetPosition = target.position > rocketTargetDirection = target.direction > end > 23c34,35 < world.callScriptedEntity(rocketId, "setTarget", activeItem.ownerAimPosition()) --- > world.callScriptedEntity(rocketId, "setTarget", rocketTargetPosition) > world.callScriptedEntity(rocketId, "setTargetDirection", rocketTargetDirection) 34a47,70 > end > > function GuidedRocket:findLaserTarget() > local ownerPosition = world.entityPosition(activeItem.ownerEntityId()) > local muzzlePosition = vec2.add(ownerPosition, activeItem.handPosition(self.weapon.muzzleOffset)) > > local aimVector = vec2.norm(world.distance(activeItem.ownerAimPosition(), muzzlePosition)) > local lineEnd = vec2.mul(aimVector, self.laserGuideLength) > local blocks = world.collisionBlocksAlongLine(muzzlePosition, vec2.add(muzzlePosition, lineEnd)) > > if #blocks == 0 then > return { direction = aimVector } > end > > local minDistance = self.laserGuideLength > local nearestCollision = nil > for _,block in pairs(blocks) do > local distance = vec2.mag(world.distance(block, muzzlePosition)) > if distance < minDistance then > minDistance = distance > nearestCollision = block > end > end > return { position = nearestCollision } items\active\weapons\ranged\altabilities\sparkles\sparkles.altability 16c16 < "baseDps" : 0, --- > "baseDps" : 1, 21,23c21,22 < "projectileType" : "firework4", < "projectileParameters" : { < "power" : 0.1, --- > "projectileType" : "fireworkgun3", > "projectileParameters" : { items\active\weapons\ranged\flamethrower\flamethrower.activeitem 12c12 < "level" : 3, --- > // "level" : 3, 29a30 > "primaryAbilityType" : "flamethrower", 31,71c32 < "scripts" : [], < "class" : "FlamethrowerAttack", < < "fireTime" : 0.065, < "baseDps" : 9.0, < "energyUsage" : 60, < "inaccuracy" : 0.05, < < "fireType" : "auto", < < "projectileType" : "flamethrower", < "projectileParameters" : { }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < } < } --- > "baseDps" : 9 items\active\weapons\ranged\flamethrower\flamethrower.lua 5d4 < require "/items/active/weapons/ranged/gunfire.lua" 32,66d30 < end < < FlamethrowerAttack = GunFire:new() < < function FlamethrowerAttack:init() < GunFire.init(self) < < self.active = false < end < < function FlamethrowerAttack:update(dt, fireMode, shiftHeld) < GunFire.update(self, dt, fireMode, shiftHeld) < < if self.weapon.currentAbility == self then < if not self.active then self:activate() end < elseif self.active then < self:deactivate() < end < end < < function FlamethrowerAttack:muzzleFlash() < --disable normal muzzle flash < end < < function FlamethrowerAttack:activate() < self.active = true < animator.playSound("fireStart") < animator.playSound("fireLoop", -1) < end < < function FlamethrowerAttack:deactivate() < self.active = false < animator.stopAllSounds("fireStart") < animator.stopAllSounds("fireLoop") < animator.playSound("fireEnd") items\active\weapons\whip\altabilities\energyorb.altability 5c5 < "fireOrb" : [ "/sfx/melee/travelingslash_electric1.ogg" ] --- > "fireOrb" : [ "/sfx/melee/travelingslash_electric1.ogg", "/sfx/melee/travelingslash_electric3.ogg" ] 16c16 < "projectileType" : "whipenergyorb", --- > "projectileType" : "whipshock", 18,20c18,20 < "baseDamage" : 7, < "energyUsage" : 80, < "cooldownTime" : 2.0, --- > "baseDamage" : 2, > "energyUsage" : 120, > "cooldownTime" : 1.5, items\active\weapons\whip\altabilities\energyorb.lua 59c59 < animator.playSound("crack") --- > animator.playSound("fireOrb") items\armors\avian\avian-adventurer\avianadventurer.chest 7,8c7,8 < "description" : "A primitive, but charming breastplate of Avian design.", < "shortdescription" : "Tribal Breastplate", --- > "description" : "A breastplate made of thick boiled leather. Keeps your chest safe!", > "shortdescription" : "Leather Breastplate", items\armors\avian\avian-adventurer\avianadventurer.legs 7,8c7,8 < "description" : "A primitive, but charming loincloth of Avian design.", < "shortdescription" : "Tribal Loincloth", --- > "description" : "Made of a durable and stylish leather, for the discerning adventurer.", > "shortdescription" : "Leather Loincloth", items\armors\avian\avian-commoner\aviancommoner.chest 7,8c7,8 < "description" : "This form-fitting shirt is commonly worn by Avians.", < "shortdescription" : "Commoner's Shirt", --- > "description" : "A simple sleeveless top sewn together from bits of tanned hide.", > "shortdescription" : "Hide Shirt", items\armors\avian\avian-commoner\aviancommoner.legs 7,8c7,8 < "description" : "This simple style of skirt is commonly worn by Avians.", < "shortdescription" : "Commoner's Skirt", --- > "description" : "A plain skirt made of soft tanned hide.", > "shortdescription" : "Hide Skirt", items\armors\avian\avian-fancy\avianfancy.chest 7,8c7,8 < "description" : "A simple breastplate, complemented by an embroidered waistband that is traditionally worn while performing rites to Kluex.", < "shortdescription" : "Ceremonial Breastplate", --- > "description" : "A shirt woven of the finest brown silk - generally reserved for special occasions.", > "shortdescription" : "Ornate Shirt", items\armors\avian\avian-fancy\avianfancy.legs 7,8c7,8 < "description" : "A beaded loincloth, woven out of fine silk. Fancy!", < "shortdescription" : "Ceremonial Loincloth", --- > "description" : "A particularly fancy loincloth. Dry-clean only.", > "shortdescription" : "Ornate Loincloth", items\armors\avian\avian-worker\avianworker.chest 7,8c7,8 < "description" : "This breastplate and waistband pairing are commonly worn by Avian labourers.", < "shortdescription" : "Worker Breastplate", --- > "description" : "This shirt is made of a comfortable, breathable fabric. Perfect for working outside all day!", > "shortdescription" : "Worker Shirt", items\armors\avian\avian-worker\avianworker.legs 7c7 < "description" : "These skirts are commonly worn by Avian labourers.", --- > "description" : "A light, breezy skirt with pockets for tools. Ideal for labourers.", items\armors\human\human-concept\concept.chest 7,8c7,8 < "description" : "A casual shirt.", < "shortdescription" : "Casual Shirt", --- > "description" : "A simple cardigan, in case it gets a bit chilly.", > "shortdescription" : "Casual Cardigan", items\armors\human\human-concept\concept.legs 8,9c8,9 < "description" : "Some casual pants", < "shortdescription" : "Casual Pants", --- > "description" : "They're casual, but not too casual. Just the right amount of casual.", > "shortdescription" : "Casual Trousers", items\armors\human\human-cool\cool.chest 7,8c7,8 < "description" : "A cool jacket, too cool for drycleaning.", < "shortdescription" : "Cool Jacket", --- > "description" : "Wearing this faux-leather jacket fills you with confidence.", > "shortdescription" : "Stylish Jacket", items\armors\human\human-cool\cool.legs 7,8c7,8 < "description" : "Made of real faux-leather. Too cool.", < "shortdescription" : "Cool Pants", --- > "description" : "When you wear these cool bottoms, you feel as though anything is possible.", > "shortdescription" : "Stylish Bottoms", items\armors\human\human-sweatervest\sweatervest.chest 7,8c7,8 < "description" : "A classy sweater vest. It's business casual.", < "shortdescription" : "Work Shirt", --- > "description" : "Your chest is warm, but what of your arms?", > "shortdescription" : "Sweater Vest", items\armors\human\human-sweatervest\sweatervest.legs 8,9c8,9 < "description" : "They're business casual.", < "shortdescription" : "Work Pants", --- > "description" : "These slacks are comfortable and practical, and therefore superior to all other legwear.", > "shortdescription" : "Work Slacks", items\armors\human\human-workout\workout.chest 7,8c7,8 < "description" : "A sweatshirt.. it smells.", < "shortdescription" : "Sweatshirt", --- > "description" : "A light breathable top suitable for working out. No pain, no gain, right?", > "shortdescription" : "Sleeveless Top", items\armors\human\human-workout\workout.legs 7,8c7,8 < "description" : "Sweat pants.. full of sweat.", < "shortdescription" : "Sweat Pants", --- > "description" : "These are perfect whether you're working out or just eating pizza in front of the TV. So versatile!", > "shortdescription" : "Sweatpants", items\armors\other\arenachampion\arenachampion.head 38,39c38,39 < /* RED */ < { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119" }, --- > /* WHITE */ > { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737" }, items\buildscripts\weaponabilities.config 45c45,47 < "pickslash" : "/items/active/weapons/melee/pickaxe/pickslash.altability" --- > "pickslash" : "/items/active/weapons/melee/pickaxe/pickslash.altability", > "flamethrower" : "/items/active/weapons/ranged/altabilities/flamethrower/flamethrower.altability", > "astraltear" : "/items/active/weapons/melee/altabilities/broadsword/astraltear/astraltear.altability" items\generic\crafting\cellmateria.item 7c7 < "shortdescription" : "Cell Materia.", --- > "shortdescription" : "Cell Materia", npcs\bmain.lua 539a540,551 > -- param tag > function primaryWeaponTag(args, output) > args = parseArgs(args, { > tag = nil > }) > if self.primary and root.itemHasTag(self.primary.name, args.tag) then > return true > else > return false > end > end > npcs\cultist.npctype 24c24 < "primary" : [ "npccultistshortsword" ], --- > "primary" : [ "npccultistbroadsword" ], npcs\arena\arenaadvisor1.npctype 9a10,11 > "damageTeamType" : "friendly", > npcs\arena\arenaadvisor2.npctype 9a10,11 > "damageTeamType" : "friendly", > npcs\arena\arenaadvisor3.npctype 9a10,11 > "damageTeamType" : "friendly", > npcs\arena\arenapyro.npctype 86,89c86,89 < "head" : [ { "name" : "arenachampionhead", "parameters" : { "colorIndex" : 0 } } ], < "chest" : [ { "name" : "firelordchest", "parameters" : { "colorIndex" : 4 } } ], < "legs" : [ { "name" : "firelordlegs", "parameters" : { "colorIndex" : 4 } } ], < "primary" : [ "firesword" ], --- > "head" : [ { "name" : "arenachampionhead", "parameters" : { "colorIndex" : 3 } } ], > "chest" : [ { "name" : "firelordchest", "parameters" : { "colorIndex" : 3 } } ], > "legs" : [ { "name" : "firelordlegs", "parameters" : { "colorIndex" : 3 } } ], > "primary" : [ { "name" : "flamingdemonsword", "parameters" : { "primaryAbility" : { "damageConfig" : { "statusEffects" : ["burning", "melting"] } } } } ], npcs\mission\cultistknight.npctype 26c26 < "baseValue" : 40.0 --- > "baseValue" : 15.0 40c40 < "primary" : [ "npccultistshortsword" ] --- > "primary" : [ "npcbow", "npccultistbroadsword" ] 42c42 < ] ] --- > ] ] npcs\story\baron.npctype 59c59 < "missionComplete" : { --- > "finalWaveComplete" : { 62a63,80 > "They'll think twice before they come back here, after a good old whooping like that. Ha ha ha!", > "Relieved. I think my keep is quite safe for now." > ] > } > }, > "bossSpawn" : { > "default" : { > "default" : [ > "Ah, yes, your reward. Well you see, about that...", > "Oh no they're back, and they brought a flying dragon skeleton!", > "A dragon, where did they even find that? We're boned..." > ] > } > }, > "missionComplete" : { > "default" : { > "default" : [ > "Flabbergasted. You destroyed that thing all by yourself?", npcs\story\lanafight.npctype 3c3 < "baseType" : "friendlyguard", --- > "baseType" : "base", 22,24c22 < "chatPortrait" : "/interface/chatbubbles/lana.png:" < }, < --- > "behavior" : "nurufight", 25a24,59 > "personalities" : [ > [1.0, { "personality" : "normal", "reactions" : {} }] > ], > > "reactions" : { > "spontaneous" : [ > [1.0, "patrol"] > ] > }, > > "dialog" : { > "start" : { > "default" : { > "default" : [ > "Hello, soldier. Let's take care of this situation, shall we?" > ] > } > }, > "leave" : { > "default" : { > "default" : [ > "Good work, soldier. I will see you back at the Ark." > ] > } > }, > "attack" : { > "default" : { > "default" : [ > "The target is in my sights!", > "I'm engaging the enemy!", > "Target sighted!" > ] > } > } > } > }, 28,29d61 < < npcs\story\nurufight.npctype 3c3 < "baseType" : "friendlyguard", --- > "baseType" : "base", 22,23c22 < "chatPortrait" : "/interface/chatbubbles/nuru.png:" < }, --- > "behavior" : "nurufight", 24a24,65 > "behaviorConfig" : { > "meleeStandby" : false, > "leapChance" : 1.0 > }, > > "personalities" : [ > [1.0, { "personality" : "normal", "reactions" : {} }] > ], > > "reactions" : { > "spontaneous" : [ > [1.0, "patrol"] > ] > }, > > "dialog" : { > "start" : { > "default" : { > "default" : [ > "These robed huntersss want a fight. Let's show them a bad time, eh?" > ] > } > }, > "leave" : { > "default" : { > "default" : [ > "I'm off, see ya later!" > ] > } > }, > "attack" : { > "default" : { > "default" : [ > "I sssee you!", > "Thisss is my kind of party!", > "You can't hope to beat a hunter like me!", > "Taste my ssspear!" > ] > } > } > } > }, 27d67 < objects\farmables\pearlpea\pearlpeaseed.object 6c6 < "description" : "Pearlpea, I'll need to bite down hard.", --- > "description" : "Pearlpea, you'll need to bite down hard.", projectiles\activeitems\guidedrocket\guidedrocket.lua 10a11,13 > local targetOffset = self.targetDirection > local currentAngle = math.atan(mcontroller.velocity()[2], mcontroller.velocity()[1]) > 12,13c15,18 < local currentAngle = math.atan(mcontroller.velocity()[2], mcontroller.velocity()[1]) < local targetOffset = world.distance(self.targetPosition, mcontroller.position()) --- > targetOffset = world.distance(self.targetPosition, mcontroller.position()) > end > > if targetOffset then 32c37,41 < end \ No newline at end of file --- > end > > function setTargetDirection(direction) > self.targetDirection = direction > end projectiles\guns\grenades\shock\shock.projectile 14c14,15 < "damageKind" : "default" --- > "emitters" : [ "electricswoosh" ], > "damageKind" : "electric" projectiles\throwable\fireworkgun\fireworkgun.projectile 11a12 > "knockback" : 10, 20c21 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, 28c29 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, 36c37 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, 44c45 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, 52c53 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, 60c61 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, 68c69 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, 76c77 < "inheritDamageFactor" : 1.0, --- > "inheritDamageFactor" : 0.25, projectiles\throwable\fireworkgun2\fireworkgun2.projectile 20c20 < "type" : "firework4", --- > "type" : "fireworkgun3", 27c27 < "type" : "firework4", --- > "type" : "fireworkgun3", 34c34 < "type" : "firework4", --- > "type" : "fireworkgun3", 41c41 < "type" : "firework4", --- > "type" : "fireworkgun3", quests\outpost\floranarena1.questtemplate 5,6c5,6 < "text" : "You are sstrong! Floran wantss to sponssor ^green;a challenger in Floran arena^white; to fight the ^green;gladiators^white;. The sshooter is the weak one, but Bruiser will crusssh you, sstay far away. If you accept challenge, ^green;bring me ^orange;Bruiser's ssword^white;. Glorious combat!! Come sspeak when ready to fight.", < "completionText" : "Bruiser's ssword! Here iss your sshare of ^green;prize^white;, and sshiny ^green;trophy^white;. You can keep ssword too^white;.", --- > "text" : "You are sstrong! Floran wantss to sponssor ^green;a challenger in Floran arena^white; to fight the ^green;gladiators^white;. If you accept challenge, ^green;bring me ^orange;Bruiser's ssword^white;. Glorious combat! Come sspeak when ready to fight.", > "completionText" : "Bruiser's ssword! Here iss your share of ^green;prize^white;, and shiny ^green;trophy^white;. You can keep that ssword too.", quests\outpost\floranarena2.questtemplate 5,6c5,6 < "text" : "Next fight iss pet trainer Volo. His pets are strong and fasst. Volo's spirit will be crusshed if you ^green;desstroy his pets^white;, Floran suggestss you sstart with them. Bring ^orange;Volo's rifle^white; here. Come sspeak when ready.", < "completionText" : "Impresssive, Floran hass ^green;some rewardss^white;. Jusst one more battle, the champion!", --- > "text" : "Next fight is pet trainer Volo. He has ^green;trained pets who he will hide behind^white;, Floran suggestss you sstart with them. Bring ^orange;Volo's rifle^white; here if you survive. Come sspeak when ready.", > "completionText" : "Impresssive, Floran has ^green;some rewardss^white;. One battle remains, the champion!", quests\outpost\floranarena3.questtemplate 5,6c5,6 < "text" : "Templar Inferno iss champion over Floran arena, hass burned all challengerss. Use ^orange;burn sspray^white;, but ^green;not even burn resist^white; can stop burnss from his ssword. ^green;Fire makes his attacks stronger^white;, keep him away from trapss. Return here with ^orange;Inferno's Helmet^white;. Win and you are arena champion! Sspeak when ready.", < "completionText" : "Arena champion, here are ^green;winnings^white;. Floran will long tell taless of your battless!", --- > "text" : "Templar Inferno is champion over the arena, he has burned all challengers. ^orange;Burn spray^white; helpss, but ^green;not even that ^white; can stop the burn from his ssword. ^green;Fire makes his attacks stronger^white;, keep him away from trapss. Win and you are arena champion, return here with ^orange;his helmet^white;. Sspeak when ready.", > "completionText" : "Arena champion! Floran will long tell taless of your battle! Also take ^orange;Inferno's blade^white;, it's awesome power can only be controlled by true championss.", 10c10 < [ [ "markerwallplaque3", 1 ], [ "rewardbag", 1 ] ] --- > [ [ "markerwallplaque3", 1 ], [ "flamingdemonsword", 1 ] ] quests\outpost\techscientist1.questtemplate 5c5 < "text" : "I've been developing a technology that enables a user to swiftly dash from one point to another. I'm just lacking a few crucial components for my prototype. ^green;Could you bring me ^orange;10 Tungsten Bars ^green;and a ^orange;Sharpenened Claw^green;?", --- > "text" : "I've been developing a technology that enables a user to swiftly dash from one point to another. I'm just lacking a few crucial components for my prototype. ^green;Could you bring me ^orange;10 Tungsten Bars ^green;and a ^orange;Sharpened Claw^green;?", stagehands\coordinator.stagehand 40a41,45 > }, > "npcbow" : { > "minRange" : 10, > "maxRange" : 45, > "forceMoveRange" : 40 stagehands\mission\glitchmissionmanager.lua 8a9,11 > message.setHandler("bossWave", function() > table.insert(self.coroutines, coroutine.create(bossWave)) > end) 29c32 < local messageString = config.getParameter("radioMessages." .. key) --- > local messageConfig = config.getParameter("radioMessages." .. key) 32c35 < portraitImage = config.getParameter("radioMessagePortrait"), --- > portraitImage = messageConfig[2], 35,36c38,39 < senderName = config.getParameter("radioMessageName"), < text = messageString --- > senderName = messageConfig[3], > text = messageConfig[1] 115c118 < local enemies = spawnWave("gatespawn", { { entityType = "cultist", count = 3} }) --- > enemies = spawnWave("gatespawn", { { entityType = "cultist", count = 3} }) 124,143c127,129 < enemies = spawnWave("campspawn", { { entityType = "cultist", count = 7} }) < radioMessage("lastWave") < util.wait(6.0) < util.appendLists(enemies, spawnWave("midfieldspawn", { { entityType = "cultist", count = 3} })) < util.wait(6.0) < util.appendLists(enemies, spawnWave("gatespawn", { { entityType = "cultist", count = 3} })) < while #enemies > 0 do < enemies = util.filter(enemies, world.entityExists) < coroutine.yield() < end < util.wait(6.0) < util.appendLists(enemies, spawnWave("gatespawn", { { entityType = "cultist", count = 3} })) < util.wait(6.0) < util.appendLists(enemies, spawnWave("midfieldspawn", { { entityType = "cultist", count = 3} })) < util.wait(6.0) < util.appendLists(enemies, spawnWave("campspawn", { { entityType = "cultist", count = 3} })) < while #enemies > 0 do < enemies = util.filter(enemies, world.entityExists) < coroutine.yield() < end --- > radioMessage("reinforcements") > > util.wait(5.0) 144a131,155 > local nuruId = world.spawnNpc(world.entityPosition(world.loadUniqueEntity("nuruspawn")), "floran", "nurufight", world.threatLevel()) > world.callScriptedEntity(nuruId, "status.addEphemeralEffect", "beamin") > util.wait(3.0) > local lanaId = world.spawnNpc(world.entityPosition(world.loadUniqueEntity("lanaspawn")), "floran", "lanafight", world.threatLevel()) > world.callScriptedEntity(lanaId, "status.addEphemeralEffect", "beamin") > > util.wait(5.0) > > local spawns = { > "campspawn", > "midfieldspawn", > "gatespawn" > } > for i = 1, 5 do > shuffle(spawns) > for _,spawnPoint in pairs(spawns) do > enemies = util.mergeLists(enemies, spawnWave(spawnPoint, { { entityType = "cultist", count = 3} })) > util.wait(4.0) > end > while #enemies > 0 do > enemies = util.filter(enemies, world.entityExists) > coroutine.yield() > end > util.wait(4.0) > end 149a161,180 > util.wait(2.0) > > radioMessage("finalWaveComplete") > > util.wait(2.0) > > world.entityQuery({self.missionArea[1], self.missionArea[2]}, {self.missionArea[3], self.missionArea[4]}, { > includedTypes = { "npc" }, > callScript = "notify", > callScriptArgs = { { type = "reinforcementsLeave", source = entity.id() } } > }) > > local baron = world.loadUniqueEntity(config.getParameter("baronUuid")) > world.sendEntityMessage(baron, "notify", { > type = "lastWaveComplete", > sourceId = entity.id() > }) > end > > function bossWave() 169c200 < radioMessage("bossWave") --- > 183,184d213 < -- End of the mission < radioMessage("missionComplete") 235c264,265 < position = vec2.add(position, {math.random(-5, 5), 0}) --- > local spawnPositionRange = config.getParameter("spawnPositionRange", 5) > position = vec2.add(position, {math.random(spawnPositionRange[1], spawnPositionRange[2]), 0}) 238c268,270 < table.insert(enemies, world.spawnNpc(position, "human", "cultistknight", world.threatLevel())) --- > local npcId = world.spawnNpc(position, "human", "cultistknight", world.threatLevel()) > table.insert(enemies, npcId) > world.callScriptedEntity(npcId, "status.addEphemeralEffect", "beamin") stagehands\mission\glitchmissionmanager.stagehand 17,18c17,18 < "radioMessagePortrait" : "/interface/chatbubbles/baron.png", < "radioMessageName" : "Baron", --- > "spawnPositionRange" : [-5, 5], > 20,27c20,26 < "firstWave" : "Alarmed! A few of these scoundrels are approaching from a camp in the outskirts of the keep. Hunt them down and kill them!", < "firstBallista" : "They have brought war machines! Take out that ballista before it destroys my delicately constructed walls.", < "wallAttacked" : "Oh no, my delicately constructed walls!", < "additionalBallista" : "Blast! Another wooden bringer of destruction has arrived. Wreck it before it wrecks us!", < "firstAirforce" : "More cultists have appeared near the gates. Wait, what's that? There are more of them... in the skies!", < "lastWave" : "Alert! More cultists are approaching. It seems to be quite a lot of them!", < "bossWave" : "They've brought a flying bone dragon! Wait what? There is no such thing as a dragon!", < "missionComplete" : "Relieved. I believe that's the lot of them. Come back to the keep and speak to me." --- > "firstWave" : [ "Alarmed! A few of these scoundrels are approaching from a camp in the outskirts of the keep. Hunt them down and kill them!", "/interface/chatbubbles/baron.png", "Baron" ], > "firstBallista" : [ "They have brought war machines! Take out that ballista before it destroys my delicately constructed walls.", "/interface/chatbubbles/baron.png", "Baron" ], > "wallAttacked" : [ "Oh no, my delicately constructed walls!", "/interface/chatbubbles/baron.png", "Baron" ], > "additionalBallista" : [ "Blast! Another wooden bringer of destruction has arrived. Wreck it before it wrecks us!", "/interface/chatbubbles/baron.png", "Baron" ], > "firstAirforce" : [ "More cultists have appeared near the gates. Wait, what's that? There are more of them... in the skies!", "/interface/chatbubbles/baron.png", "Baron" ], > "reinforcements" : [ "Ehm, hello? Can you hear me? We're seeing a lot of those cultist people incoming to your location. Don't worry! We can help.", "/interface/chatbubbles/koichi.png", "Koichi" ], > "finalWaveComplete" : [ "Relieved. I believe that's the lot of them. Come back to the keep and speak to me.", "/interface/chatbubbles/baron.png", "Baron" ]