FILES ----- worldserver.config behaviors\monsters\modular\targeting.behavior behaviors\monsters\modular\actions\windup.behavior behaviors\monsters\modular\movement\crawlapproach.behavior behaviors\monsters\modular\movement\walkapproach.behavior behaviors\npc\unique\esther.behavior cinematics\intro\introstage.cinematic cinematics\story\finale\finale.cinematic [NEW] interface\inventory\itembordercommon.png [NEW] interface\inventory\itemborderessential.png [NEW] interface\inventory\itemborderlegendary.png [NEW] interface\inventory\itemborderrare.png [NEW] interface\inventory\itemborderuncommon.png interface\inventory\slothighlight.png interface\itemdescriptions\armor.itemdescription interface\itemdescriptions\base.itemdescription interface\itemdescriptions\baseaugment.itemdescription interface\itemdescriptions\bow.itemdescription interface\itemdescriptions\codex.itemdescription interface\itemdescriptions\container.itemdescription interface\itemdescriptions\door.itemdescription interface\itemdescriptions\eppaugment.itemdescription interface\itemdescriptions\fistweapon.itemdescription interface\itemdescriptions\food.itemdescription interface\itemdescriptions\gun.itemdescription interface\itemdescriptions\object.itemdescription interface\itemdescriptions\petcollar.itemdescription interface\itemdescriptions\seed.itemdescription interface\itemdescriptions\shield.itemdescription interface\itemdescriptions\staff.itemdescription interface\itemdescriptions\sword.itemdescription interface\itemdescriptions\tool.itemdescription interface\quests\questlog\tracked.png interface\questtracker\expandedframetop.png interface\questtracker\frame.png interface\windowconfig\playerinventory.config items\active\grapplinghooks\grapplinghook.lua items\active\grapplinghooks\grapplinghookanimation.lua items\active\unsorted\oredetector\cavedetector.activeitem items\active\unsorted\oredetector\oredetector.activeitem [NEW] items\active\weapons\bossdrop\dragonhead\default.frames [NEW] items\active\weapons\bossdrop\dragonhead\dragonfire.weaponability [NEW] items\active\weapons\bossdrop\dragonhead\dragonhead.activeitem [NEW] items\active\weapons\bossdrop\dragonhead\dragonhead.animation [NEW] items\active\weapons\bossdrop\dragonhead\dragonhead.png [NEW] items\active\weapons\bossdrop\dragonhead\dragonheadfullbright.png [NEW] items\active\weapons\bossdrop\dragonhead\dragonheadicon.png [NEW] items\active\weapons\bossdrop\kluexstaff\kluexstaff.activeitem [NEW] items\active\weapons\bossdrop\kluexstaff\kluexstaff.animation [NEW] items\active\weapons\bossdrop\kluexstaff\kluexstaff.png [NEW] items\active\weapons\bossdrop\kluexstaff\staffglow.frames [NEW] items\active\weapons\bossdrop\kluexstaff\staffglow.png [NEW] items\active\weapons\bossdrop\kluexstaff\stone.png items\active\weapons\bossdrop\soluskatana\soluskatana.activeitem items\active\weapons\bossdrop\soluskatana\soluskatana.animation [NEW] items\active\weapons\melee\abilities\broadsword\kunaiblast\kunaiblast.lua items\active\weapons\melee\abilities\broadsword\kunaiblast\kunaiblast.weaponability items\active\weapons\melee\broadsword\swoosh\solusswoosh.png items\active\weapons\protectorate\feroziumstaff\feroziumstaff.png items\active\weapons\protectorate\feroziumstaff\stone.png [NEW] items\active\weapons\staff\abilities\effectzone\kluexzone.weaponability items\armors\floran\floran-tier5separator\icons.png items\armors\protectorate\protectorateshirt\protectorateshirt.chest items\armors\protectorate\protectoratevest\protectoratevest.chest items\buildscripts\weaponabilities.config items\tools\painttool.painttool items\tools\wiretool.wiretool items\tools\miningtools\beamaxe.beamaxe items\tools\miningtools\beamaxex.beamaxe monsters\boss\penguinminiufo\penguinminiufo.lua monsters\boss\penguinminiufo\penguinminiufo.monstertype monsters\boss\penguinufo\skills\uforeinforcementsattack.lua monsters\crawlers\crustoise\crustoise.monstertype monsters\crawlers\iguarmor\iguarmor.animation monsters\crawlers\iguarmor\iguarmor.monstertype monsters\crawlers\oculob\oculob.monstertype monsters\crawlers\pulpin\pulpin.monstertype monsters\crawlers\snaggler\snaggler.monstertype monsters\crawlers\tentaclecrawler\tentaclecrawler.monstertype monsters\crawlers\tintic\tintic.monstertype monsters\crawlers\triplod\triplod.monstertype monsters\flyers\tentaclegnat\tentaclegnat.animation objects\actionfigure\anglure\anglureaf.object objects\actionfigure\dreadwing\dreadwingaf.object objects\actionfigure\mandraflora\mandrafloraaf.object objects\avian\feathers1\feathers1.object objects\generic\coppersupport\coppersupport.object objects\generic\wooddoor\wooddoor.object objects\glitch\hourglass\hourglass.object objects\glitch\trashbag\trashbag.object objects\glitch\wallpipe\wallpipe.object objects\hoard\grail\grail.object objects\hoard\woodencrategoldfilled\woodencrategoldfilled.object objects\outpost\outpostairlock\outpostairlock.object objects\outpost\outpostairlocklarge\outpostairlocklarge.object objects\outpost\outpostcabinet\outpostcabinet.object objects\outpost\outpostchair\outpostchair.object objects\outpost\outpostdesk\outpostdesk.object objects\outpost\outpostlocker\outpostlocker.object objects\outpost\outpostradardish\outpostradardish.object objects\outpost\shipyardjunk\shipyardjunk.object objects\outpost\signstore\signdispenser.object objects\ship\researchstation\researchstation.object objects\spawner\colonydeed\colonydeed.lua objects\teleporter\scienceteleporter\scienceteleporter.object objects\teleporter\stoneteleporter\stoneteleporter.object objects\themed\farm\kitchentable\kitchentable.object objects\themed\retroscifi\retroscificabinet\retroscificabinet.object objects\themed\saloon\salooncabinet\salooncabinet.object objects\wreck\wreckboiler\wreckboiler.object objects\wreck\wreckchair\wreckchair.object objects\wreck\wreckdoor\wreckdoor.object objects\wreck\wreckgenerator\wreckgenerator.object objects\wreck\wreckvendingmachine\wreckvendingmachine.object objects\wreck\wreckwiresceiling\wreckwiresceiling.object parallax\images\tile\brainsfront\base\1.png parallax\images\tile\stalagtentacles\base\1.png [NEW] parallax\images\tile\stalagtentacles\base\2.ase [NEW] parallax\images\tile\stalagtentacles\base\old.png parallax\underground\undergroundtentacle.parallax [NEW] particles\kluexstaff.particle plants\bushes\ground\midnightstone\midnightstone.bush [NEW] projectiles\activeitems\dragonfire\dragonfirelarge.frames [NEW] projectiles\activeitems\dragonfire\dragonfirelarge.png [NEW] projectiles\activeitems\dragonfire\dragonfirelarge.projectile [NEW] projectiles\activeitems\dragonfire\dragonfiresmall.frames [NEW] projectiles\activeitems\dragonfire\dragonfiresmall.png [NEW] projectiles\activeitems\dragonfire\dragonfiresmall.projectile [NEW] projectiles\activeitems\staff\kluexzone\default.frames [NEW] projectiles\activeitems\staff\kluexzone\kluexzone.png [NEW] projectiles\activeitems\staff\kluexzone\kluexzone.projectile projectiles\explosions\energyshardexplosion\energyshardexplosion.projectile projectiles\explosions\energyshardexplosion\playerenergyshardexplosion.config quests\generated\pools\hatadjectives.config quests\generated\pools\hatrecipes.config quests\generated\pools\specieshats.config quests\outpost\museumcurator6.questtemplate quests\outpost\outpostclue.questtemplate quests\scripts\story\destroyruin.lua quests\story\destroyruin.questtemplate quests\story\floran_mission1.questtemplate radiomessages\missions.radiomessages sfx\cinematics\finale\finale_music3.ogg spawntypes\uniques.spawntypes stats\effects\maxprotection\highprotection.statuseffect [NEW] stats\effects\rage\staffrage.statuseffect DIFFS ----- worldserver.config 88a89,90 > "tileEntityBreakCheckInterval" : 0.2, > behaviors\monsters\modular\targeting.behavior 3d2 < "description": "", 5,6d3 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", 8c5 < "/scripts/behavior/bdata.lua", --- > "/scripts/behavior/bdata.lua", 10a8,9 > "/scripts/actions/query.lua", > "/scripts/actions/world.lua", 107,112c106 < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, --- > "parameters": {}, 319a314,322 > "title": "listContains", > "type": "action", > "name": "listContains", > "parameters": { > "list": "outOfSightTargets", > "entity": "filterItem" > } > }, > { 416,424d418 < "title": "entityInRange", < "type": "action", < "name": "entityInRange", < "parameters": { < "entity": "filterItem", < "range": "" < } < }, < { 466a461,469 > "title": "entityInRange", > "type": "action", > "name": "entityInRange", > "parameters": { > "entity": "filterItem", > "range": "" > } > }, > { 507,508c510,511 < "list": "outOfSightTargets", < "entity": "filterItem" --- > "entity": "filterItem", > "list": "outOfSightTargets" behaviors\monsters\modular\actions\windup.behavior 7c7,8 < "/scripts/actions/query.lua", --- > "/scripts/actions/movement.lua", > "/scripts/actions/sensor.lua", 9,10d9 < "/scripts/actions/sensor.lua", < "/scripts/actions/monster.lua", 12,13d10 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 15c12 < "/scripts/actions/movement.lua", --- > "/scripts/actions/monster.lua", 230,233c227,263 < "title": "groundCollision", < "type": "action", < "name": "groundCollision", < "parameters": {} --- > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "gravityEnabled", > "type": "action", > "name": "gravityEnabled", > "parameters": {} > }, > { > "title": "groundCollision", > "type": "action", > "name": "groundCollision", > "parameters": {} > } > ] > }, > { > "title": "boundsCollision", > "type": "action", > "name": "boundsCollision", > "parameters": {} > } > ] behaviors\monsters\modular\movement\crawlapproach.behavior 7d6 < "/scripts/actions/entity.lua", 9a9 > "/scripts/actions/entity.lua", 36a37,124 > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "entityAngle", > "type": "action", > "name": "entityAngle", > "parameters": { > "entity": "target", > "heading": "heading", > "position": "self" > }, > "output": { > "angle": "targetAngle", > "direction": "targetDirection" > } > }, > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "vector": [ > 1, > 0 > ], > "angle": "targetAngle" > }, > "output": { > "vector": "toTarget" > } > }, > { > "title": "breakVector", > "type": "action", > "name": "breakVector", > "parameters": { > "vector": "toTarget" > }, > "output": { > "y": "toTargetY" > } > }, > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": "toTargetY", > "second": 0 > } > } > } > ] > }, > { > "title": "entityDirection", > "type": "action", > "name": "entityDirection", > "parameters": { > "entity": "self", > "target": "target" > }, > "output": { > "direction": "targetDirection" > } > } > ] behaviors\monsters\modular\movement\walkapproach.behavior 5,8d4 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/math.lua", 10,11d5 < "/scripts/actions/monster.lua", < "/scripts/actions/animator.lua", 13c7,8 < "/monsters/monster.lua", --- > "/scripts/actions/math.lua", > "/scripts/actions/animator.lua", behaviors\npc\unique\esther.behavior 5,11c5 < "/scripts/actions/notification.lua", < "/scripts/actions/world.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/npc.lua" --- > "/scripts/actions/npc.lua" 25,93d18 < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "receivedNotification", < "type": "action", < "name": "receivedNotification", < "parameters": { < "type": "humanArtifact" < } < }, < { < "title": "setUniverseFlag", < "type": "action", < "name": "setUniverseFlag", < "parameters": { < "flag": "final_gate_key" < } < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "receivedNotification", < "type": "action", < "name": "receivedNotification", < "parameters": { < "type": "arkOpened" < } < }, < { < "title": "logInfo", < "type": "action", < "name": "logInfo", < "parameters": { < "text": "Esther saw you open the ark" < } < }, < { < "title": "sequentialdialog", < "type": "module", < "name": "sequentialdialog", < "parameters": { < "dialogWaitTime": 8, < "dialogEndWait": 2, < "dialogKey": "dialog.arkOpened", < "dialogTarget": "player" < } < } < ] < }, cinematics\intro\introstage.cinematic 4c4 < "skippable" : false, --- > "skippable" : true, 1218c1218 < "startTime" : 8, --- > "startTime" : 7, 1238c1238 < "timecode" : 39, --- > "timecode" : 40, 1242c1242 < "timecode" : 39.5, --- > "timecode" : 40.5, 1251c1251 < "startTime" : 8.5, --- > "startTime" : 7.5, 1279c1279 < "timecode" : 1.25, --- > "timecode" : 2.2, 1690,1691c1690,1691 < "timecode" : 8.8, < "endTimecode" : 9.75, --- > "timecode" : 7.8, > "endTimecode" : 9.7, cinematics\story\finale\finale.cinematic 4c4 < "skippable" : true, --- > "skippable" : false, 16c16 < "pan" : [-1, 0] --- > "pan" : [-0.1, 0] 21c21 < "pan" : [1, 0] --- > "pan" : [0.1, 0] 26c26 < "pan" : [-1, 0] --- > "pan" : [-0.1, 0] 31c31 < "pan" : [1, 0] --- > "pan" : [0.1, 0] 36c36 < "pan" : [-1, 0] --- > "pan" : [-0.2, 0] 41c41 < "pan" : [1, 0] --- > "pan" : [0.2, 0] 46c46 < "pan" : [-1, 0] --- > "pan" : [-0.2, 0] 51c51 < "pan" : [1, 0] --- > "pan" : [0.2, 0] 56c56 < "pan" : [-1, 0] --- > "pan" : [-0.3, 0] 61c61 < "pan" : [1, 0] --- > "pan" : [0.3, 0] 66c66 < "pan" : [-1, 0] --- > "pan" : [-0.3, 0] 71c71 < "pan" : [1, 0] --- > "pan" : [0.3, 0] 76c76 < "pan" : [-1, 0] --- > "pan" : [-0.4, 0] 81c81 < "pan" : [1, 0] --- > "pan" : [0.4, 0] 86c86 < "pan" : [-1, 0] --- > "pan" : [-0.4, 0] 91c91,96 < "pan" : [1, 0] --- > "pan" : [0.4, 0] > }, > { > "timecode" : 2.65, > "zoom" : 1.0, > "pan" : [-1, 0] 95a101,105 > "pan" : [1, 0] > }, > { > "timecode" : 2.75, > "zoom" : 1.0, 376c386 < "pan" : [-2.05, 0] --- > "pan" : [-2.00, 0] 381c391 < "pan" : [2.10, 0] --- > "pan" : [2.0, 0] 386c396 < "pan" : [-2.15, 0] --- > "pan" : [-2.0, 0] 391c401 < "pan" : [2.20, 0] --- > "pan" : [2.0, 0] 396c406 < "pan" : [-2.25, 0] --- > "pan" : [-2.0, 0] 401c411 < "pan" : [2.30, 0] --- > "pan" : [2.0, 0] 406c416 < "pan" : [-2.35, 0] --- > "pan" : [-2.0, 0] 411c421 < "pan" : [2.4, 0] --- > "pan" : [2.0, 0] 416c426 < "pan" : [-2.45, 0] --- > "pan" : [-2.0, 0] 421c431 < "pan" : [2.5, 0] --- > "pan" : [2.05, 0] 426c436 < "pan" : [-2.55, 0] --- > "pan" : [-2.10, 0] 431c441 < "pan" : [2.60, 0] --- > "pan" : [2.15, 0] 436c446 < "pan" : [-2.65, 0] --- > "pan" : [-2.20, 0] 441c451 < "pan" : [2.70, 0] --- > "pan" : [2.25, 0] 446c456 < "pan" : [-2.75, 0] --- > "pan" : [-2.30, 0] 451c461 < "pan" : [2.80, 0] --- > "pan" : [2.35, 0] 456c466 < "pan" : [-2.85, 0] --- > "pan" : [-2.40, 0] 461c471 < "pan" : [2.90, 0] --- > "pan" : [2.45, 0] 466c476 < "pan" : [-2.95, 0] --- > "pan" : [-2.50, 0] 471c481 < "pan" : [3.00, 0] --- > "pan" : [2.60, 0] 476c486 < "pan" : [-3.10, 0] --- > "pan" : [-2.75, 0] 481c491 < "pan" : [3.20, 0] --- > "pan" : [2.95, 0] 486c496 < "pan" : [-3.30, 0] --- > "pan" : [-3.20, 0] 491c501 < "pan" : [3.40, 0] --- > "pan" : [3.50, 0] 496c506 < "pan" : [-3.50, 0] --- > "pan" : [-3.85, 0] 501c511 < "pan" : [3.60, 0] --- > "pan" : [4.25, 0] 506c516 < "pan" : [-3.70, 0] --- > "pan" : [-4.70, 0] 511c521 < "pan" : [3.80, 0] --- > "pan" : [5.20, 0] 516c526 < "pan" : [-3.90, 0] --- > "pan" : [-5.75, 0] 521c531 < "pan" : [4.00, 0] --- > "pan" : [6.35, 0] 526c536 < "pan" : [-4.10, 0] --- > "pan" : [-7.0, 0] 531c541 < "pan" : [4.20, 0] --- > "pan" : [7.70, 0] 536c546 < "pan" : [-4.30, 0] --- > "pan" : [-8.45, 0] 541c551 < "pan" : [4.40, 0] --- > "pan" : [9.25, 0] 546c556 < "pan" : [-4.50, 0] --- > "pan" : [-10.10, 0] 551c561 < "pan" : [4.60, 0] --- > "pan" : [11.0, 0] 556c566 < "pan" : [-4.70, 0] --- > "pan" : [-11.95, 0] 561c571 < "pan" : [4.80, 0] --- > "pan" : [12.95, 0] 566c576 < "pan" : [-3.95, 0] --- > "pan" : [-14.00, 0] 571c581 < "pan" : [4.00, 0] --- > "pan" : [15.10, 0] 576c586 < "pan" : [-4.20, 0] --- > "pan" : [-16.25, 0] 581c591 < "pan" : [4.40, 0] --- > "pan" : [17.45, 0] 586c596 < "pan" : [-4.60, 0] --- > "pan" : [-18.70, 0] 591c601 < "pan" : [4.80, 0] --- > "pan" : [20.00, 0] 596c606 < "pan" : [-5.00, 0] --- > "pan" : [-20.00, 0] 601c611 < "pan" : [5.20, 0] --- > "pan" : [20.00, 0] 606c616 < "pan" : [-5.40, 0] --- > "pan" : [-20.00, 0] 611c621 < "pan" : [5.60, 0] --- > "pan" : [20.00, 0] 616c626 < "pan" : [-5.80, 0] --- > "pan" : [-20.00, 0] 621c631 < "pan" : [6.00, 0] --- > "pan" : [20.00, 0] 626c636 < "pan" : [-6.20, 0] --- > "pan" : [-20.00, 0] 631c641 < "pan" : [6.40, 0] --- > "pan" : [20.00, 0] 636c646 < "pan" : [-6.60, 0] --- > "pan" : [-20.00, 0] 641c651 < "pan" : [6.80, 0] --- > "pan" : [20.00, 0] 646c656 < "pan" : [-7.00, 0] --- > "pan" : [-20.00, 0] 651c661 < "pan" : [7.20, 0] --- > "pan" : [20.00, 0] 656c666 < "pan" : [-7.40, 0] --- > "pan" : [-20.00, 0] 661c671 < "pan" : [7.60, 0] --- > "pan" : [20.00, 0] 666c676 < "pan" : [-7.80, 0] --- > "pan" : [-20.00, 0] 1295c1305 < "position" : [590, 220] --- > "position" : [590, 224] 1447c1457 < "zoom" : 10, --- > "zoom" : 5, 3161c3171 < "zoom" : 10, --- > "zoom" : 5, 3825c3835 < "endTime" : 300, --- > "endTime" : 224, 3855c3865 < "position" : [220, 280] --- > "position" : [224, 280] 3885c3895 < "position" : [220, 280] --- > "position" : [224, 280] 3915c3925 < "position" : [220, 280] --- > "position" : [224, 280] 3945c3955 < "position" : [220, 280] --- > "position" : [224, 280] 3975c3985 < "position" : [220, 280] --- > "position" : [224, 280] 4005c4015 < "position" : [220, 280] --- > "position" : [224, 280] 4035c4045 < "position" : [220, 280] --- > "position" : [224, 280] 4065c4075 < "position" : [220, 280] --- > "position" : [224, 280] 4095c4105 < "position" : [220, 280] --- > "position" : [224, 280] 4125c4135 < "position" : [220, 280] --- > "position" : [224, 280] 5718c5728 < "endTime" : 498, --- > "endTime" : 224, 5742c5752 < "endTime" : 247, --- > "endTime" : 224, 5763,5770d5772 < }, < { < "timecode" : 12, < "alpha" : 1.0 < }, < { < "timecode" : 13, < "alpha" : 0 5778c5780 < "endTime" : 498, --- > "endTime" : 224, 5794,5801d5795 < }, < { < "timecode" : 12, < "alpha" : 1.0 < }, < { < "timecode" : 13, < "alpha" : 0 5808c5802 < "endTime" : 498, --- > "endTime" : 224, 5824,5831d5817 < }, < { < "timecode" : 12, < "alpha" : 1.0 < }, < { < "timecode" : 13, < "alpha" : 0 5840c5826 < "endTime" : 498, --- > "endTime" : 224, 5858c5844 < "endTime" : 498, --- > "endTime" : 224, 5871a5858,5890 > }, > > // --------------------------------------------------------------------------------------------------------------------- black foreground dip > > { > "startTime" : 206.5, > "endTime" : 230, > "drawables" : [ > { > "image" : "/cinematics/story/black.png" > } > ], > "keyframes" : [ > { > "timecode" : 0, > "alpha" : 0, > "zoom" : 5, > "position" : [480, 350], > "frame" : 0 > }, > { > "timecode" : 14, > "alpha" : 0 > }, > { > "timecode" : 17, > "alpha" : 1 > }, > { > "timecode" : 18, > "alpha" : 1 > } > ] 5881a5901 > "endTimecode" : 16.0, 5886a5907 > "endTimecode" : 31, 5898a5920 > "endTimecode" : 81, 5924a5947 > "endTimecode" : 224.5, interface\itemdescriptions\armor.itemdescription 46c46,48 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\base.itemdescription 53c53,55 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\baseaugment.itemdescription 53c53,55 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\bow.itemdescription 95c95,97 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\codex.itemdescription 53c53,55 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\container.itemdescription 60c60,62 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\door.itemdescription 46c46,48 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\eppaugment.itemdescription 54c54,56 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\fistweapon.itemdescription 83,84c83,86 < "backingImage" : "/interface/inventory/portrait.png" < }, --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true > }, interface\itemdescriptions\food.itemdescription 53c53,55 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\gun.itemdescription 110c110,112 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\object.itemdescription 53c53,55 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\petcollar.itemdescription 54c54,56 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\seed.itemdescription 46c46,48 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\shield.itemdescription 71,72c71,74 < "backingImage" : "/interface/inventory/portrait.png" < }, --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true > }, interface\itemdescriptions\staff.itemdescription 98c98,100 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\sword.itemdescription 98c98,100 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\itemdescriptions\tool.itemdescription 46c46,48 < "backingImage" : "/interface/inventory/portrait.png" --- > "backingImage" : "/interface/inventory/portrait.png", > "showRarity" : false, > "showBackingImageWhenFull" : true interface\windowconfig\playerinventory.config 241c241 < "tooltipText" : "Head Costume" --- > "tooltipText" : "Head Cosmetic" 249c249 < "tooltipText" : "Chest Costume" --- > "tooltipText" : "Chest Cosmetic" 257c257 < "tooltipText" : "Leg Costume" --- > "tooltipText" : "Leg Cosmetic" 265c265 < "tooltipText" : "Back Costume" --- > "tooltipText" : "Back Cosmetic" items\active\grapplinghooks\grapplinghook.lua 164a165,166 > > activeItem.setScriptedAnimationParameter("ropeOffset", self.ropeOffset) 170c172 < activeItem.setScriptedAnimationParameter("p" .. i, world.distance(self.rope[i], position)) --- > activeItem.setScriptedAnimationParameter("p" .. i, self.rope[i]) items\active\grapplinghooks\grapplinghookanimation.lua 6c6 < local lastPoint = activeItemAnimation.animationParameter("p1") --- > local lastPoint = activeItemAnimation.handPosition(activeItemAnimation.animationParameter("ropeOffset")) 12a13,14 > local position = activeItemAnimation.ownerPosition() > local relativeNextPoint = world.distance(nextPoint, position) 14,15c16,17 < position = activeItemAnimation.ownerPosition(), < line = {lastPoint, nextPoint}, --- > position = position, > line = {lastPoint, relativeNextPoint}, 20c22 < lastPoint = nextPoint --- > lastPoint = relativeNextPoint items\active\unsorted\oredetector\cavedetector.activeitem 23c23 < "scriptDelta" : 3, --- > "scriptDelta" : 1, items\active\unsorted\oredetector\oredetector.activeitem 23c23 < "scriptDelta" : 3, --- > "scriptDelta" : 1, items\active\weapons\bossdrop\soluskatana\soluskatana.activeitem 35c35 < "primaryAbilityType" : "soluscombo", --- > "primaryAbilityType" : "broadswordcombo", 41,42c41,51 < "windup1" : { < "duration" : 0.15 --- > "fire1" : { > "duration" : 0.05 > }, > "wait1" : { > "duration" : 0.1 > }, > "fire2" : { > "duration" : 0.1 > }, > "wait2" : { > "duration" : 0.1 items\active\weapons\bossdrop\soluskatana\soluskatana.animation 144c144 < "damageArea" : [[-5, 2], [-2.5, 3], [1, 3], [4, 1.75], [5, -0.25], [5, -2.25], [4, -3.25], [0, -2.5]] --- > "damageArea" : [[-5, 2], [-2.5, 3], [1, 3], [4, 1.75], [5, -0.25], [4.5, -2.25], [2.5, -2.75], [0.5, -2.75]] items\active\weapons\melee\abilities\broadsword\kunaiblast\kunaiblast.weaponability 5,10c5 < "physicalTravelSlash" : [ "/sfx/melee/travelingslash_fire1.ogg" ], < "fireTravelSlash" : [ "/sfx/melee/travelingslash_fire1.ogg" ], < "iceTravelSlash" : [ "/sfx/melee/travelingslash_ice2.ogg" ], < // "electricTravelSlash" : [ "/sfx/melee/travelingslash_electric1.ogg", "/sfx/melee/travelingslash_electric2.ogg", "/sfx/melee/travelingslash_electric3.ogg" ], < "electricTravelSlash" : [ "/sfx/melee/travelingslash_electric4.ogg" ], < "poisonTravelSlash" : [ "/sfx/melee/travelingslash_poison2.ogg" ] --- > "fireKunai" : [ "/sfx/gun/plasma_pistol1.ogg" ] 17,18c12,13 < "scripts" : ["/items/active/weapons/melee/abilities/broadsword/travelingslash/travelingslash.lua"], < "class" : "TravelingSlash", --- > "scripts" : ["/items/active/weapons/melee/abilities/broadsword/kunaiblast/kunaiblast.lua"], > "class" : "KunaiBlast", 20,36c15,24 < "projectileOffset" : [0,0], < "elementalConfig" : { < "physical" : { < "projectileType" : "kunaithrower" < }, < "fire" : { < "projectileType" : "firetravelingswoosh" < }, < "ice" : { < "projectileType" : "icetravelingswoosh" < }, < "poison" : { < "projectileType" : "poisontravelingswoosh" < }, < "electric" : { < "projectileType" : "electrictravelingswoosh" < } --- > // timing and angle adjust to launch projectiles during fire stance > "projectileTimesAndAngles" : [ > [0.02, -20], > [0.10, -35], > [0.18, -50] > ], > "projectileOffset" : [1.75, -2.0], > "projectileType" : "energyshardplayer", > "projectileParameters" : { > "baseDamage" : 6 39c27 < "baseDamage" : 7, --- > "baseDamage" : 6, 45c33 < "duration" : 0.25, --- > "duration" : 0.2, 54c42 < "duration" : 0.1, --- > "duration" : 0.25, items\armors\protectorate\protectorateshirt\protectorateshirt.chest 25c25 < { "ffca8a" : "7db8d6", "e0975c" : "5588ab", "a85636" : "325a81", "6f2919" : "1c3553" }, --- > { "ffca8a" : "7db8d6", "e0975c" : "5588ab", "a85636" : "325a81", "6f2919" : "1c3553", "fdd14d" : "fdd14d" }, 27c27 < { "ffca8a" : "838383", "e0975c" : "555555", "a85636" : "383838", "6f2919" : "151515" }, --- > { "ffca8a" : "838383", "e0975c" : "555555", "a85636" : "383838", "6f2919" : "151515", "fdd14d" : "fdd14d" }, 29c29 < { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030" }, --- > { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030", "fdd14d" : "fdd14d" }, 31c31 < { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737" }, --- > { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737", "fdd14d" : "fdd14d" }, 33c33 < { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119" }, --- > { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119", "fdd14d" : "fdd14d" }, 35c35 < { "ffca8a" : "ffd495", "e0975c" : "ea9931", "a85636" : "af4e00", "6f2919" : "6e2900" }, --- > { "ffca8a" : "ffd495", "e0975c" : "ea9931", "a85636" : "af4e00", "6f2919" : "6e2900", "fdd14d" : "fdd14d" }, 37c37 < { "ffca8a" : "ffffa7", "e0975c" : "e2c344", "a85636" : "a46e06", "6f2919" : "642f00" }, --- > { "ffca8a" : "ffffa7", "e0975c" : "e2c344", "a85636" : "a46e06", "6f2919" : "642f00", "fdd14d" : "e6e6e6" }, 39c39 < { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, --- > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216", "fdd14d" : "fdd14d" }, 41c41 < { "ffca8a" : "96cbe7", "e0975c" : "5588d4", "a85636" : "344495", "6f2919" : "1a1c51" }, --- > { "ffca8a" : "96cbe7", "e0975c" : "5588d4", "a85636" : "344495", "6f2919" : "1a1c51", "fdd14d" : "fdd14d" }, 43c43 < { "ffca8a" : "d29ce7", "e0975c" : "a451c4", "a85636" : "6a2284", "6f2919" : "320c40" }, --- > { "ffca8a" : "d29ce7", "e0975c" : "a451c4", "a85636" : "6a2284", "6f2919" : "320c40", "fdd14d" : "fdd14d" }, 45c45 < { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f" }, --- > { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f", "fdd14d" : "fdd14d" }, 47c47 < { "ffca8a" : "ccae7c", "e0975c" : "a47844", "a85636" : "754c23", "6f2919" : "472b13" } --- > { "ffca8a" : "ccae7c", "e0975c" : "a47844", "a85636" : "754c23", "6f2919" : "472b13", "fdd14d" : "fdd14d" } items\armors\protectorate\protectoratevest\protectoratevest.chest 25c25 < { "ffca8a" : "7db8d6", "e0975c" : "5588ab", "a85636" : "325a81", "6f2919" : "1c3553" }, --- > { "ffca8a" : "7db8d6", "e0975c" : "5588ab", "a85636" : "325a81", "6f2919" : "1c3553", "fdd14d" : "fdd14d" }, 27c27 < { "ffca8a" : "838383", "e0975c" : "555555", "a85636" : "383838", "6f2919" : "151515" }, --- > { "ffca8a" : "838383", "e0975c" : "555555", "a85636" : "383838", "6f2919" : "151515", "fdd14d" : "fdd14d" }, 29c29 < { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030" }, --- > { "ffca8a" : "b5b5b5", "e0975c" : "808080", "a85636" : "555555", "6f2919" : "303030", "fdd14d" : "fdd14d" }, 31c31 < { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737" }, --- > { "ffca8a" : "e6e6e6", "e0975c" : "b6b6b6", "a85636" : "7b7b7b", "6f2919" : "373737", "fdd14d" : "fdd14d" }, 33c33 < { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119" }, --- > { "ffca8a" : "f4988c", "e0975c" : "d93a3a", "a85636" : "932625", "6f2919" : "601119", "fdd14d" : "fdd14d" }, 35c35 < { "ffca8a" : "ffd495", "e0975c" : "ea9931", "a85636" : "af4e00", "6f2919" : "6e2900" }, --- > { "ffca8a" : "ffd495", "e0975c" : "ea9931", "a85636" : "af4e00", "6f2919" : "6e2900", "fdd14d" : "fdd14d" }, 37c37 < { "ffca8a" : "ffffa7", "e0975c" : "e2c344", "a85636" : "a46e06", "6f2919" : "642f00" }, --- > { "ffca8a" : "ffffa7", "e0975c" : "e2c344", "a85636" : "a46e06", "6f2919" : "642f00", "fdd14d" : "e6e6e6" }, 39c39 < { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216" }, --- > { "ffca8a" : "b2e89d", "e0975c" : "51bd3b", "a85636" : "247824", "6f2919" : "144216", "fdd14d" : "fdd14d" }, 41c41 < { "ffca8a" : "96cbe7", "e0975c" : "5588d4", "a85636" : "344495", "6f2919" : "1a1c51" }, --- > { "ffca8a" : "96cbe7", "e0975c" : "5588d4", "a85636" : "344495", "6f2919" : "1a1c51", "fdd14d" : "fdd14d" }, 43c43 < { "ffca8a" : "d29ce7", "e0975c" : "a451c4", "a85636" : "6a2284", "6f2919" : "320c40" }, --- > { "ffca8a" : "d29ce7", "e0975c" : "a451c4", "a85636" : "6a2284", "6f2919" : "320c40", "fdd14d" : "fdd14d" }, 45c45 < { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f" }, --- > { "ffca8a" : "eab3db", "e0975c" : "d35eae", "a85636" : "97276d", "6f2919" : "59163f", "fdd14d" : "fdd14d" }, 47c47 < { "ffca8a" : "ccae7c", "e0975c" : "a47844", "a85636" : "754c23", "6f2919" : "472b13" } --- > { "ffca8a" : "ccae7c", "e0975c" : "a47844", "a85636" : "754c23", "6f2919" : "472b13", "fdd14d" : "fdd14d" } items\buildscripts\weaponabilities.config 8d7 < "soluscombo" : "/items/active/weapons/melee/abilities/broadsword/soluscombo.weaponability", 66a66 > "dragonfire" : "/items/active/weapons/bossdrop/dragonhead/dragonfire.weaponability", 83a84 > "kluexzone" : "/items/active/weapons/staff/abilities/effectzone/kluexzone.weaponability", items\tools\painttool.painttool 6c6 < "rarity" : "Uncommon", --- > "rarity" : "Essential", items\tools\wiretool.wiretool 6c6 < "rarity" : "Uncommon", --- > "rarity" : "Essential", items\tools\miningtools\beamaxe.beamaxe 5c5 < "rarity" : "Uncommon", --- > "rarity" : "Essential", items\tools\miningtools\beamaxex.beamaxe 5c5 < "rarity" : "Uncommon", --- > "rarity" : "Essential", monsters\boss\penguinminiufo\penguinminiufo.lua 4a5,15 > self.masterId = config.getParameter("masterId") > self.minionIndex = config.getParameter("minionIndex") > self.minionTimer = 0 > > message.setHandler("despawn", function() > monster.setDropPool(nil) > monster.setDeathParticleBurst(nil) > monster.setDeathSound(nil) > status.addEphemeralEffect("monsterdespawn") > end) > 11,14d21 < if self.hadMaster ~= nil and not self.hadMaster then < return true < end < 19,21c26,35 < local masterId, minionIndex, minionTimer = findMaster() < if masterId ~= 0 then < self.hadMaster = true --- > if self.timerSync then > if self.timerSync:finished() then > self.minionTimer = self.timerSync:result() > end > self.timerSync = nil > else > self.timerSync = world.sendEntityMessage(self.masterId, "minionTimer") > end > > self.minionTimer = self.minionTimer + dt 23,24c37,39 < local angle = ((minionIndex - 1) * math.pi / 2.0) + minionTimer < local target = vec2.add(world.entityPosition(masterId), { --- > if world.entityExists(self.masterId) then > local angle = ((self.minionIndex - 1) * math.pi / 2.0) + self.minionTimer > local target = vec2.add(world.entityPosition(self.masterId), { 29c44,48 < monster.flyTo(target) --- > local targetVelocity = world.entityVelocity(self.masterId) > local toTarget = vec2.norm(world.distance(target, mcontroller.position())) > local parameters = mcontroller.baseParameters() > local speed = parameters.flySpeed * math.min(1.0, world.magnitude(target, mcontroller.position()) / 4) > mcontroller.controlApproachVelocity(vec2.add(targetVelocity, vec2.mul(toTarget, speed)), parameters.airForce) 31,32d49 < self.hadMaster = false < 44,65c61 < end < < function findMaster() < local position = mcontroller.position() < local regionMin = { position[1] - 25.0, position[2] - 25.0 } < local regionMax = { position[1] + 25.0, position[2] + 25.0 } < < local selfEntityId = entity.id() < < for i, entityId in ipairs(world.entityQuery(regionMin, regionMax, { callScript = "isPenguinMaster", includedTypes = {"monster"} })) do < local minionState = world.callScriptedEntity(entityId, "minionState") < if minionState ~= nil then < for minionIndex, minionId in ipairs(minionState.slots) do < if minionId == selfEntityId then < return entityId, minionIndex, minionState.timer < end < end < end < end < < return 0 < end --- > end \ No newline at end of file monsters\boss\penguinminiufo\penguinminiufo.monstertype 30c30 < "airForce" : 50.0, --- > "airForce" : 200.0, monsters\boss\penguinufo\skills\uforeinforcementsattack.lua 20a21,23 > self.minionTimer = 0 > > message.setHandler("minionTimer", function() return self.minionTimer end) 22,23d24 < timer = 0, < spawnTimer = 0, 29,32c30,35 < --Update minions < for minionIndex, entityId in pairs(self.minionState.slots) do < if entityId == 0 or not world.entityExists(entityId) then < self.minionState.slots[minionIndex] = 0 --- > if status.resourcePositive("health") then > --Update minions > for minionIndex, entityId in pairs(self.minionState.slots) do > if entityId == 0 or not world.entityExists(entityId) then > self.minionState.slots[minionIndex] = 0 > end 34d36 < end 36,37c38,45 < if self.minionState.spawnTimer > 0 then < self.minionState.spawnTimer = self.minionState.spawnTimer - dt --- > -- minionTimer provides a single timer for minions to perform synchronized actions > self.minionTimer = self.minionTimer + dt > else > for _,entityId in pairs(self.minionState.slots) do > if world.entityExists(entityId) then > world.sendEntityMessage(entityId, "despawn") > end > end 39,41d46 < < -- minionTimer provides a single timer for minions to perform synchronized actions < self.minionState.timer = self.minionState.timer + dt 68c73,77 < self.minionState.slots[i] = world.spawnMonster("penguinMiniUfo", mcontroller.position(), {level = monster.level()}) --- > self.minionState.slots[i] = world.spawnMonster("penguinMiniUfo", mcontroller.position(), { > level = monster.level(), > masterId = entity.id(), > minionIndex = i > }) 104,113c113 < end < < --Minion callbacks < function isPenguinMaster() < return true < end < < function minionState() < return self.minionState < end --- > end \ No newline at end of file monsters\crawlers\crustoise\crustoise.monstertype 30c30 < "targetOutOfSightTime" : 0.5, --- > "targetOutOfSightTime" : 5.0, monsters\crawlers\iguarmor\iguarmor.animation 13c13 < "cycle" : 0.6, --- > "cycle" : 0.4, 18c18 < "cycle" : 0.5, --- > "cycle" : 0.35, 24c24 < "cycle" : 0.6, --- > "cycle" : 0.4, monsters\crawlers\iguarmor\iguarmor.monstertype 31c31 < "targetOutOfSightTime" : 2.0, --- > "targetOutOfSightTime" : 5.0, 44c44,50 < "fleeActions" : [ ], --- > "damageTakenActions" : [ > { > "name" : "action-invulnerable", > "cooldown" : 10, > "parameters" : { > "windupState" : "", > "windupTime" : 0.0, 46c52,69 < "hostileActions" : [ --- > "invulnerableState" : "", > "invulnerableEffect" : "highprotection", > "invulnerableTime" : 5, > > "winddownTime" : 0.5, > "winddownState" : "winddown" > > } > } > ], > > "invulnerableActions" : [ > { > "name" : "approach-crawl", > "parameters" : { > "moveState" : "shieldwalk" > } > } 49d71 < "periodicActions" : [ ], 55d76 < "moveState" : "shieldwalk" 82,102d102 < } < } < ], < < "concurrentActions" : [ < ], < < "concurrentHostileActions" : [ < { < "name" : "action-invulnerable", < "parameters" : { < "windupState" : "", < "windupTime" : 0.0, < < "invulnerableState" : "", < "invulnerableEffect" : "highprotection", < "invulnerableTime" : 5, < < "winddownTime" : 0.5, < "winddownState" : "winddown" < monsters\crawlers\oculob\oculob.monstertype 30c30 < "targetOutOfSightTime" : 0.5, --- > "targetOutOfSightTime" : 5.0, monsters\crawlers\pulpin\pulpin.monstertype 46d45 < "onGround" : false, monsters\crawlers\snaggler\snaggler.monstertype 31c31 < "targetOutOfSightTime" : 2.0, --- > "targetOutOfSightTime" : 5.0, monsters\crawlers\tentaclecrawler\tentaclecrawler.monstertype 29c29 < "targetOutOfSightTime" : 0.5, --- > "targetOutOfSightTime" : 5.0, monsters\crawlers\tintic\tintic.monstertype 31c31 < "targetOutOfSightTime" : 0.5, --- > "targetOutOfSightTime" : 5.0, 45d44 < "onGround" : false, monsters\crawlers\triplod\triplod.monstertype 44d43 < "onGround" : false, monsters\flyers\tentaclegnat\tentaclegnat.animation 168a169,178 > "lights" : { > "glow" : { > "active" : true, > "position" : [2.0, -0.375], > "color" : [94, 81, 27], > "pointLight" : false, > "anchorPart" : "body" > } > }, > objects\actionfigure\anglure\anglureaf.object 8c8 < "description" : "The label reads, \"At night, all you can see of the Anglure is its light.\"", --- > "description" : "The label reads, \"At night, all you can see of the anglure is its light.\"", objects\actionfigure\dreadwing\dreadwingaf.object 8c8 < "description" : "The label reads, \"the infamous Penguin pirate Dreadwing, in his unmistakeable UFO.\"", --- > "description" : "The label reads, \"The infamous Penguin pirate Dreadwing, in his unmistakeable UFO.\"", objects\actionfigure\mandraflora\mandrafloraaf.object 8c8 < "description" : "\"Its sleepy lifestyle allows it to flourish underground and reach impressive sizes.\"", --- > "description" : "The label reads, \"Its sleepy lifestyle allows it to flourish underground and reach impressive sizes.\"", objects\avian\feathers1\feathers1.object 14c14 < "glitchDescription" : "Observation. The bird that had these feathers must have been quite large.", --- > "glitchDescription" : "Observant. The bird that had these feathers must have been quite large.", objects\generic\coppersupport\coppersupport.object 15c15 < "glitchDescription" : "Observation. This copper beam is not actually supporting any structural weight.", --- > "glitchDescription" : "Observant. This copper beam is not actually supporting any structural weight.", objects\generic\wooddoor\wooddoor.object 15c15 < "glitchDescription" : "Observation. This door appears to have been manufactured on a production line.", --- > "glitchDescription" : "Observant. This door appears to have been manufactured on a production line.", objects\glitch\hourglass\hourglass.object 15c15 < "glitchDescription" : "Observation. This timer never runs out.", --- > "glitchDescription" : "Observant. This timer never runs out.", objects\glitch\trashbag\trashbag.object 18c18 < "glitchDescription" : "Observation. A bag of trash.", --- > "glitchDescription" : "Observant. A bag of trash.", objects\glitch\wallpipe\wallpipe.object 14c14 < "glitchDescription" : "Observation. A pipe.", --- > "glitchDescription" : "Observant. A pipe.", objects\hoard\grail\grail.object 14c14 < "glitchDescription" : "Observation. A chalice of some sort.", --- > "glitchDescription" : "Observant. A chalice of some sort.", objects\hoard\woodencrategoldfilled\woodencrategoldfilled.object 17c17 < "glitchDescription" : "Observation. This wooden crate is insufficient for this amount of treasure.", --- > "glitchDescription" : "Observant. This wooden crate is insufficient for this amount of treasure.", objects\outpost\outpostairlock\outpostairlock.object 16c16 < "glitchDescription" : "Observation. An airlock.", --- > "glitchDescription" : "Observant. An airlock.", objects\outpost\outpostairlocklarge\outpostairlocklarge.object 16c16 < "glitchDescription" : "Observation. An airlock.", --- > "glitchDescription" : "Observant. An airlock.", objects\outpost\outpostcabinet\outpostcabinet.object 18c18 < "glitchDescription" : "Observation. A cabinet.", --- > "glitchDescription" : "Observant. A cabinet.", objects\outpost\outpostchair\outpostchair.object 15c15 < "glitchDescription" : "Observation. A chair. The Glitch occasionally like to sit.", --- > "glitchDescription" : "Observant. A chair. The Glitch occasionally like to sit.", objects\outpost\outpostdesk\outpostdesk.object 19c19 < "glitchDescription" : "Observation. It is a desk.", --- > "glitchDescription" : "Observant. It is a desk.", objects\outpost\outpostlocker\outpostlocker.object 19c19 < "glitchDescription" : "Observation. A locker, for locking up things you want to lock away.", --- > "glitchDescription" : "Observant. A locker, for locking up things you want to lock away.", objects\outpost\outpostradardish\outpostradardish.object 16c16 < "glitchDescription" : "Observation. A radar dish.", --- > "glitchDescription" : "Observant. A radar dish.", objects\outpost\shipyardjunk\shipyardjunk.object 14c14 < "glitchDescription" : "Observation. A pile of ship pieces.", --- > "glitchDescription" : "Observant. A pile of ship pieces.", objects\outpost\signstore\signdispenser.object 17c17 < "glitchDescription" : "Observation. This is where the signs come out.", --- > "glitchDescription" : "Observant. This is where the signs come out.", objects\ship\researchstation\researchstation.object 37c37 < "glitchDescription" : "Observation. This table is well-suited to research and development of new items.", --- > "glitchDescription" : "Observant. This table is well-suited to the research and development of new items.", objects\spawner\colonydeed\colonydeed.lua 424a425 > tenant.seed = sb.makeRandomSource():randu64() objects\teleporter\scienceteleporter\scienceteleporter.object 14c14 < "glitchDescription" : "Observation. This teleporter's cables are exposed, inefficient use of space to blame.", --- > "glitchDescription" : "Observant. This teleporter's cables are exposed, inefficient use of space is to blame.", objects\teleporter\stoneteleporter\stoneteleporter.object 14c14 < "glitchDescription" : "Observation. This teleporter's electronics have been hidden behind tastefully worked stone.", --- > "glitchDescription" : "Observant. This teleporter's electronics have been hidden behind tastefully worked stone.", objects\themed\farm\kitchentable\kitchentable.object 15c15 < "glitchDescription" : "Observation. A solid kitchen table that would look at home in any village.", --- > "glitchDescription" : "Observant. A solid kitchen table that would look at home in any village.", objects\themed\retroscifi\retroscificabinet\retroscificabinet.object 16c16 < "glitchDescription" : "Observation. This cabinet seems functional.", --- > "glitchDescription" : "Observant. A highly functional cabinet.", objects\themed\saloon\salooncabinet\salooncabinet.object 16c16 < "glitchDescription" : "Observation. The liquid inside these bottles appears to be juice.", --- > "glitchDescription" : "Observant. The liquid inside these bottles appears to be juice.", objects\wreck\wreckboiler\wreckboiler.object 14c14 < "glitchDescription" : "Observation. A water heater full of holes.", --- > "glitchDescription" : "Observant. A water heater full of holes.", objects\wreck\wreckchair\wreckchair.object 14c14 < "glitchDescription" : "Observation. This chair is infested.", --- > "glitchDescription" : "Observant. This chair is infested.", objects\wreck\wreckdoor\wreckdoor.object 15c15 < "glitchDescription" : "Observation. Rust makes this door creek.", --- > "glitchDescription" : "Observant. Rust makes this door creek.", objects\wreck\wreckgenerator\wreckgenerator.object 14c14 < "glitchDescription" : "Observation. A broken electrical generator.", --- > "glitchDescription" : "Observant. A broken electrical generator.", objects\wreck\wreckvendingmachine\wreckvendingmachine.object 14c14 < "glitchDescription" : "Observation. Some type of food dispenser.", --- > "glitchDescription" : "Observant. Some type of food dispenser.", objects\wreck\wreckwiresceiling\wreckwiresceiling.object 15c15 < "glitchDescription" : "Observation. These wires are not capable of carrying a current.", --- > "glitchDescription" : "Observant. These wires are not capable of carrying a current.", parallax\underground\undergroundtentacle.parallax 4c4 < "kind" : "tile/stalagtentacles", --- > "kind" : "tile/brainsfront", 7a8,15 > "repeatY" : true, > "unlit" : false > }, > { > "kind" : "tile/stalagtentacles", > "nohueshift" : false, > "lightMapped" : true, > "parallax" : 1.4, 14c22 < "parallax" : 1.5, --- > "parallax" : 1.7, plants\bushes\ground\midnightstone\midnightstone.bush 6c6 < "glitchDescription" : "Observation. The howling wind has shaped these stones.", --- > "glitchDescription" : "Observant. The howling wind has shaped these stones.", projectiles\explosions\energyshardexplosion\energyshardexplosion.projectile 12d11 < "damageTeam" : { "type" : "indiscriminate" }, projectiles\explosions\energyshardexplosion\playerenergyshardexplosion.config 77c77 < "explosiveDamageAmount" : 5, --- > "explosiveDamageAmount" : 1, 80d79 < quests\generated\pools\hatadjectives.config 27c27 < ["creative", "phrygiancaphead"], --- > ["courageous", "phrygiancaphead"], quests\generated\pools\hatrecipes.config 10c10 < { "name" : "glassmaterial", "count" : 2 } --- > { "name" : "glass", "count" : 2 } 25c25 < { "name" : "glassmaterial", "count" : 2 } --- > { "name" : "glass", "count" : 2 } 28c28 < { "name" : "glassmaterial", "count" : 2 } --- > { "name" : "glass", "count" : 2 } 79c79 < { "name" : "glassmaterial", "count" : 3 } --- > { "name" : "glass", "count" : 3 } quests\generated\pools\specieshats.config 11a12 > ["human", "gagnosehead"], quests\outpost\museumcurator6.questtemplate 9c9 < [ [ "upgrademodule", 1 ], [ "speedaugment", 1 ] ] --- > [ [ "speedaugment", 1 ], [ "hokucide", 1 ] ] quests\outpost\outpostclue.questtemplate 6,7c6,7 < "text" : "-placeholder- Now you are here, what about visiting the outpost! Go and scan some objects to learn more about them. Press ^#71f2f6;[N]^white; to equip your ^orange;scanner^white;.", < "completionText" : "-placeholder- Well done! Now you know how to use the ^orange;scanner^white;, it'll be useful for further missions.", --- > "text" : "Before you go jetting off, I'd like you to practice scanning. There is a lot to be learned from your surroundings, and the Outpost is no exception. Press ^#71f2f6;[N]^white; to equip your ^orange;scanner^white;, key areas of interest will appear green. Let me know how you get on!", > "completionText" : "Excellent work. It may seem trivial, but ^orange;scanning^white; is an essential skill.", 31a32 > "signstore" : 10, 34a36 > "penguinbartop2" : 10, 44c46 < "text" : "-placeholder- You can buy a personnal teleporter from this shop!", --- > "text" : "You can buy personal teleporters from this shop, extremely useful things.", 52c54 < "text" : "-placeholder- This console allow you to buy some techs!", --- > "text" : "This console will allow you to equip Techs, greatly enhancing your mobility and dexterity!", 59a62,69 > "text" : "When this store is open for business you'll be able to create custom signs here.", > "portraitImage" : "/interface/chatbubbles/esthertalk.png:" > }, > "signstore" : { > "messageId" : "outpostclue_up3", > "type" : "quest", > "unique" : false, > "senderName" : "Esther", 68c78 < "text" : "-placeholder- You can buy some cool stuff from this shop!", --- > "text" : "The Terramart stocks farming and gardening supplies, among other things. They will even buy home-grown produce from you through their remote shipping service!", 76c86 < "text" : "-placeholder- You can buy unique furniture from this shop!", --- > "text" : "The owner of this furniture shop has a large collection of exotic pieces from across the universe. It's worth checking regularly to see the new stock!", 83a94,101 > "text" : "The barkeep in the Beak Easy will happily trade any diamonds you may have for penguin dubloons, popular among his mercenary clientele!", > "portraitImage" : "/interface/chatbubbles/esthertalk.png:" > }, > "penguinbartop2" : { > "messageId" : "outpostclue_up5", > "type" : "quest", > "unique" : false, > "senderName" : "Esther", 92c110 < "text" : "-placeholder- This fellow pirate sell some cool vehicles!", --- > "text" : "Penguin Pete here is an authority on all things automobiles, from hi-tech spacecrafts to humble hoverbikes.", 102c120 < "text" : "Yey!", --- > "text" : "Scanning is such a rewarding hobby.", 111c129 < "text" : "-placeholder- It appears you've almost discover all the outpost!", --- > "text" : "The Outpost is a wonderful, vibrant place full of curiosities. There's still more to see!", 119c137 < "text" : "-placeholder- You could be the new guide for any new visitor at the outpost!", --- > "text" : "Wonderful! You certainly do posses an enquiring mind.", 127c145 < "text" : "-placeholder- Well done you know everything about the outpost now. ^#71f2f6;Talk to me^white; when you are ready.", --- > "text" : "That concludes our tour for today. ^#71f2f6;Find me^white; when you are ready to take on a challenge.", quests\scripts\story\destroyruin.lua 18c18 < storage.stage = storage.stage or 0 --- > storage.stage = storage.stage or 1 20d19 < getArtifact, 24,26d22 < if storage.stage > 0 then < self.state:set(self.stages[storage.stage]) < end 29c25 < storage.stage = 3 --- > storage.stage = 2 31a28,29 > self.state:set(self.stages[storage.stage]) > 45a44,46 > > player.setUniverseFlag("final_gate_key") > player.playCinematic(config.getParameter("openGateCinematic")) 58,69c59,63 < function getArtifact() < while storage.stage == 1 do < if not notifyEsther then < notifyEsther = world.sendEntityMessage(self.estherUid, "notify", {type = "humanArtifact"}) < end < if notifyEsther:finished() then < if notifyEsther:result() then < storage.stage = 2 < player.playCinematic(config.getParameter("openGateCinematic")) < end < notifyEsther = nil < end --- > function destroyRuin() > quest.setObjectiveList({{self.descriptions.destroyRuin, false}}) > > local findBoss = util.uniqueEntityTracker(config.getParameter("bossUid"), self.compassUpdate) > while not findBoss() do 73,74c67 < self.state:set(self.stages[storage.stage]) < end --- > player.radioMessage("tentaclemission-arrived") 76,77c69,73 < function destroyRuin() < quest.setObjectiveList({{self.descriptions.destroyRuin, false}}) --- > while entity.position()[2] > config.getParameter("brainMessageHeight") do > coroutine.yield() > end > > player.radioMessage("tentaclemission-bottom") 79c75,89 < while storage.stage == 2 do --- > local foundCheckpoint = false > local queryCheckpoints = util.interval(0.5, function() > local nearObjects = world.entityQuery(entity.position(), 20, {includedTypes = {"object"}}) > if util.find(nearObjects, function(entityId) return world.entityName(entityId) == "checkpoint" end) then > foundCheckpoint = true > end > end) > while not foundCheckpoint do > queryCheckpoints(script.updateDt()) > coroutine.yield() > end > > player.radioMessage("tentaclemission-bossroom") > > while storage.stage == 1 do quests\story\destroyruin.questtemplate 30a31,34 > "bossUid" : "eyeboss", > > "brainMessageHeight" : 400, > quests\story\floran_mission1.questtemplate 6c6 < "text" : "Now that you can get about, we need to start finding these ^orange;artifacts^reset;, dear. Maybe the Floran one first... They tend to gravitate towards dense vegetation, so I think you should ^green;search planets with thick ^orange;forests^white; for ^orange;clues^reset;. ^orange;Gentle stars^white; often have forest planets around them. Good luck dear, and thank you!", --- > "text" : "Now that you are familiar with scanning, we need to start finding these ^orange;artifacts^reset;, dear. Maybe the Floran one first... They tend to gravitate towards dense vegetation, so I think you should ^green;search planets with thick ^orange;forests^white; for ^orange;clues^reset;. ^orange;Gentle stars^white; often have forest planets around them. Good luck dear, and thank you!", radiomessages\missions.radiomessages 264a265,285 > "tentaclemission-arrived" : { > "unique" : false, > "senderName" : "Esther Bright", > "portraitImage" : "/interface/chatbubbles/esthersad.png:", > "text" : "-placeholder- So this is the ruin. You can't do any real damage from the surface, you'll need to dig deep into its brain stuff. Gross!" > }, > > "tentaclemission-bottom" : { > "unique" : false, > "senderName" : "Koichi", > "portraitImage" : "/interface/chatbubbles/koichi.png:", > "text" : "-placeholder- You're getting close. There's a big chasm surrounding its central brain structure. A resourceful person like you can surely get down safely!" > }, > > "tentaclemission-bossroom" : { > "unique" : false, > "senderName" : "Esther Bright", > "portraitImage" : "/interface/chatbubbles/esthersad.png:", > "text" : "-placeholder- This is where you'll find the heart, you must destroy it. Be careful and... good luck!" > }, > 269c290 < "text" : "You did it! ...But Something's wrong. The Ruin... its structure is unstable!", --- > "text" : "You did it! ...But Something's wrong. The Ruin... Its structure is unstable!", spawntypes\uniques.spawntypes 912c912 < "spawnChance" : 0.12, --- > "spawnChance" : 0.2, 928c928 < "spawnChance" : 0.04, --- > "spawnChance" : 0.03, 943c943 < "spawnChance" : 0.02, --- > "spawnChance" : 0.01, 958c958 < "spawnChance" : 0.08, --- > "spawnChance" : 0.1, 973c973 < "spawnChance" : 0.0, --- > "spawnChance" : 0.03, 988c988 < "spawnChance" : 0.08, --- > "spawnChance" : 0.15, 1006c1006 < "spawnChance" : 0.12, --- > "spawnChance" : 0.15, stats\effects\maxprotection\highprotection.statuseffect 5c5 < "grit" : 1.0 --- > "grit" : 0.0