diff --git a/res/fonts/GameFont.woff2 b/res/fonts/GameFont.woff2 index dcce6163..b8ca0868 100644 Binary files a/res/fonts/GameFont.woff2 and b/res/fonts/GameFont.woff2 differ diff --git a/res/logo.png b/res/logo.png index a2ef8791..07ca979f 100644 Binary files a/res/logo.png and b/res/logo.png differ diff --git a/res/ui/building_tutorials/belt.png b/res/ui/building_tutorials/belt.png index d36cc813..ffeed6b5 100644 Binary files a/res/ui/building_tutorials/belt.png and b/res/ui/building_tutorials/belt.png differ diff --git a/res/ui/building_tutorials/cutter.png b/res/ui/building_tutorials/cutter.png index 6b9daca8..128b2784 100644 Binary files a/res/ui/building_tutorials/cutter.png and b/res/ui/building_tutorials/cutter.png differ diff --git a/res/ui/building_tutorials/miner.png b/res/ui/building_tutorials/miner.png index 2bc95bc3..a7f7c0ad 100644 Binary files a/res/ui/building_tutorials/miner.png and b/res/ui/building_tutorials/miner.png differ diff --git a/res/ui/building_tutorials/splitter.png b/res/ui/building_tutorials/splitter.png index ece30fb5..a29d76e4 100644 Binary files a/res/ui/building_tutorials/splitter.png and b/res/ui/building_tutorials/splitter.png differ diff --git a/res/ui/building_tutorials/trash.png b/res/ui/building_tutorials/trash.png index b33d1980..3d69bb53 100644 Binary files a/res/ui/building_tutorials/trash.png and b/res/ui/building_tutorials/trash.png differ diff --git a/res/ui/building_tutorials/underground_belt.png b/res/ui/building_tutorials/underground_belt.png index 693882e4..e7f2a797 100644 Binary files a/res/ui/building_tutorials/underground_belt.png and b/res/ui/building_tutorials/underground_belt.png differ diff --git a/res_built/atlas/atlas0_10.json b/res_built/atlas/atlas0_10.json index 676d8bb1..e30d4b64 100644 --- a/res_built/atlas/atlas0_10.json +++ b/res_built/atlas/atlas0_10.json @@ -431,6 +431,6 @@ "format": "RGBA8888", "size": {"w":121,"h":240}, "scale": "0.1", - "smartupdate": "$TexturePacker:SmartUpdate:e1aa43844bd41a62665cbb0c503ebb65:4482f83c3403490091eed64b07ce6591:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:6f541b04fa898735b7720261181cc97b:b18d1c683463edcbb86f64fc0c0cfac0:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_10.png b/res_built/atlas/atlas0_10.png index 9ddf1319..31b3a557 100644 Binary files a/res_built/atlas/atlas0_10.png and b/res_built/atlas/atlas0_10.png differ diff --git a/res_built/atlas/atlas0_100.json b/res_built/atlas/atlas0_100.json index d15c9c64..4343866f 100644 --- a/res_built/atlas/atlas0_100.json +++ b/res_built/atlas/atlas0_100.json @@ -431,6 +431,6 @@ "format": "RGBA8888", "size": {"w":1007,"h":1968}, "scale": "1", - "smartupdate": "$TexturePacker:SmartUpdate:e1aa43844bd41a62665cbb0c503ebb65:4482f83c3403490091eed64b07ce6591:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:6f541b04fa898735b7720261181cc97b:b18d1c683463edcbb86f64fc0c0cfac0:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_100.png b/res_built/atlas/atlas0_100.png index 5648f209..8feb3613 100644 Binary files a/res_built/atlas/atlas0_100.png and b/res_built/atlas/atlas0_100.png differ diff --git a/res_built/atlas/atlas0_25.json b/res_built/atlas/atlas0_25.json index 68ff1c35..576ad18f 100644 --- a/res_built/atlas/atlas0_25.json +++ b/res_built/atlas/atlas0_25.json @@ -431,6 +431,6 @@ "format": "RGBA8888", "size": {"w":591,"h":252}, "scale": "0.25", - "smartupdate": "$TexturePacker:SmartUpdate:e1aa43844bd41a62665cbb0c503ebb65:4482f83c3403490091eed64b07ce6591:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:6f541b04fa898735b7720261181cc97b:b18d1c683463edcbb86f64fc0c0cfac0:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_25.png b/res_built/atlas/atlas0_25.png index 1202bc04..16b22bc4 100644 Binary files a/res_built/atlas/atlas0_25.png and b/res_built/atlas/atlas0_25.png differ diff --git a/res_built/atlas/atlas0_50.json b/res_built/atlas/atlas0_50.json index 737bce47..abc8121a 100644 --- a/res_built/atlas/atlas0_50.json +++ b/res_built/atlas/atlas0_50.json @@ -431,6 +431,6 @@ "format": "RGBA8888", "size": {"w":1023,"h":509}, "scale": "0.5", - "smartupdate": "$TexturePacker:SmartUpdate:e1aa43844bd41a62665cbb0c503ebb65:4482f83c3403490091eed64b07ce6591:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:6f541b04fa898735b7720261181cc97b:b18d1c683463edcbb86f64fc0c0cfac0:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_50.png b/res_built/atlas/atlas0_50.png index 3dccb4a2..4116a654 100644 Binary files a/res_built/atlas/atlas0_50.png and b/res_built/atlas/atlas0_50.png differ diff --git a/res_built/atlas/atlas0_75.json b/res_built/atlas/atlas0_75.json index 6ecb53d1..b3551c3e 100644 --- a/res_built/atlas/atlas0_75.json +++ b/res_built/atlas/atlas0_75.json @@ -431,6 +431,6 @@ "format": "RGBA8888", "size": {"w":1125,"h":999}, "scale": "0.75", - "smartupdate": "$TexturePacker:SmartUpdate:e1aa43844bd41a62665cbb0c503ebb65:4482f83c3403490091eed64b07ce6591:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:6f541b04fa898735b7720261181cc97b:b18d1c683463edcbb86f64fc0c0cfac0:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_75.png b/res_built/atlas/atlas0_75.png index 50e8d316..63a12a6d 100644 Binary files a/res_built/atlas/atlas0_75.png and b/res_built/atlas/atlas0_75.png differ diff --git a/res_raw/sprites/buildings/hub.png b/res_raw/sprites/buildings/hub.png index d7953ee2..56a92ae7 100644 Binary files a/res_raw/sprites/buildings/hub.png and b/res_raw/sprites/buildings/hub.png differ diff --git a/src/css/ingame_hud/building_placer.scss b/src/css/ingame_hud/building_placer.scss index 25584fc7..55e9ef4d 100644 --- a/src/css/ingame_hud/building_placer.scss +++ b/src/css/ingame_hud/building_placer.scss @@ -10,7 +10,7 @@ justify-content: center; align-items: flex-start; @include S(border-radius, 4px); - background: rgba(#333, 0.5); + background: rgba(#333, 0.9); @include S(width, 200px); .buildingLabel { diff --git a/src/css/ingame_hud/buildings_toolbar.scss b/src/css/ingame_hud/buildings_toolbar.scss index 54adc41b..09663939 100644 --- a/src/css/ingame_hud/buildings_toolbar.scss +++ b/src/css/ingame_hud/buildings_toolbar.scss @@ -59,7 +59,7 @@ } &.selected { - background: rgb(140, 229, 140) !important; + background: rgb(173, 221, 253) !important; transform: scale(1.05); .keybinding { color: #111; diff --git a/src/css/ingame_hud/dialogs.scss b/src/css/ingame_hud/dialogs.scss index b7aca1e5..6ebc6f8f 100644 --- a/src/css/ingame_hud/dialogs.scss +++ b/src/css/ingame_hud/dialogs.scss @@ -25,12 +25,12 @@ > .dialogInner { background: #fff; @include S(min-width, 500px); - max-width: calc(100vw - #{D(50px)}); - max-height: calc(100vh - #{D(50px)}); + max-width: calc(100vw - #{D(40px)}); + max-height: calc(100vh - #{D(40px)}); @include S(border-radius, 4px); display: flex; flex-direction: column; - @include S(padding, 15px); + @include S(padding, 12px); pointer-events: all; > .title { @@ -38,6 +38,7 @@ margin: 0; text-transform: uppercase; display: grid; + align-items: center; grid-template-columns: 1fr auto; @include S(margin-bottom, 10px); @@ -45,7 +46,7 @@ opacity: 0.7; @include S(width, 20px); @include S(height, 20px); - background: uiResource("icons/close.png") center center / 60% no-repeat; + background: uiResource("icons/close.png") center center / 80% no-repeat; cursor: pointer; pointer-events: all; transition: opacity 0.2s ease-in-out; diff --git a/src/css/ingame_hud/shop.scss b/src/css/ingame_hud/shop.scss index c6ad0711..1740bcf0 100644 --- a/src/css/ingame_hud/shop.scss +++ b/src/css/ingame_hud/shop.scss @@ -10,8 +10,8 @@ @include S(border-radius, 3px); @include S(margin-bottom, 4px); @include S(padding, 5px, 10px); - @include S(grid-row-gap, 5px); - @include S(height, 95px); + @include S(grid-row-gap, 1px); + @include S(height, 85px); grid-template-rows: #{D(20px)} auto; &:last-child { @@ -19,38 +19,40 @@ } .title { - grid-column: 2 / 3; + grid-column: 1 / 3; grid-row: 1 / 2; - @include Heading; + @include PlainText; display: flex; align-items: center; + flex-direction: row-reverse; + justify-content: flex-end; .tier { - @include S(margin-left, 5px); + @include S(margin-right, 9px); background: $colorGreenBright; - @include S(border-radius, 4px); + @include S(border-radius, 2px); text-transform: uppercase; @include PlainText; color: #fff; + text-align: center; font-weight: bold; - @include S(margin-top, 1px); - + @include S(width, 45px); @include S(padding, 0px, 5px); &[data-tier="0"] { background-color: rgb(73, 186, 190); } &[data-tier="1"] { - background-color: rgb(73, 94, 190); + background-color: rgb(88, 110, 207); } &[data-tier="2"] { - background-color: rgb(186, 73, 190); + background-color: rgb(189, 100, 192); } &[data-tier="3"] { - background-color: rgb(96, 190, 73); + background-color: rgb(117, 192, 98); } &[data-tier="4"] { - background-color: rgb(190, 91, 73); + background-color: rgb(243, 77, 48); } &[data-tier="5"] { background-color: rgb(219, 184, 29); @@ -64,13 +66,15 @@ .icon { @include S(width, 40px); @include S(height, 40px); - background: center center / contain no-repeat; + background: center center / 80% no-repeat; align-self: center; justify-self: center; grid-column: 1 / 2; - grid-row: 1 / 4; - @include S(margin-right, 20px); - opacity: 0.2; + grid-row: 2 / 4; + @include S(margin-right, 30px); + @include S(margin-left, 10px); + opacity: 0.32; + display: none; } .description { @@ -87,7 +91,7 @@ grid-row: 3 / 4; display: grid; grid-auto-flow: column; - @include S(grid-gap, 15px); + @include S(grid-gap, 9px); justify-content: start; .requirement { @@ -110,7 +114,7 @@ @include S(line-height, 13px); @include S(border-radius, 2px); - @include S(padding, 0, 2px, 3px); + @include S(padding, 1px, 2px, 2px); position: relative; text-align: center; @include S(min-width, 50px); @@ -140,7 +144,7 @@ button.buy { grid-column: 3 / 4; grid-row: 3 / 4; - align-self: end; + align-self: center; justify-self: end; // @include S(padding, 4px, 5px); // @include PlainText; diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss index 1c9c5847..914aaf70 100644 --- a/src/css/states/main_menu.scss +++ b/src/css/states/main_menu.scss @@ -41,7 +41,7 @@ .playButton { @include SuperHeading; @include S(width, 130px); - @include S(padding, 15px, 20px, 10px); + @include S(padding, 15px, 20px); letter-spacing: 0.3em !important; color: #fff; background-color: #55585a; @@ -64,12 +64,10 @@ justify-content: center; background: #fafafa; @include S(padding, 5px); + @include S(padding-left, 10px); @include S(border-radius, 4px); @include S(margin-left, 10px); @include SuperSmallText(); - border: #{D(1px)} solid #44484a; - border-bottom: #{D(3px)} solid #44484a; - box-shadow: #{D(1px)} #{D(2px)} #{D(3px)} 0 rgba(0, 10, 20, 0.1); font-weight: bold; text-transform: uppercase; @@ -88,15 +86,15 @@ .thirdpartyLogo { display: inline-block; - width: 100%; - height: 100%; - background: center center / 85% no-repeat; + width: 80%; + height: 80%; + background: center center / 80% no-repeat; &.githubLogo { background-image: uiResource("main_menu/github.png"); } &.discordLogo { background-image: uiResource("main_menu/discord.png"); - background-size: 100%; + background-size: 95%; } } } diff --git a/src/js/core/config.js b/src/js/core/config.js index c578ff78..d180ebcc 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -23,7 +23,7 @@ export const globalConfig = { physicsDeltaSeconds: 0, // Update physics at N fps, independent of rendering - physicsUpdateRate: 60, + physicsUpdateRate: 55, // Map mapChunkSize: 32, @@ -39,8 +39,8 @@ export const globalConfig = { undergroundBeltMaxTiles: 5, buildingSpeeds: { - cutter: 1 / 6, - rotater: 1 / 2, + cutter: 1 / 2, + rotater: 1 / 1, painter: 1 / 3, mixer: 1 / 2, stacker: 1 / 5, @@ -66,7 +66,7 @@ export const globalConfig = { debug: { /* dev:start */ - fastGameEnter: false, + fastGameEnter: true, noArtificialDelays: true, disableSavegameWrite: false, showEntityBounds: false, diff --git a/src/js/game/buildings/belt_base.js b/src/js/game/buildings/belt_base.js index 2a74c629..31846cc1 100644 --- a/src/js/game/buildings/belt_base.js +++ b/src/js/game/buildings/belt_base.js @@ -24,7 +24,7 @@ export class MetaBeltBaseBuilding extends MetaBuilding { } getDescription() { - return "Transports items, hold and drag to place multiple, press 'R' to rotate."; + return "Transports items, hold and drag to place multiple."; } getPreviewSprite(rotationVariant) { diff --git a/src/js/game/buildings/splitter.js b/src/js/game/buildings/splitter.js index 4e6370e6..5b5aa27b 100644 --- a/src/js/game/buildings/splitter.js +++ b/src/js/game/buildings/splitter.js @@ -18,7 +18,7 @@ export class MetaSplitterBuilding extends MetaBuilding { } getName() { - return "Distribute"; + return "Balancer"; } getSilhouetteColor() { @@ -26,7 +26,7 @@ export class MetaSplitterBuilding extends MetaBuilding { } getDescription() { - return "Accepts up to two inputs and evenly distributes them on the outputs. Can also be used to merge two inputs into one output."; + return "Multifunctional - Evenly distributes all inputs onto all outputs."; } /** diff --git a/src/js/game/hub_goals.js b/src/js/game/hub_goals.js index 89aad926..932a73ac 100644 --- a/src/js/game/hub_goals.js +++ b/src/js/game/hub_goals.js @@ -311,7 +311,7 @@ export class HubGoals extends BasicSerializableObject { case enumItemProcessorTypes.hub: return 1e30; case enumItemProcessorTypes.splitter: - return (2 / globalConfig.beltSpeedItemsPerSecond) * this.upgradeImprovements.processors; + return (2 / globalConfig.beltSpeedItemsPerSecond) * this.upgradeImprovements.belt; case enumItemProcessorTypes.cutter: case enumItemProcessorTypes.rotater: case enumItemProcessorTypes.stacker: diff --git a/src/js/game/map_chunk.js b/src/js/game/map_chunk.js index a6d4ab55..992e3115 100644 --- a/src/js/game/map_chunk.js +++ b/src/js/game/map_chunk.js @@ -162,15 +162,21 @@ export class MapChunk { weights = { [enumSubShape.rect]: 100, [enumSubShape.circle]: Math_round(50 + clamp(distanceToOriginInChunks * 2, 0, 50)), - [enumSubShape.star]: Math_round(20 + clamp(distanceToOriginInChunks * 2, 0, 30)), - [enumSubShape.windmill]: Math_round(5 + clamp(distanceToOriginInChunks * 2, 0, 20)), + [enumSubShape.star]: Math_round(5 + clamp(distanceToOriginInChunks, 0, 30)), + [enumSubShape.windmill]: Math_round(3 + clamp(distanceToOriginInChunks / 2, 0, 20)), }; + if (distanceToOriginInChunks < 5) { + // Initial chunks can not spawn the good stuff + weights[enumSubShape.star] = 0; + weights[enumSubShape.windmill] = 0; + } + if (distanceToOriginInChunks < 7) { // Initial chunk patches always have the same shape const subShape = this.internalGenerateRandomSubShape(weights); subShapes = [subShape, subShape, subShape, subShape]; - } else if (distanceToOriginInChunks < 12) { + } else if (distanceToOriginInChunks < 17) { // Later patches can also have mixed ones const subShapeA = this.internalGenerateRandomSubShape(weights); const subShapeB = this.internalGenerateRandomSubShape(weights); diff --git a/src/js/game/upgrades.js b/src/js/game/upgrades.js index 3a261904..0b354a0f 100644 --- a/src/js/game/upgrades.js +++ b/src/js/game/upgrades.js @@ -43,7 +43,7 @@ export const UPGRADES = { }, { required: [{ shape: "RgRgSpSp:CwSwCwSw:Cr--Sw--", amount: 80000 }], - improvement: 8, + improvement: 4, }, ], }, @@ -66,7 +66,7 @@ export const UPGRADES = { }, { required: [{ shape: "WyWgWyWg:CbCpCbCp:Rp----Rp", amount: 90000 }], - improvement: 8, + improvement: 4, }, ], }, @@ -89,7 +89,7 @@ export const UPGRADES = { }, { required: [{ shape: "WyWgWyWg:CbCpCbCp:Rp----Rp", amount: 90000 }], - improvement: 8, + improvement: 4, }, ], }, @@ -112,169 +112,10 @@ export const UPGRADES = { }, { required: [{ shape: "WyWgWyWg:CbCpCbCp:Rp----Rp", amount: 90000 }], - improvement: 8, + improvement: 4, }, ], }, - - // cutter: { - // label: "Cut Half", - // description: improvement => "Speed +" + Math.floor(improvement * 100.0) + "%", - // tiers: [ - // { - // required: [{ shape: "----CuCu", amount: 450 }], - // improvement: 1, - // }, - // { - // required: [{ shape: "CpCpCpCp", amount: 12000 }], - // improvement: 2, - // }, - // { - // required: [{ shape: "CwRrWbSp:WcWrCpCw", amount: 45000 }], - // improvement: 4, - // }, - // { - // required: [{ shape: "CwRrWbSp:WcWrCpCw:WpWpWb--", amount: 100000 }], - // improvement: 8, - // }, - // ], - // }, - // splitter: { - // label: "Distribute", - // description: improvement => "Speed +" + Math.floor(improvement * 100.0) + "%", - // tiers: [ - // { - // required: [{ shape: "CuCu----", amount: 350 }], - // improvement: 1, - // }, - // { - // required: [{ shape: "CrCrCrCr", amount: 7000 }], - // improvement: 2, - // }, - // { - // required: [{ shape: "WyWyWyWy", amount: 30000 }], - // improvement: 4, - // }, - // { - // required: [{ shape: "WyWyWyWy:CwSpRgRc", amount: 100000 }], - // improvement: 8, - // }, - // ], - // }, - - // rotater: { - // label: "Rotate", - // description: improvement => "Speed +" + Math.floor(improvement * 100.0) + "%", - // tiers: [ - // { - // required: [{ shape: "RuRu----", amount: 750 }], - // improvement: 1, - // }, - // { - // required: [{ shape: "ScScScSc", amount: 3000 }], - // improvement: 2, - // }, - // { - // required: [{ shape: "ScSpRwRw:Cw----Cw", amount: 15000 }], - // improvement: 4, - // }, - // { - // required: [{ shape: "ScSpRwRw:Cw----Cw:CpCpCpCp", amount: 80000 }], - // improvement: 8, - // }, - // ], - // }, - - // underground_belt: { - // label: "Tunnel", - // description: improvement => "Speed +" + Math.floor(improvement * 100.0) + "%", - // tiers: [ - // { - // required: [{ shape: "--CuCu--", amount: 1000 }], - // improvement: 1, - // }, - // { - // required: [{ shape: "RbRb----", amount: 9000 }], - // improvement: 2, - // }, - // { - // required: [{ shape: "RbRb----:WpWpWpWp", amount: 25000 }], - // improvement: 4, - // }, - // { - // required: [{ shape: "RbRb----:WpWpWpWp:RwRwRpRp", amount: 100000 }], - // improvement: 8, - // }, - // ], - // }, - - // painter: { - // label: "Dye", - // description: improvement => "Speed +" + Math.floor(improvement * 100.0) + "%", - // tiers: [ - // { - // required: [{ shape: "------Ru", amount: 4000 }], - // improvement: 1, - // }, - // { - // required: [{ shape: "CcCcRgRg", amount: 15000 }], - // improvement: 2, - // }, - // { - // required: [{ shape: "CcCcRgRg:WgWgWgWg", amount: 35000 }], - // improvement: 4, - // }, - // { - // required: [{ shape: "CcCcRgRg:WgWgWgWg:CpRpCpRp", amount: 100000 }], - // improvement: 8, - // }, - // ], - // }, - - // mixer: { - // label: "Mix Colors", - // description: improvement => "Speed +" + Math.floor(improvement * 100.0) + "%", - // tiers: [ - // { - // required: [{ shape: "RgRgRgRg:CcCcCcCc", amount: 11000 }], - // improvement: 1, - // }, - // { - // required: [{ shape: "WyWgWyWg:CbCpCbCp", amount: 15000 }], - // improvement: 2, - // }, - // { - // required: [{ shape: "CcCcRgRg:WgWgWgWg:CpRpCpRp", amount: 45000 }], - // improvement: 4, - // }, - // { - // required: [{ shape: "CcCcRgRg:WgWgWgWg:CpRpCpRp:CpCpCpCp", amount: 100000 }], - // improvement: 8, - // }, - // ], - // }, - // stacker: { - // label: "Combine", - // description: improvement => "Speed +" + Math.floor(improvement * 100.0) + "%", - // tiers: [ - // { - // required: [{ shape: "CgCgRgRg", amount: 20000 }], - // improvement: 1, - // }, - // { - // required: [{ shape: "CgCgRgRg:WpRpWpRp", amount: 50000 }], - // improvement: 2, - // }, - // { - // required: [{ shape: "CgCgRgRg:WpRpWpRp:SpSwSpSw", amount: 70000 }], - // improvement: 4, - // }, - // { - // required: [{ shape: "CgCgRgRg:WpRpWpRp:SpSwSpSw:CwCwCwCw", amount: 100000 }], - // improvement: 8, - // }, - // ], - // }, }; // Tiers need % of the previous tier as requirement too