FILES ----- dungeon_worlds.config help.config instance_worlds.config sky.config systemworld.config system_objects.config universe_server.config codex\human\humanspace1.codex dialog\shipcrew.config dungeons\space\cultistship\back_1.json dungeons\space\cultistship\back_2.json [NEW] dungeons\space\merchantastroship\back_1.json [NEW] dungeons\space\merchantastroship\back_2.json [NEW] dungeons\space\merchantastroship\front_1.json [NEW] dungeons\space\merchantastroship\front_2.json [NEW] dungeons\space\merchantastroship\front_3.json [NEW] dungeons\space\merchantastroship\merchantastroship.dungeon [NEW] dungeons\space\penguinship\back_1.json [NEW] dungeons\space\penguinship\back_2.json [NEW] dungeons\space\penguinship\penguinship.dungeon dungeons\space\pirateship\backend2.json dungeons\space\pirateship\backend3.json dungeons\space\spaceencounter\base_ruin3.json dungeons\space\spaceencounter\miniknogbase.json dungeons\space\spaceencounter\spaceencounter.dungeon dungeons\space\spacestation\trade_electronics_bottom1a.json dungeons\space\spacestation\trade_electronics_bottom1b.json dungeons\space\spacestation\trade_electronics_top1a.json dungeons\space\spacestation\trade_electronics_top1b.json dungeons\space\spacestation\trade_food_bottom1a.json dungeons\space\spacestation\trade_food_top1a.json dungeons\space\spacestation\trade_food_top1b.json dungeons\space\spacestation\trade_medical_bottom1a.json dungeons\space\spacestation\trade_medical_bottom1b.json dungeons\space\spacestation\trade_medical_top1a.json dungeons\space\spacestation\trade_medical_top1b.json dungeons\space\spacestation\trade_weapons_bottom1a.json dungeons\space\spacestation\trade_weapons_bottom1b.json dungeons\space\spacestation\trade_weapons_top1a.json dungeons\space\spacestation\trade_weapons_top1b.json interface\cockpit\cockpit.config interface\cockpit\cockpit.lua interface\cockpit\cockpitview.lua [NEW] interface\graphicsmenu\body.png [NEW] interface\graphicsmenu\footer.png [NEW] interface\graphicsmenu\header.png [NEW] interface\graphicsmenu\shine.png interface\optionsmenu\body_blank.png interface\optionsmenu\header.png interface\optionsmenu\optionsmenu.config [NEW] interface\scripted\playerstationconsole\body.png [NEW] interface\scripted\playerstationconsole\footer.png [NEW] interface\scripted\playerstationconsole\header.png [NEW] interface\scripted\playerstationconsole\playerstationconsolegui.config [NEW] interface\scripted\playerstationconsole\playerstationconsolegui.lua [NEW] interface\scripted\playerstationconsole\playerstationconsoleicon.png [NEW] interface\scripted\playerstationconsole\shine.png [NEW] interface\windowconfig\graphicsmenu.config items\active\randomblueprint\mechblueprint3.activeitem items\active\unsorted\railplatform\railplatform.lua items\active\unsorted\railplatform\stationtram.activeitem items\active\weapons\other\drillspear\drillcharge.lua items\active\weapons\other\drillspear\drillspear.activeitem items\active\weapons\other\drillspear\drillspear.animation leveling\levelingmultipliers.functions npcs\merchantpools.config [NEW] npcs\space\astromerchant.npctype npcs\space\electronicgoodstrader.npctype npcs\space\foodgoodstrader.npctype npcs\space\medicalgoodstrader.npctype npcs\space\militarygoodstrader.npctype [NEW] npcs\space\penguinshipcrewmate.npctype objects\playerstation\expansionslot\expansionslot.lua objects\playerstation\playerstationconsole\playerstationconsole.lua objects\playerstation\playerstationconsole\playerstationconsole.object quests\outpost\mechupgrade1.questtemplate quests\outpost\mechupgrade2.questtemplate quests\outpost\penguin2.questtemplate radiomessages\mech.radiomessages scripts\actions\monsters\space.lua scripts\actions\npc\tonauac.lua scripts\companions\player.lua treasure\space.treasurepools vehicles\modularmech\modularmech.lua vehicles\modularmech\modularmech.vehicle vehicles\railtram\stationtram.vehicle DIFFS ----- dungeon_worlds.config 336c336 < "musicTrack" : "/music/lava-exploration1.ogg", --- > "musicTrack" : "/music/tranquility-base.ogg", 351c351,381 < "musicTrack" : "/music/lava-exploration1.ogg", --- > "musicTrack" : "/music/tranquility-base.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "merchantastroship" : { > "primaryDungeon" : "merchantastroship", > "threatLevel" : 3, > "gravity" : 0, > "worldSize" : [1300, 200], > "dungeonBaseHeight" : 150, > "dungeonSurfaceHeight" : 150, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/tranquility-base.ogg", > "environmentStatusEffects" : ["dontstarve"], > "worldEdgeForceRegions" : "TopAndBottom", > "biome" : "space" > }, > > "penguinship" : { > "primaryDungeon" : "penguinship", > "threatLevel" : 3, > "gravity" : 0, > "worldSize" : [1300, 200], > "dungeonBaseHeight" : 150, > "dungeonSurfaceHeight" : 150, > "ambientLightLevel" : [32, 32, 32], > "ambientNoises" : "/sfx/environmental/space_loop4.ogg", > "musicTrack" : "/music/tranquility-base.ogg", help.config 34a35,36 > "unbanip" : "Usage /unbanip address. Removes entries with the specified address from temporary and permanent ban lists.", > "unbanuuiud" : "Usage /unbanuuid uuid. Removes entries with the specified uuid from temporary and permanent ban lists.", instance_worlds.config 895c895 < "dungeonWorld" : "merchantindustrialship", --- > "dungeonWorld" : "penguinship", 1014a1015,1045 > "merchantastroship" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "merchantastroship", > "beamUpRule" : "Anywhere", > "disableDeathDrops" : true, > > "tempWorldDeleteTime" : 600000, > > "skyParameters" : { > "dayLength" : 10000, > "surfaceLevel" : 1000, > "spaceLevel" : 3000, > "seed" : -5288806180628666923, > > "skyType" : "barren", > "skyColoring" : { > "mainColor" : [200, 200, 255], > > "morningColors" : [[200, 200, 255], [200, 200, 255]], > "dayColors" : [[200, 200, 255], [200, 200, 255]], > "eveningColors" : [[200, 200, 255], [200, 200, 255]], > "nightColors" : [[200, 200, 255], [200, 200, 255]], > > "morningLightColor" : [120, 120, 120], > "dayLightColor" : [120, 120, 120], > "eveningLightColor" : [120, 120, 120], > "nightLightColor" : [120, 120, 120] > } > } > }, > 1052a1084 > "useUniverseClock" : true, 1084,1085c1116 < < // "tempWorldDeleteTime" : 0, --- > "useUniverseClock" : true, 1117,1118c1148 < < // "tempWorldDeleteTime" : 0, --- > "useUniverseClock" : true, 1150,1151c1180 < < // "tempWorldDeleteTime" : 0, --- > "useUniverseClock" : true, 1183,1184c1212 < < // "tempWorldDeleteTime" : 0, --- > "useUniverseClock" : true, sky.config 6,12c6,14 < "flyMaxVelocity" : 100000, < "starVelocityFactor" : 0.1, < "correctionPower" : 0.01, < < "speedupTimer" : 1.0, < "flyingTimer" : 30.0, < "slowdownTimer" : 1.0, --- > "flyMaxVelocity" : 5000, > "starVelocityFactor" : 0.2, > "correctionPower" : 0.00, > > "speedupTime" : 1.0, > "hyperspaceSpeedupTime" : 8.0, > "flyingTimer" : 14.0, > "slowdownTime" : 1.0, > "hyperspaceSlowdownTime" : 8.0, 21c23 < "offset" : [300, 300], "rotation" : -45.0, "time" : 10 --- > "offset" : [300, 300], "rotation" : -45.0, "time" : 2.0 31c33 < "offset" : [1000.0, 0], "rotation": 0.0, "time" : 1.0 --- > "offset" : [0.0, 0.0], "rotation": 0.0, "time" : 0.1 41c43 < "offset" : [0, 0], "rotation" : 0, "time" : 10 --- > "offset" : [0, 0], "rotation" : 0, "time" : 2.0 46c48 < "offset" : [-1000.0, 0], "rotation" : 0.0 --- > "offset" : [0, 0], "rotation" : 0.0 51c53 < "offset" : [0, 0], "rotation": 0.0, "time" : 2.0 --- > "offset" : [0, 0], "rotation": 0.0, "time" : 0.1 54,79d55 < < // Sped up for testing < // "speedupTimer" : 0.5, < // "flyingTimer" : 1.0, < // "slowdownTimer" : 0.5, < // "flashTimer" : 1.0, < // "disembarkOrigin" : { < // "offset" : [0, 0], "rotation" : 0 < // }, < // < // "disembarkPath" : [ < // { < // // where you're going, how are you rotated in degrees, how much time does it take to get there < // "offset" : [300, 300], "rotation" : -45.0, "time" : 0.5 < // } < // ], < // < // "arrivalOrigin" : { < // "offset" : [-300, 300], "rotation" : 45.0 < // }, < // < // "arrivalPath" : [ < // { < // "offset" : [0, 0], "rotation" : 0, "time" : 0.5 < // } < // ], systemworld.config 32,33c32,33 < "departTime" : 11.0, < "spaceDepartTime" : 2.0 --- > "departTime" : 3.0, > "spaceDepartTime" : 0.5 60c60,62 < [0.1, "merchantindustrialship"], --- > [0.02, "penguinship"], > [0.08, "merchantindustrialship"], > [0.08, "merchantastroship"], system_objects.config 70c70 < "description" : "Researchers in this station study the effects of microgravity on physiology, applying their results to the development of novel medicines.", --- > "description" : "Researchers in this station study the effects of microgravity on physiology in order to develop novel medicines.", 94c94 < "description" : "Whether products of classified government programs or mad penguin scientists, space is full of exciting weaponry, and this is the place to buy it.", --- > "description" : "From classified government programs to mad penguin scientists, space is full of people making exciting new weaponry.", 183a184,221 > "skyParameters" : { > "seed" : 0, > "horizonClouds" : false, > "horizonImages" : [ { "left": "/celestial/system/ships/shiphorizonleft.png", "right": "/celestial/system/ships/shiphorizonright.png" } ] > }, > > "moving" : true, > "speed" : 15.0, > "orbitRange" : [1, 1], > "lifeTime" : [1500, 2100], > "parameters" : { > "icon" : "/celestial/system/ships/npcship.png", > "displayName" : "Friendly Ship", > "description" : "This ship acknowledges our communications and her captain cordially invites us to pay a visit." > } > }, > > "merchantastroship" : { > "warpAction" : "InstanceWorld:merchantastroship", > "skyParameters" : { > "seed" : 0, > "horizonClouds" : false, > "horizonImages" : [ { "left": "/celestial/system/ships/shiphorizonleft.png", "right": "/celestial/system/ships/shiphorizonright.png" } ] > }, > > "moving" : true, > "speed" : 15.0, > "orbitRange" : [1, 1], > "lifeTime" : [1500, 2100], > "parameters" : { > "icon" : "/celestial/system/ships/npcship.png", > "displayName" : "Friendly Ship", > "description" : "This ship acknowledges our communications and her captain cordially invites us to pay a visit." > } > }, > > "penguinship" : { > "warpAction" : "InstanceWorld:penguinship", universe_server.config 37c37 < "queuedFlightWaitTime" : 45.0, --- > "queuedFlightWaitTime" : 35.0, codex\human\humanspace1.codex 22c22 < Our current financial future may seem uncertain to many, but breakthroughs in our genetic manipulation labs - with help from our allies in the Miniknog - might give us a strong foundation in the field of bioweaponary. --- > Our current financial future may seem uncertain to many, but breakthroughs in our genetic manipulation labs - with help from our allies in the Miniknog - might give us a strong foundation in the field of bioweaponry. dialog\shipcrew.config 130d129 < 132c131,150 < } --- > }, > "penguin" : { > "default" : [ > "Hey there, fella! How do you like our ship?", > "Well it's a lucky thing here that you fit on our ship, huh?", > "I can't chat for too long - this bird's gotta grease some axels to keep us all afloat!", > "This sure is the gig of a lifetime. A ship full of fine feathered folks like myself, and all the loot to boot!", > "You got that look in your eye like you're about to loot all our crates. Don't worry pal, I won't snitch.", > "You lookin' for friends? Nah, the glint in your eye says you're just here for some loot.", > "Hey, how'd you even fly out here? You got one of them space mechs?", > "Don't bump your head on the ceiling, pal!", > "I got some pals lookin' for mercenary work. You should get yourself some dubloons!", > "You come here in a mech? I think we have some mech part blueprints on this ship, now I think about it...", > "What's with all those angry asteroid lookin' things flyin' around? Things sure ain't how they used to be.", > "Don't think just 'cause you're taller than me that you got the drop on me!", > "They call me . The name runs in the family.", > "Bein' part of the crew of a cargo ship means there's a lot of liftin' to do. My flippers are tired already!", > "Hey there, ol' buddy ol' pal! ...We haven't met before, have we?" > ] > } dungeons\space\cultistship\back_1.json [TMX file differences are left out for huge size.] dungeons\space\cultistship\back_2.json [TMX file differences are left out for huge size.] dungeons\space\pirateship\backend2.json [TMX file differences are left out for huge size.] dungeons\space\pirateship\backend3.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\base_ruin3.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\miniknogbase.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\spaceencounter.dungeon 744,745c744 < "chance" : 1, < "markDungeonId" : false --- > "chance" : 1 dungeons\space\spacestation\trade_electronics_bottom1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_electronics_bottom1b.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_electronics_top1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_electronics_top1b.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_food_bottom1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_food_top1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_food_top1b.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_medical_bottom1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_medical_bottom1b.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_medical_top1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_medical_top1b.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_weapons_bottom1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_weapons_bottom1b.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_weapons_top1a.json [TMX file differences are left out for huge size.] dungeons\space\spacestation\trade_weapons_top1b.json [TMX file differences are left out for huge size.] interface\cockpit\cockpit.config 246c246 < "enterKey" : "addBookmark", --- > "enterKey" : "confirmBookmark", 734a735,746 > }, > > "disabledLabel" : { > "type" : "label", > "visible" : false, > "position" : [198, 170], > "hAnchor" : "mid", > "vAnchor" : "mid", > "width" : 120, > "value" : "NAVIGATION OFFLINE", > "fontSize" : 24, > "mouseTransparent" : true 1305a1318,1328 > }, > > "disabledColor" : [255, 73, 66, 255], > "disabledFlickerTime" : 0.05, > "disabledFlicker" : [0.7, 0.9], > > "topLeftButtonTooltips" : { > "showBookmarkList" : "Bookmarks", > "goToShip" : "View ship", > "goToQuest" : "View quest location", > "showCoordinates" : "Coordinates" interface\cockpit\cockpit.lua 26c26,32 < self.state:set(systemScreenState, celestial.currentSystem()) --- > if contains(player.shipUpgrades().capabilities, "planetTravel") then > self.state:set(systemScreenState, celestial.currentSystem()) > elseif celestial.skyFlyingType() == "maintain" then > self.state:set(universeMoveState, {0, 0}, systems, systemPosition(celestial.currentSystem()), {system = celestial.currentSystem()}, {}) > else > self.state:set(disabledState) > end 56a63,68 > local topLeftButtons = config.getParameter("topLeftButtons") > for _,name in pairs(topLeftButtons) do > if widget.inMember(name, screenPosition) then > return config.getParameter(string.format("topLeftButtonTooltips.%s", name)) > end > end 129a142,146 > if type(target) == "string" then > target = {"object", target} > else > target = {"coordinate", target} > end 209a227 > widget.setData("editBookmarkFrame.name", {system, bookmark}) 323d340 < sb.logInfo("%s %s", world.getProperty("ship.fuelEfficiency"), cost - cost * (world.getProperty("ship.fuelEfficiency") or 0.0)) 327,328c344,349 < function canFlyShip() < return celestial.skyFlyingType() ~= "arriving" --- > function canFlyShip(system) > if not compare(system, celestial.currentSystem()) then > return not celestial.flying() and not celestial.skyFlying() > else > return celestial.skyFlyingType() ~= "arriving" > end 332a354,376 > function disabledState() > View:reset() > widget.setVisible("disabledLabel", true) > > local flickerTime = config.getParameter("disabledFlickerTime") > local flicker = config.getParameter("disabledFlicker") > local color = config.getParameter("disabledColor") > > local timer = 0 > while not contains(player.shipUpgrades().capabilities, "planetTravel") do > if timer <= 0 then > color[4] = (flicker[1] + (math.random() * (flicker[2] - flicker[1]))) * 255 > timer = flickerTime > widget.setFontColor("disabledLabel", color) > end > timer = timer - script.updateDt() > coroutine.yield() > end > > widget.setVisible("disabledLabel", false) > return self.state:set(systemScreenState, celestial.currentSystem()) > end > 456c500 < if canFlyShip() and not compare(hover, celestial.currentSystem()) then --- > if canFlyShip(hover) and not compare(hover, celestial.currentSystem()) then 528c572 < if travel then --- > if travel and not celestial.skyFlying() then 702c746 < selection = self.focus.target[2] --- > selection = self.focus.target 761c805 < parameters = celestial.objectParameters(selection[2]) --- > parameters = mappedObjects[selection[2]].parameters 771c815 < if canFlyShip() then --- > if canFlyShip(system) then 791c835 < pane.playSound(self.sounds.startTravel) --- > pane.playSound(self.sounds.failTravel) 979c1023 < if canFlyShip() and locationVisitable(hover) then --- > if canFlyShip(system) and locationVisitable(hover) then interface\cockpit\cockpitview.lua 214c214 < if moving then --- > if objectConfig.moving then interface\optionsmenu\optionsmenu.config 2,42d1 < "resolutionList" : [ < [832, 624], < [960, 640], < [960, 720], < [1024, 640], < [1024, 600], < [1024, 768], < [1024, 800], < [1024, 1024], < [1120, 832], < [1136, 640], < [1152, 720], < [1152, 768], < [1152, 864], < [1152, 900], < [1280, 720], < [1280, 768], < [1280, 800], < [1280, 854], < [1280, 960], < [1280, 1024], < [1366, 768], < [1440, 900], < [1440, 960], < [1400, 1050], < [1440, 1024], < [1440, 1080], < [1600, 768], < [1600, 900], < [1600, 1024], < [1680, 1050], < [1600, 1200], < [1920, 1080], < [1920, 1200], < [2560, 1440] < ], < "zoomList" : [ < 2, < 3, < 4 < ], 63c22 < "position" : [119, 199], --- > "position" : [119, 157], 69c28 < "position" : [32, 184], --- > "position" : [32, 140], 74c33 < "position" : [192, 184], --- > "position" : [192, 140], 80c39 < "position" : [32, 168], --- > "position" : [32, 126], 85c44 < "position" : [192, 168], --- > "position" : [192, 126], 89,129d47 < "resLabel" : { < "type" : "label", < "position" : [119, 154], < "hAnchor" : "mid", < "value" : "FULLSCREEN RESOLUTION" < }, < "resValueLabel" : { < "type" : "label", < "position" : [119, 125], < "hAnchor" : "mid", < "value" : "Replace Me" < }, < "zoomLabel" : { < "type" : "label", < "position" : [70, 112], < "hAnchor" : "mid", < "value" : "ZOOM LEVEL" < }, < "zoomValueLabel" : { < "type" : "label", < "position" : [102, 99], < "hAnchor" : "mid", < "value" : "Replace Me" < }, < "speechBubbleLabel" : { < "type" : "label", < "position" : [25, 84], < "hAnchor" : "left", < "value" : "SPEECH BUBBLES" < }, < "speechBubbleCheckbox" : { < "type" : "button", < "pressedOffset" : [0, 0], < "position" : [104, 84], < "base" : "/interface/optionsmenu/checkboxnocheck.png", < "hover" : "/interface/optionsmenu/checkboxnocheckhover.png", < "baseImageChecked" : "/interface/optionsmenu/checkboxcheck.png", < "hoverImageChecked" : "/interface/optionsmenu/checkboxcheckhover.png", < "checkable" : true, < "checked" : true < }, 132c50 < "position" : [25, 73], --- > "position" : [25, 62], 139,155d56 < "position" : [104, 73], < "base" : "/interface/optionsmenu/checkboxnocheck.png", < "hover" : "/interface/optionsmenu/checkboxnocheckhover.png", < "baseImageChecked" : "/interface/optionsmenu/checkboxcheck.png", < "hoverImageChecked" : "/interface/optionsmenu/checkboxcheckhover.png", < "checkable" : true, < "checked" : true < }, < "interactiveHighlightLabel" : { < "type" : "label", < "position" : [25, 62], < "hAnchor" : "left", < "value" : "TARGET HIGHLIGHT" < }, < "interactiveHighlightCheckbox" : { < "type" : "button", < "pressedOffset" : [0, 0], 164,181c65 < "fullscreenLabel" : { < "type" : "label", < "position" : [25, 51], < "hAnchor" : "left", < "value" : "FULLSCREEN" < }, < "fullscreenCheckbox" : { < "type" : "button", < "pressedOffset" : [0, 0], < "position" : [104, 51], < "base" : "/interface/optionsmenu/checkboxnocheck.png", < "hover" : "/interface/optionsmenu/checkboxnocheckhover.png", < "baseImageChecked" : "/interface/optionsmenu/checkboxcheck.png", < "hoverImageChecked" : "/interface/optionsmenu/checkboxcheckhover.png", < "checkable" : true, < "checked" : false < }, < "borderlessLabel" : { --- > "allowAssetsMismatchLabel" : { 183c67 < "position" : [25, 40], --- > "position" : [25, 73], 185c69,71 < "value" : "BORDERLESS WINDOW" --- > "vAnchor" : "bottom", > "wrapWidth" : 80, > "value" : "ALLOW ASSETS MISMATCH" 187c73 < "borderlessCheckbox" : { --- > "allowAssetsMismatchCheckbox" : { 190c76 < "position" : [104, 40], --- > "position" : [104, 78], 196c82 < "checked" : false --- > "checked" : true 226,245c112 < "position" : [203, 77], < "base" : "/interface/optionsmenu/checkboxnocheck.png", < "hover" : "/interface/optionsmenu/checkboxnocheckhover.png", < "baseImageChecked" : "/interface/optionsmenu/checkboxcheck.png", < "hoverImageChecked" : "/interface/optionsmenu/checkboxcheckhover.png", < "checkable" : true, < "checked" : true < }, < "allowAssetsMismatchLabel" : { < "type" : "label", < "position" : [125, 41], < "hAnchor" : "left", < "vAnchor" : "bottom", < "wrapWidth" : 80, < "value" : "ALLOW ASSETS MISMATCH" < }, < "allowAssetsMismatchCheckbox" : { < "type" : "button", < "pressedOffset" : [0, 0], < "position" : [203, 47], --- > "position" : [203, 78], 269c136 < "position" : [62, 184], --- > "position" : [62, 142], 274,279c141 < "position" : [62, 168], < "gridImage" : "/interface/optionsmenu/largeselection.png" < }, < "resSlider" : { < "type" : "slider", < "position" : [62, 138], --- > "position" : [62, 128], 282,286d143 < "zoomSlider" : { < "type" : "slider", < "position" : [26, 98], < "gridImage" : "/interface/optionsmenu/smallselection.png" < }, 290a148,154 > "base" : "/interface/optionsmenu/controlsbutton.png", > "hover" : "/interface/optionsmenu/controlsbuttonhover.png" > }, > "showGraphics" : { > "type" : "button", > "position" : [30, 95], > "caption" : "Graphics", items\active\randomblueprint\mechblueprint3.activeitem 26c26 < ["mecharmheatrifle", "mecharmtommygun"] --- > ["mecharmheatrifle", "mecharmtommygun", "mecharmsplitshot"] items\active\unsorted\railplatform\railplatform.lua 1a2 > require "/scripts/vec2.lua" 5a7 > self.previewOffset = config.getParameter("previewOffset", {0, 0}) 20c22 < activeItem.setScriptedAnimationParameter("previewPosition", placePos) --- > activeItem.setScriptedAnimationParameter("previewPosition", vec2.add(placePos, self.previewOffset)) items\active\unsorted\railplatform\stationtram.activeitem 19a20 > "previewOffset" : [0, 2.0], items\active\weapons\other\drillspear\drillcharge.lua 48a49,50 > self.tileDamageTimer = 0 > 57a60,65 > self.tileDamageTimer = math.max(0, self.tileDamageTimer - self.dt) > if self.tileDamageTimer == 0 then > self.tileDamageTimer = self.tileDamageRate > self:damageTiles() > end > 90a99,111 > end > > function DrillCharge:damageTiles() > local pos = mcontroller.position() > local tipPosition = vec2.add(pos, activeItem.handPosition(animator.partPoint("drillenergy", "drillTip"))) > for i = 1, 3 do > local sourcePosition = vec2.add(pos, activeItem.handPosition(animator.partPoint("drillenergy", "drillSource" .. i))) > local drillTiles = world.collisionBlocksAlongLine(sourcePosition, tipPosition, nil, self.damageTileDepth) > if #drillTiles > 0 then > world.damageTiles(drillTiles, "foreground", sourcePosition, "blockish", self.tileDamage, 99) > world.damageTiles(drillTiles, "background", sourcePosition, "blockish", self.tileDamage, 99) > end > end items\active\weapons\other\drillspear\drillspear.activeitem 55a56,59 > "tileDamage" : 0.5, > "tileDamageRate" : 0.15, > "damageTileDepth" : 3, > items\active\weapons\other\drillspear\drillspear.animation 77c77,82 < "transformationGroups" : ["weapon"] --- > "transformationGroups" : ["weapon"], > > "drillTip" : [0.0, 4.5], > "drillSource1" : [-1.5, 1.0], > "drillSource2" : [0.0, 0.0], > "drillSource3" : [1.5, 1.0] leveling\levelingmultipliers.functions 136,138c136,138 < [5, 8.5], < [6, 11.0], < [7, 16.0] --- > [5, 8.0], > [6, 10.0], > [7, 14.0] 149,151c149,151 < [5, 14.0], < [6, 26.0], < [7, 54.0] --- > [5, 12.0], > [6, 22.0], > [7, 40.0] npcs\merchantpools.config 387a388,405 > "astromerchant" : [ > [0, [ > { "item" : { "name" : "astrochair" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrotable" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrolight" }, "rarity" : 0.2 }, > { "item" : { "name" : "astroceilingmonitor" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrocabinet" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrocrate" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrodoor" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrostoragelocker" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrowallpanel" }, "rarity" : 0.2 }, > { "item" : { "name" : "astrovent" }, "rarity" : 0.2 }, > { "item" : { "name" : "astromonitor" }, "rarity" : 0.2 }, > { "item" : { "name" : "astroserver" }, "rarity" : 0.2 }, > { "item" : { "name" : "astroconsole" }, "rarity" : 0.2 } > ]] > ], > npcs\space\electronicgoodstrader.npctype 12a13,17 > "behaviorConfig" : { > "wanderTime" : [0.25, 0.4], > "wanderWaitTime" : [10, 20] > }, > 56c61 < } \ No newline at end of file --- > } npcs\space\foodgoodstrader.npctype 12a13,17 > "behaviorConfig" : { > "wanderTime" : [0.25, 0.4], > "wanderWaitTime" : [10, 20] > }, > npcs\space\medicalgoodstrader.npctype 12a13,17 > "behaviorConfig" : { > "wanderTime" : [0.25, 0.4], > "wanderWaitTime" : [10, 20] > }, > 50c55 < } \ No newline at end of file --- > } npcs\space\militarygoodstrader.npctype 12a13,17 > "behaviorConfig" : { > "wanderTime" : [0.25, 0.4], > "wanderWaitTime" : [10, 20] > }, > 50c55 < } \ No newline at end of file --- > } objects\playerstation\expansionslot\expansionslot.lua 29a30,31 > > checkHidden() 37,41c39,60 < local grid = getGrid() < if not tileAvailable(grid, worldToTile(grid, self.expandPosition)) then < hide() < else < show() --- > local hidden = checkHidden() > if not hidden then > local grid = getGrid() > if not tileAvailable(grid, worldToTile(grid, self.expandPosition)) then > hide() > else > show() > end > end > end > > function checkHidden() > local console = world.loadUniqueEntity("playerstationconsole") > if console then > local hidden = world.sendEntityMessage(console, "hideExpansionSlots"):result() > if hidden then > hide() > return true > else > show() > return false > end 42a62 > return false objects\playerstation\playerstationconsole\playerstationconsole.lua 41,42c41,49 < self.hideExpansionSlots = false < message.setHandler("hideExpansionSlots", function() return self.hideExpansionSlots end) --- > storage.hideExpansionSlots = storage.hideExpansionSlots or false > message.setHandler("hideExpansionSlots", function() return storage.hideExpansionSlots end) > message.setHandler("setHideExpansionSlots", function(_, _, hide) > storage.hideExpansionSlots = hide > end) > > message.setHandler("setGravity", function(_, _, gravity) > setGravity(gravity) > end) 44,45c51 < world.setDungeonGravity(65532, 80) < world.setDungeonGravity(65531, 80) --- > setGravity(storage.gravity or 80) 76a83,86 > local interactData = root.assetJson(config.getParameter("interactData")) > interactData.gravity = storage.gravity > interactData.hideExpansionSlots = storage.hideExpansionSlots > return {config.getParameter("interactAction"), interactData} 108a119,125 > end > > function setGravity(gravity) > storage.gravity = gravity > world.setDungeonGravity(0, gravity) > world.setDungeonGravity(65532, gravity) > world.setDungeonGravity(65531, gravity) objects\playerstation\playerstationconsole\playerstationconsole.object 14c14 < --- > 37,38d36 < "offeredQuests" : [ "gaterepair" ], < 48c46,49 < "unbreakable" : true --- > "unbreakable" : true, > > "interactAction" : "ScriptPane", > "interactData" : "/interface/scripted/playerstationconsole/playerstationconsolegui.config" quests\outpost\mechupgrade1.questtemplate 5,6c5,6 < "text" : "I'm working on a shiny new mech weapon, but I need some help gathering some pieces. If you could ^green;go into space^white; and ^green;find me 10^orange; salvaged control circuits^white; and ^green;5 ^orange;salvaged power couplings^white;, I think that'll be enough to finish it!", < "completionText" : "These parts are enough for me to finish my new ^orange;Missile Rack arm^white;! As a token of my appreciation, I've sent a copy of the ^green;blueprint^white; to the ^green;mech assembly station^white; - you can go and make your own now!", --- > "text" : "I'm working on a shiny new mech weapon, but I need some help gathering some pieces. If you could ^green;go into space^white; and ^green;find me 10^orange; salvaged interface chips^white; and ^green;5 ^orange;salvaged power couplings^white;, I think that'll be enough to finish it!", > "completionText" : "These parts are enough for me to finish my new ^orange;Missile Rack arm^white;! As a token of my appreciation, I've sent a copy of the ^green;blueprint^white; to the ^green;mech part crafting table^white; - you can go and make your own now!", quests\outpost\mechupgrade2.questtemplate 3c3 < "prerequisites" : [ "penguin2" ], --- > "prerequisites" : [ "penguin2", "mechupgrade1" ], 6c6 < "completionText" : "You made it! I guess I didn't install enough giant sawblades. I've sent the blueprint for your new ^green;mech body part^white; to the ^green;mech assembly station^white;. Thanks again - it sure is helpful having a lab assistant!", --- > "completionText" : "You made it! I guess I didn't install enough giant sawblades. I've sent the blueprint for your new ^green;mech body part^white; to the ^green;mech part crafting table^white;. Thanks again - it sure is helpful having a lab assistant!", quests\outpost\penguin2.questtemplate 4c4 < "title" : "^green;Penguin Weaponry Testing Site", --- > "title" : "^orange;Penguin Weaponry Testing Site", radiomessages\mech.radiomessages 22a23,29 > "lava_mech" : { > "unique" : false, > "text" : "DANGER! Your mech's temperature control systems are failing! Evacuate immediately!", > "portraitImage" : "yell.", > "textSpeed" : 70 > }, > scripts\actions\monsters\space.lua 6c6,7 < aggressive = world.entityAggressive(entity.id()) --- > aggressive = world.entityAggressive(entity.id()), > persistent = entity.persistent() scripts\actions\npc\tonauac.lua 5c5 < local blessing = args.blessings[math.random(1,#blessings)] --- > local blessing = args.blessings[math.random(1,#args.blessings)] scripts\companions\player.lua 80a81,85 > -- don't attempt to spawn companions when entering a world without gravity > if world.gravity(entity.position()) <= 0 then > return true > end > treasure\space.treasurepools 395a396,423 > "penguinshipChest" : [ > [1, { > "fill" : [ > {"item" : [ "mechbodypenguin-recipe", 1]}, > {"pool" : "penguinshipCodex"}, > {"pool" : "commonSpaceItem"} > ], > "allowDuplication" : false > }] > ], > > "penguinshipCodex" : [ > [1, { > "pool" : [ > {"weight" : 0.1, "item" : [ "castleking01-codex", 1]}, > {"weight" : 0.1, "item" : [ "castleking02-codex", 1]}, > {"weight" : 0.1, "item" : [ "castleking03-codex", 1]}, > {"weight" : 0.1, "item" : [ "castleking04-codex", 1]}, > {"weight" : 0.1, "item" : [ "castleking05-codex", 1]}, > {"weight" : 0.1, "item" : [ "castleking06-codex", 1]} > ], > "poolRounds" : [ > [1, 1] > ], > "allowDuplication" : false > }] > ], > vehicles\modularmech\modularmech.lua 154a155,156 > self.liquidVulnerabilities = config.getParameter("liquidVulnerabilities") > 431a434,450 > end > > local inLiquid = world.liquidAt(mcontroller.position()) > if inLiquid then > local liquidName = root.liquidName(inLiquid[1]) > if self.liquidVulnerabilities[liquidName] then > storage.energy = math.max(0, storage.energy - self.liquidVulnerabilities[liquidName].energyDrain * dt) > if storage.energy == 0 then > explode() > return > end > > if not self.liquidVulnerabilities[liquidName].warned then > world.sendEntityMessage(self.ownerEntityId, "queueRadioMessage", self.liquidVulnerabilities[liquidName].message) > self.liquidVulnerabilities[liquidName].warned = true > end > end vehicles\modularmech\modularmech.vehicle 89c89,92 < "slopeSlidingFactor" : 0.0 --- > "slopeSlidingFactor" : 0.0, > > "liquidBuoyancy" : 0.8, > "liquidFriction" : 8.0 160a164,174 > } > }, > > "liquidVulnerabilities" : { > "lava" : { > "energyDrain" : 40, > "message" : "lava_mech" > }, > "corelava" : { > "energyDrain" : 40, > "message" : "lava_mech" vehicles\railtram\stationtram.vehicle 30c30 < "collisionPoly" : [ [-2.5, 3.75], [2.5, 3.75], [2.5, -0.25], [-2.5, -0.25] ], --- > "collisionPoly" : [ [-2.5, 3.75], [2.5, 3.75], [2.5, 0.5], [1.5, -0.25], [-1.5, -0.25], [-2.5, 0.5] ],