FILES ----- instance_worlds.config systemworld.config behaviors\npc\overrides\override-notification.behavior dungeons\space\hazards\hazard-wreckage1.json dungeons\space\spaceencounter\base_ruin3.json dungeons\space\spaceencounter\neutral_mining_asteroid12.json dungeons\space\spaceencounter\neutral_mining_asteroid18.json dungeons\space\spaceencounter\neutral_mining_asteroid20.json dungeons\space\spaceencounter\neutral_mining_asteroid3.json [NEW] dungeons\space\spaceencounter\protectorate_base.json dungeons\space\spaceencounter\refinery1.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_bottom1b.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\bookmarks\icons\deploy.png interface\cockpit\cockpit.config interface\cockpit\cockpit.lua interface\cockpit\cockpitutil.lua interface\placestation\placestation.config interface\placestation\placestation.lua items\active\weapons\ranged\unrand\spaceplasmarifle\spaceplasmarifle.activeitem items\armors\decorative\clothes\jeans2\pants.png objects\playerstation\expansionslot\expansionslot.lua objects\playerstation\expansionslot\expansionslot.object player\playereffects.animation projectiles\physics.config radiomessages\mech.radiomessages scripts\actions\overrides.lua scripts\behavior\bdata.lua scripts\deployment\playermechdeployment.lua sfx\interface\stationtransponder_probelaunch2.ogg treasure\space.treasurepools vehicles\modularmech\mechparts_arm.config vehicles\modularmech\armscripts\drillarm.lua DIFFS ----- instance_worlds.config 895c895 < "dungeonWorld" : "penguinship", --- > "dungeonWorld" : "spaceencounter", systemworld.config 37a38 > "clientObjectSpawnPadding" : 5, behaviors\npc\overrides\override-notification.behavior 51c51 < "list" : "notificationOverrides", --- > "list": "notificationOverrides", 149c149 < } --- > } \ No newline at end of file dungeons\space\hazards\hazard-wreckage1.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\neutral_mining_asteroid12.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\neutral_mining_asteroid18.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\neutral_mining_asteroid20.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\neutral_mining_asteroid3.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\refinery1.json [TMX file differences are left out for huge size.] dungeons\space\spaceencounter\spaceencounter.dungeon 65c65,66 < "astrofae_haven" --- > "astrofae_haven", > "protectorate_base" 750c751 < "minimumThreatLevel" : 4.9, --- > "minimumThreatLevel" : 3.9, 760a762,770 > "chance" : 1 > }, > > // PROTECTORATE BASE > { > "name" : "protectorate_base", > "minimumThreatLevel" : 5.9, > "rules" : [], > "def" : [ "tmx", "protectorate_base.json" ], 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_bottom1b.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 746a747,758 > }, > > "transitLabel" : { > "type" : "label", > "visible" : false, > "position" : [198, 170], > "hAnchor" : "mid", > "vAnchor" : "mid", > "width" : 120, > "value" : "SHIP IN TRANSIT", > "fontSize" : 24, > "mouseTransparent" : true 1322a1335,1337 > > "transitColor" : [255, 255, 255, 255], > "transitPulse" : [0.7, 0.9], interface\cockpit\cockpit.lua 26c26,28 < if contains(player.shipUpgrades().capabilities, "planetTravel") then --- > if celestial.skyInHyperspace() then > self.state:set(transitState) > elseif contains(player.shipUpgrades().capabilities, "planetTravel") then 28,29d29 < elseif celestial.skyFlyingType() == "maintain" then < self.state:set(universeMoveState, {0, 0}, systems, systemPosition(celestial.currentSystem()), {system = celestial.currentSystem()}, {}) 373a374,394 > return self.state:set(systemScreenState, celestial.currentSystem()) > end > > function transitState() > View:reset() > View:setCamera("universe", systemPosition(celestial.currentSystem()), "system") > widget.setVisible("transitLabel", true) > > local color = config.getParameter("transitColor") > local pulse = config.getParameter("transitPulse") > > local timer = 0 > while celestial.skyFlyingType() == "warp" do > timer = timer + script.updateDt() > local ratio = (math.sin((timer % 1) / 1 * math.pi * 2) + 1.0) / 2.0 > color[4] = 255 * (pulse[1] + (ratio * (pulse[2] - pulse[1]))) > widget.setFontColor("transitLabel", color) > coroutine.yield() > end > > widget.setVisible("transitLabel", false) interface\cockpit\cockpitutil.lua 159d158 < sb.logInfo("Is coordinate of type: %s", parameters.worldType) interface\placestation\placestation.config 264,265c264 < "objectOrbitWidth" : 10.0, < "orbitWidthPadding" : 1.0, --- > "extraOrbitPadding" : 0.0, 273c272,273 < "deploying" : 8.0 --- > "deploying" : 8.0, > "deployFailure" : 16.0 // must be higher than deploying time 274a275 > "errorColor" : [255, 0, 0], 279c280,281 < "deployed" : "^green;Station deployed" --- > "deployed" : "^green;Station deployed", > "error" : "Error deploying probe. \nConnection lost..." 296c298,299 < "success" : "/sfx/cinematics/mission_unlock_event.ogg" --- > "success" : "/sfx/cinematics/mission_unlock_event.ogg", > "error" : "/sfx/interface/clickon_error.ogg" interface\placestation\placestation.lua 16a17,20 > self.padding = root.assetJson("/systemworld.config:clientObjectSpawnPadding") > -- extra padding to give some wiggle room > self.extraPadding = config.getParameter("extraOrbitPadding") > 125a130 > pane.playSound(self.sounds.error) 136,138c141 < widget.setVisible("coordinateLabel", true); < local padding = config.getParameter("orbitWidthPadding") < local objectOrbitWidth = config.getParameter("objectOrbitWidth") --- > widget.setVisible("coordinateLabel", true); 163c166 < if selectDistance < starSize then --- > if selectDistance < starSize + self.padding + self.extraPadding then 169d171 < local size = celestial.planetSize(planet) / 2 171,173c173,175 < local width = celestial.clusterSize(planet) + padding < if orbit + width > maxOrbit then < maxOrbit = orbit + width --- > local width = (celestial.clusterSize(planet) / 2) > if orbit + width + (self.padding * 2) > maxOrbit then > maxOrbit = orbit + width + (self.padding * 2) 175c177 < if math.abs(selectDistance - orbit) < width / 2 then --- > if math.abs(selectDistance - orbit) < width + self.padding + self.extraPadding then 188,189c190 < local width = objectOrbitWidth + padding < if math.abs(selectDistance - orbit) < width / 2 then --- > if math.abs(selectDistance - orbit) < self.padding + self.extraPadding then 195c196 < renderOrbits(system, planets, celestial.systemObjects(), objectOrbitWidth, padding, true) --- > renderOrbits(system, planets, celestial.systemObjects(), self.padding + self.extraPadding, true) 207c208 < if down and validDistance then --- > if button == 0 and down and validDistance then 220,221d220 < local padding = config.getParameter("orbitWidthPadding") < local objectOrbitWidth = config.getParameter("objectOrbitWidth") 227c226,227 < local orbit = vec2.mag(deployPosition) --- > local orbit = vec2.mag(deployPosition) * View.systemCamera.scale > local points = 4 * math.sqrt(orbit) 244,245c244,245 < renderOrbits(system, planets, celestial.systemObjects(), objectOrbitWidth, padding, false) < View.canvas:drawPoly(circle(orbit * View.systemCamera.scale, 40, View:sToScreen({0, 0})), {0, 255, 0}) --- > renderOrbits(system, planets, celestial.systemObjects(), self.padding + self.extraPadding, false) > View.canvas:drawPoly(circle(orbit, points, View:sToScreen({0, 0})), {0, 255, 0}) 259c259 < renderOrbits(system, planets, celestial.systemObjects(), objectOrbitWidth, padding, false) --- > renderOrbits(system, planets, celestial.systemObjects(), self.padding + self.extraPadding, false) 261c261 < View.canvas:drawPoly(circle(orbit * View.systemCamera.scale, 40, View:sToScreen({0, 0})), {0, 255, 0}) --- > View.canvas:drawPoly(circle(orbit, points, View:sToScreen({0, 0})), {0, 255, 0}) 279c279 < renderOrbits(system, planets, celestial.systemObjects(), objectOrbitWidth, padding, false) --- > renderOrbits(system, planets, celestial.systemObjects(), self.padding + self.extraPadding, false) 294c294 < View.canvas:drawPoly(circle(orbit * View.systemCamera.scale, 20, View:sToScreen(deployPosition)), {255, 255, 255, (1 -ratio) * 255}, 0.5) --- > View.canvas:drawPoly(circle(orbit, 4 * math.sqrt(orbit), View:sToScreen(deployPosition)), {255, 255, 255, (1 -ratio) * 255}, 0.5) 303d302 < world.sendEntityMessage(player.id(), "setTransponderConsumed") 307a307 > world.sendEntityMessage(player.id(), "setTransponderConsumed") 311a312,314 > if timer > sequence.deployFailure then > break > end 315,322c318,326 < pane.playSound(self.sounds.complete) < pane.playSound(self.sounds.success) < < widget.setText("connectingLabel", sequenceText.deployed) < util.wait(2.0, function() < View.canvas:clear() < renderOrbits(system, planets, celestial.systemObjects(), objectOrbitWidth, padding, false) < end) --- > if uuid and celestial.systemObjectPosition(uuid) ~= nil then > pane.playSound(self.sounds.complete) > pane.playSound(self.sounds.success) > > widget.setText("connectingLabel", sequenceText.deployed) > util.wait(2.0, function() > View.canvas:clear() > renderOrbits(system, planets, celestial.systemObjects(), self.padding + self.extraPadding, false) > end) 324,325c328,341 < world.sendEntityMessage(player.id(), "consumeTransponder") < while true do --- > world.sendEntityMessage(player.id(), "consumeTransponder") > while true do > coroutine.yield() > end > else > widget.setText("connectingLabel", sequenceText.error) > widget.setFontColor("connectingLabel", config.getParameter("errorColor")) > pane.playSound(self.sounds.error) > util.wait(4.0, function() > View.canvas:clear() > renderOrbits(system, planets, celestial.systemObjects(), self.padding + self.extraPadding, false) > View.canvas:drawPoly(circle(orbit, points, View:sToScreen({0, 0})), {255, 0, 0}) > end) > pane.dismiss() 330c346 < function renderOrbits(system, planets, objects, objectOrbitWidth, padding, withDeadzones) --- > function renderOrbits(system, planets, objects, padding, withDeadzones) 334c350 < local starSize = celestial.planetSize(system) / 2 --- > local starSize = celestial.planetSize(system) / 2 + self.padding + self.extraPadding 340,341c356,357 < local orbit = vec2.mag(planetPosition) < local width = celestial.clusterSize(planet) + padding --- > local orbit = vec2.mag(planetPosition) * View.systemCamera.scale > local width = celestial.clusterSize(planet) + padding * 2 343c359 < View.canvas:drawTriangles(wideCircle(orbit * View.systemCamera.scale, 40, width * View.systemCamera.scale, View:sToScreen({0, 0})), {40, 0, 0, 255}) --- > View.canvas:drawTriangles(wideCircle(orbit, 5 * math.sqrt(orbit), width * View.systemCamera.scale, View:sToScreen({0, 0})), {40, 0, 0, 255}) 345c361 < View.canvas:drawPoly(poly.translate(circle(orbit * View.systemCamera.scale, 40), View:sToScreen({0, 0})), color, 1.0) --- > View.canvas:drawPoly(poly.translate(circle(orbit, 4 * math.sqrt(orbit)), View:sToScreen({0, 0})), color, 1.0) 351,353c367,369 < local orbit = vec2.mag(vec2.sub(moonPosition, planetPosition)) < View.canvas:drawPoly(poly.translate(circle(orbit * View.systemCamera.scale, 12), View:sToScreen(planetPosition)), color, 0.5) < View.canvas:drawTriangles(fillCircle(size * View.systemCamera.scale, 6, View:sToScreen(celestial.planetPosition(moon))), color) --- > local orbit = vec2.mag(vec2.sub(moonPosition, planetPosition)) * View.systemCamera.scale > View.canvas:drawPoly(poly.translate(circle(orbit, 4 * math.sqrt(orbit)), View:sToScreen(planetPosition)), color, 0.5) > View.canvas:drawTriangles(fillCircle(size, 6, View:sToScreen(celestial.planetPosition(moon))), color) 361,362c377,378 < local orbit = vec2.mag(position) < local width = objectOrbitWidth + padding --- > local orbit = vec2.mag(position) * View.systemCamera.scale > local width = padding * 2 364c380 < View.canvas:drawTriangles(wideCircle(orbit * View.systemCamera.scale, 40, width * View.systemCamera.scale, View:sToScreen({0, 0})), {40, 0, 0, 255}) --- > View.canvas:drawTriangles(wideCircle(orbit, 5 * math.sqrt(orbit), width * View.systemCamera.scale, View:sToScreen({0, 0})), {40, 0, 0, 255}) 366c382 < View.canvas:drawPoly(poly.translate(circle(orbit * View.systemCamera.scale, 40), View:sToScreen({0, 0})), "white", 0.5) --- > View.canvas:drawPoly(poly.translate(circle(orbit, 4 * math.sqrt(orbit)), View:sToScreen({0, 0})), "white", 0.5) items\active\weapons\ranged\unrand\spaceplasmarifle\spaceplasmarifle.activeitem 53c53,54 < "fire" : ["/sfx/gun/plasma_ar4.ogg"] --- > "fire" : ["/sfx/gun/plasma_ar4.ogg"], > "altFire" : [ "/sfx/gun/plasma_shotgun1.ogg" ] 111,112c112,114 < "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], < "class" : "GunFire", --- > "name" : "Sticky Plasma Mines", > "scripts" : ["/items/active/weapons/ranged/abilities/altfire.lua"], > "class" : "AltFireAttack", 115,116c117 < "baseDps" : 11, < "energyUsage" : 40, --- > "energyUsage" : 35, 119a121,122 > > "useParticleEmitter" : false, objects\playerstation\expansionslot\expansionslot.lua 31c31,35 < checkHidden() --- > if storage.hidden then > hide() > else > show() > end 72a77 > storage.hidden = true 78a84 > storage.hidden = false objects\playerstation\expansionslot\expansionslot.object 85c85 < "updateDelta" : 60, --- > "scriptDelta" : 30, player\playereffects.animation 59a60,61 > "mode" : "transition", > "transition" : "none", projectiles\physics.config 38c38 < "airFriction" : 0.2, --- > "airFriction" : 0, radiomessages\mech.radiomessages 87a88,93 > }, > > "spaceencounter02" : { > "type" : "generic", > "text" : "This appears to be an old Terrene Protectorate Storage Facility. No such place exists on my records.", > "textSpeed" : 70 scripts\actions\overrides.lua 99c99 < local result = tree:run(tree, dt) --- > local result = tree:run(dt) scripts\behavior\bdata.lua 90c90 < return true, {list = list, entity = value, number = value, position = value, vector = value} --- > return true, {list = list, entity = value, number = value, position = value, vector = value, table = value} scripts\deployment\playermechdeployment.lua 114a115,116 > localAnimator.clearDrawables() > treasure\space.treasurepools 370c370 < "pool" : [ --- > "fill" : [ 382c382 < "pool" : [ --- > "fill" : [ 390a391,418 > ], > "allowDuplication" : false > }] > ], > > "protectorateshipChest" : [ > [1, { > "fill" : [ > {"weight" : 0.95, "pool" : "commonSpaceItem"}, > {"weight" : 0.05, "pool" : "rareSpaceItem"} > ], > "poolRounds" : [ > [0.50, 2], > [0.30, 3], > [0.20, 4] > ], > "allowDuplication" : false > }], > [5.9, { > "fill" : [ > {"weight" : 0.95, "item" : [ "mechbodyprotector-recipe", 1]}, > {"weight" : 0.05, "pool" : "commonSpaceItem"}, > {"weight" : 0.05, "pool" : "rareSpaceItem"} > ], > "poolRounds" : [ > [0.50, 3], > [0.30, 4], > [0.20, 5] vehicles\modularmech\mechparts_arm.config 636c636 < "damageKind" : "plasma", --- > "damageSourceKind" : "plasma", 761c761 < "damageKind" : "fireplasma", --- > "damageSourceKind" : "fireplasma", 1311c1311 < "damageKind" : "spear", --- > "damageSourceKind" : "spear", 1334,1335c1334,1335 < "animatedParts" : { "stateTypes" : { "" : { < "states" : { --- > "animatedParts" : { > "stateTypes" : { "" : { "states" : { 1351a1352 > "mode" : "loop", 1357a1359,1366 > }}}, > "parts" : { > "" : { "partStates" : { "" : { "winddown" : { "properties" : { > "image" : ":windup." > }}}}}, > "Fullbright" : { "partStates" : { "" : { "winddown" : { "properties" : { > "image" : ":windup." > }}}}} 1359c1368 < }}} --- > } vehicles\modularmech\armscripts\drillarm.lua 31c31 < animator.setAnimationState(self.armName, "windup") --- > animator.setAnimationState(self.armName, self.isFiring and "windup" or "winddown")