FILES ----- _metadata interface\confirmation\teleportconfirmation.config interface\scripted\mmupgrade\mmupgradegui.config interface\windowconfig\chatbubbles.config items\active\weapons\weapon.lua items\active\weapons\melee\abilities\broadsword\flipslash\flipslash.weaponability items\generic\food\tier1\potatogrids.consumable items\generic\food\tier1\toast.consumable monsters\monster.lua monsters\boss\bossMonster.lua monsters\boss\penguinUfo\dieState.lua monsters\boss\penguinUfo\penguinUfo.animation monsters\boss\penguinUfo\penguinUfo.monstertype monsters\boss\penguinUfo\skills\ufoTeleportAttack.lua objects\generic\eggchair\eggchair.object objects\generic\woodverticaldoor\woodenverticaldoor.object quests\outpost\floranarena1.questtemplate quests\outpost\floranarena2.questtemplate quests\outpost\floranarena3.questtemplate quests\outpost\penguin1.questtemplate quests\outpost\penguin2.questtemplate quests\outpost\techscientist2.questtemplate quests\outpost\techscientist4.questtemplate quests\outpost\techscientist6.questtemplate quests\scripts\instance.lua scripts\companions\player.lua scripts\companions\recruitable.lua [NEW] sfx\melee\flip_slash.ogg [NEW] sfx\melee\laser_flip_slash.ogg [NEW] sfx\objects\metaldoor_close.ogg [NEW] sfx\objects\metaldoor_open.ogg [NEW] sfx\objects\wooddoor2_close.ogg [NEW] sfx\objects\wooddoor2_open.ogg [NEW] sfx\objects\wooddoor3_close.ogg [NEW] sfx\objects\wooddoor3_open.ogg sfx\objects\wooddoor_open.ogg [NEW] sfx\objects\woodenverticaldoor_close.ogg [NEW] sfx\objects\woodenverticaldoor_open.ogg ships\floran\floranT7blocks.png tech\dash\blinkdash.lua DIFFS ----- _metadata 4c4 < "priority" : -1, --- > "priority" : -9999, interface\confirmation\teleportconfirmation.config 11c11 < "portrait" : [] --- > "portrait" : [ {"image" : "/objects/outpost/techlab/techlabscientistportrait.png"} ] 26c26 < "portrait" : [] --- > "portrait" : [ {"image" : "/objects/outpost/techlab/techlabscientistportrait.png"} ] 41c41 < "portrait" : [] --- > "portrait" : [ {"image" : "/objects/outpost/techlab/techlabscientistportrait.png"} ] 56c56,60 < "portrait" : [] --- > "portrait" : [ > {"image" : "/humanoid/nuru/backarm.png:idle.1"}, > {"image" : "/humanoid/nuru/femalebody.png:idle.1"}, > {"image" : "/humanoid/nuru/frontarm.png:idle.1"} > ] 71c75,79 < "portrait" : [] --- > "portrait" : [ > {"image" : "/humanoid/nuru/backarm.png:idle.1"}, > {"image" : "/humanoid/nuru/femalebody.png:idle.1"}, > {"image" : "/humanoid/nuru/frontarm.png:idle.1"} > ] 86c94,98 < "portrait" : [] --- > "portrait" : [ > {"image" : "/humanoid/nuru/backarm.png:idle.1"}, > {"image" : "/humanoid/nuru/femalebody.png:idle.1"}, > {"image" : "/humanoid/nuru/frontarm.png:idle.1"} > ] 100c112 < "portrait" : [] --- > "portrait" : [ {"image" : "/objects/outpost/penguinbar/penguinbarportrait.png"} ] 115c127 < "portrait" : [] --- > "portrait" : [ {"image" : "/objects/outpost/penguinweaponshop/penguinshopportrait.png"} ] interface\scripted\mmupgrade\mmupgradegui.config 27c27,28 < "visible" : false --- > "visible" : false, > "mouseTransparent" : true 35c36,37 < "visible" : false --- > "visible" : false, > "mouseTransparent" : true interface\windowconfig\chatbubbles.config 8c8 < "maxAge" : 3, --- > "maxAge" : 4.5, items\active\weapons\weapon.lua 148,149c148,170 < if self.stance.allowFlip then < self.aimDirection = aimDirection --- > local isPrimary = activeItem.hand() == "primary" > if isPrimary then > -- primary hand weapons should set their aim direction whenever they can be flipped, > -- unless paired with an alt hand that CAN'T flip, in which case they should use that > -- weapon's aim direction > if self.stance.allowFlip then > if activeItem.callOtherHandScript("dwDisallowFlip") then > local altAimDirection = activeItem.callOtherHandScript("dwAimDirection") > if altAimDirection then > self.aimDirection = altAimDirection > end > else > self.aimDirection = aimDirection > end > end > elseif self.stance.allowFlip then > -- alt hand weapons should be slaved to the primary whenever they can be flipped > local primaryAimDirection = activeItem.callOtherHandScript("dwAimDirection") > if primaryAimDirection then > self.aimDirection = primaryAimDirection > else > self.aimDirection = aimDirection > end 150a172 > 319a342,356 > end > > -- used for cross-hand communication while dual wielding > function dwAimDirection() > if self and self.weapon then > return self.weapon.aimDirection > end > end > > function dwDisallowFlip() > if self.weapon and self.weapon.stance then > return not self.weapon.stance.allowFlip > end > > return false items\active\weapons\melee\abilities\broadsword\flipslash\flipslash.weaponability 42c42 < "flipSlash" : [ "/sfx/melee/swing_spear.ogg" ] --- > "flipSlash" : [ "/sfx/melee/laser_flip_slash.ogg" ] items\generic\food\tier1\potatogrids.consumable 4c4 < "price" : 125, --- > "price" : 200, 12c12 < "duration" : 225 --- > "duration" : 360 15c15 < "foodValue" : 25, --- > "foodValue" : 40, items\generic\food\tier1\toast.consumable 4c4 < "price" : 60, --- > "price" : 75, 12c12 < "duration" : 112.5 --- > "duration" : 180 15c15 < "foodValue" : 12.5, --- > "foodValue" : 20, monsters\monster.lua 118a119,120 > elseif status.statPositive("invulnerable") then > monster.setDamageOnTouch(false) monsters\boss\bossMonster.lua 75a76,77 > > animator.setGlobalTag("phase", "phase"..currentPhase()) monsters\boss\penguinUfo\dieState.lua 17c17 < animator.setAnimationState("movement", "phase"..currentPhase()) --- > animator.setAnimationState("movement", "visible") monsters\boss\penguinUfo\penguinUfo.animation 20c20 < "default" : "phase1", --- > "default" : "visible", 23,33c23 < "phase1" : { < "frames" : 8, < "cycle" : 0.25, < "mode" : "loop" < }, < "phase2" : { < "frames" : 8, < "cycle" : 0.25, < "mode" : "loop" < }, < "phase3" : { --- > "visible" : { 54,59c44 < "phase1" : { < "properties" : { < "image" : ":phase1." < } < }, < "phase2" : { --- > "visible" : { 61,66c46 < "image" : ":phase2." < } < }, < "phase3" : { < "properties" : { < "image" : ":phase3." --- > "image" : ":." 86,96c66 < "phase1" : { < "properties" : { < "image" : ":idle" < } < }, < "phase2" : { < "properties" : { < "image" : ":idle" < } < }, < "phase3" : { --- > "visible" : { 109a80,82 > }, > "globalTagDefaults" : { > "phase" : "phase1" monsters\boss\penguinUfo\penguinUfo.monstertype 25,26c25,26 < "skills" : ["ufoMoveFireAttack", "ufoSwoopAttack", "ufoReinforcementsAttack", "ufoSlamAttack", "ufoTeleportAttack", "ufoPulseCannonAttack", "ufoSpawnTanksAttack"], < "skillCount" : 7, --- > "skills" : ["ufoMoveFireAttack", "ufoSwoopAttack", "ufoReinforcementsAttack", "ufoSlamAttack", "ufoTeleportAttack", "ufoPulseCannonAttack"], > "skillCount" : 6, monsters\boss\penguinUfo\skills\ufoTeleportAttack.lua 54c54 < animator.setAnimationState("movement", "phase"..currentPhase()) --- > animator.setAnimationState("movement", "visible") objects\generic\eggchair\eggchair.object 18a19,21 > "objectType" : "loungeable", > "sitFlipDirection" : false, > 22,23c25 < "dualImage" : "eggchair.png:", < --- > "image" : "eggchair.png:", 25,26c27,31 < "frames" : 1, < "animationCycle" : 1.0, --- > > "direction" : "left", > "flipImages" : true, > > "sitPosition" : [1, 22], 29a35,38 > }, > { > "image" : "eggchair.png:", > "imagePosition" : [-8, 0], 31,32c40 < } < ], --- > "direction" : "right", 34,36c42 < "objectType" : "loungeable", < "sitFlipDirection" : false, < "sitPosition" : [7, 22] --- > "sitPosition" : [7, 22], 37a44,47 > "spaceScan" : 0.1, > "anchors" : [ "bottom" ] > } > ] objects\generic\woodverticaldoor\woodenverticaldoor.object 8c8 < "price" : 150, --- > "price" : 15, 30c30 < "pool" : [ "/sfx/objects/chest_medium_open.ogg" ], --- > "pool" : [ "/sfx/objects/woodenverticaldoor_open.ogg" ], 34c34 < "pool" : [ "/sfx/objects/chest_medium_close.ogg" ], --- > "pool" : [ "/sfx/objects/woodenverticaldoor_close.ogg" ], quests\outpost\floranarena1.questtemplate 27d26 < "warpDialogPortrait" : [ {"image" : "/humanoid/nuru/femalebody.png:idle.1"} ], quests\outpost\floranarena2.questtemplate 28d27 < "warpDialogPortrait" : [ {"image" : "/humanoid/nuru/femalebody.png:idle.1"} ], quests\outpost\floranarena3.questtemplate 28d27 < "warpDialogPortrait" : [ {"image" : "/humanoid/nuru/femalebody.png:idle.1"} ], quests\outpost\penguin1.questtemplate 36d35 < "warpDialogPortrait" : [ {"image" : "/objects/outpost/penguinbar/penguinbarportrait.png"} ], quests\outpost\penguin2.questtemplate 36d35 < "warpDialogPortrait" : [ {"image" : "/objects/outpost/penguinweaponshop/penguinshopportrait.png"} ], quests\outpost\techscientist2.questtemplate 33d32 < "warpDialogPortrait" : [ {"image" : "/objects/outpost/techlab/techlabscientistportrait.png"} ], quests\outpost\techscientist4.questtemplate 33d32 < "warpDialogPortrait" : [ {"image" : "/objects/outpost/techlab/techlabscientistportrait.png"} ], quests\outpost\techscientist6.questtemplate 33d32 < "warpDialogPortrait" : [ {"image" : "/objects/outpost/techlab/techlabscientistportrait.png"} ], quests\scripts\instance.lua 11d10 < self.warpDialogPortrait = config.getParameter("warpDialogPortrait") 87,90c86 < dialogConfig.sourceEntityId = entityId; < if self.warpDialogPortrait then < dialogConfig.images.portrait = self.warpDialogPortrait < end --- > dialogConfig.sourceEntityId = entityId scripts\companions\player.lua 377c377 < promises:add(world.sendEntityMessage(uniqueId, "recruit.confirmRecruitment", recruitSpawner.ownerUuid, uuid), function (success) --- > promises:add(world.sendEntityMessage(uniqueId, "recruit.confirmRecruitment", recruitSpawner.ownerUuid, uuid, onOwnShip()), function (success) 505d504 < requestUnfollow(recruit.uniqueId, uuid) scripts\companions\recruitable.lua 361c361 < function recruitable.confirmRecruitment(playerUniqueId, recruitUuid) --- > function recruitable.confirmRecruitment(playerUniqueId, recruitUuid, onShip) 375,376c375,381 < status.addEphemeralEffect("beamout") < recruitable.despawnTimer = 0.7 --- > if onShip then > storage.ownerUuid = playerUniqueId > storage.recruitUuid = recruitUuid > else > recruitable.beamOut() > end > tech\dash\blinkdash.lua 102c102 < if not world.polyCollision(collisionPoly, oneDown, {"Null", "Block", "Dynamic"}) then --- > if not world.polyCollision(collisionPoly, oneDown, {"Null", "Block", "Dynamic", "Platform"}) then 119c119 < local groundPosition = world.resolvePolyCollision(collisionPoly, towardGround, 0.8) --- > local groundPosition = world.resolvePolyCollision(collisionPoly, towardGround, 0.8, {"Null", "Block", "Dynamic", "Platform"})