mirror of
https://github.com/tobspr/shapez.io.git
synced 2024-10-27 20:34:29 +00:00
Re-balance
This commit is contained in:
parent
091ffd1031
commit
05847add71
@ -31,6 +31,7 @@ export const CHANGELOG = [
|
||||
"Show mouse and camera tile on debug overlay (F4) (by dengr)",
|
||||
"Fix belt planner placing the belt when a dialog opens in the meantime",
|
||||
"Added confirmation when deleting a savegame",
|
||||
"Make chained mainer the default and only option after unlocking it",
|
||||
"Fixed tunnels entrances connecting to exits sometimes when they shouldn't",
|
||||
"You can now pan the map with your mouse by moving the cursor to the edges of the screen!",
|
||||
"Added setting to auto select the extractor when pipetting a resource patch (by Exund)",
|
||||
|
@ -65,13 +65,13 @@ export const globalConfig = {
|
||||
|
||||
buildingSpeeds: {
|
||||
cutter: 1 / 4,
|
||||
cutterQuad: 1 / 4,
|
||||
cutterQuad: 1 / 3,
|
||||
rotater: 1 / 1,
|
||||
rotaterCCW: 1 / 1,
|
||||
rotater180: 1 / 1,
|
||||
painter: 1 / 6,
|
||||
painterDouble: 1 / 8,
|
||||
painterQuad: 1 / 8,
|
||||
painterQuad: 1 / 2,
|
||||
mixer: 1 / 5,
|
||||
stacker: 1 / 6,
|
||||
},
|
||||
|
@ -212,7 +212,7 @@ export class HubGoals extends BasicSerializableObject {
|
||||
this.currentGoal = {
|
||||
/** @type {ShapeDefinition} */
|
||||
definition: this.createRandomShape(),
|
||||
required: findNiceIntegerValue(5000 + Math.pow(this.level * 2000, 0.75)),
|
||||
required: findNiceIntegerValue(1000 + Math.pow(this.level * 2000, 0.8)),
|
||||
reward: enumHubGoalRewards.no_reward_freeplay,
|
||||
};
|
||||
}
|
||||
|
@ -18,12 +18,19 @@ export const enumHubGoalRewards = {
|
||||
reward_rotater_180: "reward_rotater_180",
|
||||
reward_miner_chainable: "reward_miner_chainable",
|
||||
reward_underground_belt_tier_2: "reward_underground_belt_tier_2",
|
||||
reward_belt_reader: "reward_belt_reader",
|
||||
reward_splitter: "reward_splitter",
|
||||
reward_cutter_quad: "reward_cutter_quad",
|
||||
reward_painter_double: "reward_painter_double",
|
||||
reward_painter_quad: "reward_painter_quad",
|
||||
reward_storage: "reward_storage",
|
||||
reward_merger: "reward_merger",
|
||||
reward_wires_filters_and_levers: "reward_wires_filters_and_levers",
|
||||
reward_display: "reward_display",
|
||||
reward_constant_signal: "reward_constant_signal",
|
||||
reward_logic_gates: "reward_logic_gates",
|
||||
reward_virtual_processing: "reward_virtual_processing",
|
||||
reward_second_wire: "reward_second_wire",
|
||||
|
||||
reward_blueprints: "reward_blueprints",
|
||||
reward_freeplay: "reward_freeplay",
|
||||
@ -99,11 +106,11 @@ export const tutorialGoals = [
|
||||
{
|
||||
shape: "CpCpCpCp", // belts t3
|
||||
required: 800,
|
||||
reward: enumHubGoalRewards.reward_splitter,
|
||||
reward: enumHubGoalRewards.reward_merger,
|
||||
},
|
||||
|
||||
// 10
|
||||
// Star shape + cyan
|
||||
// STACKER: Star shape + cyan
|
||||
{
|
||||
shape: "ScScScSc", // miners t3
|
||||
required: 900,
|
||||
@ -111,7 +118,7 @@ export const tutorialGoals = [
|
||||
},
|
||||
|
||||
// 11
|
||||
// Stacker
|
||||
// Chainable miner
|
||||
{
|
||||
shape: "CgScScCg", // processors t3
|
||||
required: 1000,
|
||||
@ -127,6 +134,7 @@ export const tutorialGoals = [
|
||||
},
|
||||
|
||||
// 13
|
||||
// Tunnel Tier 2
|
||||
{
|
||||
shape: "RpRpRpRp:CwCwCwCw", // painting t3
|
||||
required: 5000,
|
||||
@ -134,44 +142,121 @@ export const tutorialGoals = [
|
||||
},
|
||||
|
||||
// 14
|
||||
// Belt reader
|
||||
{
|
||||
// @todo
|
||||
shape: "CuCuCuCu",
|
||||
required: 7000,
|
||||
reward: enumHubGoalRewards.reward_belt_reader,
|
||||
},
|
||||
|
||||
// 15
|
||||
// Storage
|
||||
{
|
||||
shape: "SrSrSrSr:CyCyCyCy", // unused
|
||||
required: 7500,
|
||||
reward: enumHubGoalRewards.reward_storage,
|
||||
},
|
||||
|
||||
// 15
|
||||
// 16
|
||||
// Quad Cutter
|
||||
{
|
||||
shape: "SrSrSrSr:CyCyCyCy:SwSwSwSw", // belts t4 (two variants)
|
||||
required: 15000,
|
||||
required: 12500,
|
||||
reward: enumHubGoalRewards.reward_cutter_quad,
|
||||
},
|
||||
|
||||
// 16
|
||||
// 17
|
||||
// Double painter
|
||||
{
|
||||
shape: "CbRbRbCb:CwCwCwCw:WbWbWbWb", // miner t4 (two variants)
|
||||
required: 20000,
|
||||
required: 15000,
|
||||
reward: enumHubGoalRewards.reward_painter_double,
|
||||
},
|
||||
|
||||
// 17
|
||||
// 18
|
||||
// Rotater (180deg)
|
||||
{
|
||||
shape: "CbRbRbCb:CwCwCwCw:WbWbWbWb", // rotater 180
|
||||
required: 25000,
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 20000,
|
||||
reward: enumHubGoalRewards.reward_rotater_180,
|
||||
},
|
||||
|
||||
// 18
|
||||
// 19
|
||||
// Compact splitter
|
||||
{
|
||||
shape: "WrRgWrRg:CwCrCwCr:SgSgSgSg", // processors t4 (two variants)
|
||||
required: 30000,
|
||||
reward: enumHubGoalRewards.reward_painter_quad,
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 25000,
|
||||
reward: enumHubGoalRewards.reward_splitter,
|
||||
},
|
||||
|
||||
// 19
|
||||
// 20
|
||||
// WIRES
|
||||
{
|
||||
shape: finalGameShape,
|
||||
required: 50000,
|
||||
reward: enumHubGoalRewards.reward_wires_filters_and_levers,
|
||||
},
|
||||
|
||||
// 21
|
||||
// Display
|
||||
{
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 25000,
|
||||
reward: enumHubGoalRewards.reward_display,
|
||||
},
|
||||
|
||||
// 22
|
||||
// Constant signal
|
||||
{
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 30000,
|
||||
reward: enumHubGoalRewards.reward_constant_signal,
|
||||
},
|
||||
|
||||
// 23
|
||||
// Quad Painter
|
||||
{
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
// shape: "WrRgWrRg:CwCrCwCr:SgSgSgSg", // processors t4 (two variants)
|
||||
required: 35000,
|
||||
reward: enumHubGoalRewards.reward_painter_quad,
|
||||
},
|
||||
|
||||
// 24 Logic gates
|
||||
{
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 40000,
|
||||
reward: enumHubGoalRewards.reward_logic_gates,
|
||||
},
|
||||
|
||||
// 25 Virtual Processing
|
||||
{
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 45000,
|
||||
reward: enumHubGoalRewards.reward_virtual_processing,
|
||||
},
|
||||
|
||||
// 26 Secondary type of wire
|
||||
{
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 50000,
|
||||
reward: enumHubGoalRewards.reward_second_wire,
|
||||
},
|
||||
|
||||
// 27 Freeplay
|
||||
{
|
||||
// @TODO
|
||||
shape: "CuCuCuCu",
|
||||
required: 100000,
|
||||
reward: enumHubGoalRewards.reward_freeplay,
|
||||
},
|
||||
];
|
||||
|
@ -12,6 +12,9 @@ import { MetaTrashBuilding, enumTrashVariants } from "./buildings/trash";
|
||||
/** @typedef {Array<[typeof MetaBuilding, string]>} TutorialGoalReward */
|
||||
|
||||
import { enumHubGoalRewards } from "./tutorial_goals";
|
||||
import { MetaReaderBuilding } from "./buildings/reader";
|
||||
import { MetaDisplayBuilding } from "./buildings/display";
|
||||
import { MetaConstantSignalBuilding } from "./buildings/constant_signal";
|
||||
|
||||
/**
|
||||
* Helper method for proper types
|
||||
@ -45,6 +48,14 @@ export const enumHubGoalRewardsToContentUnlocked = {
|
||||
[enumHubGoalRewards.reward_painter_quad]: typed([[MetaPainterBuilding, enumPainterVariants.quad]]),
|
||||
[enumHubGoalRewards.reward_storage]: typed([[MetaTrashBuilding, enumTrashVariants.storage]]),
|
||||
|
||||
[enumHubGoalRewards.reward_belt_reader]: typed([[MetaReaderBuilding, defaultBuildingVariant]]),
|
||||
[enumHubGoalRewards.reward_display]: typed([[MetaDisplayBuilding, defaultBuildingVariant]]),
|
||||
[enumHubGoalRewards.reward_constant_signal]: typed([
|
||||
[MetaConstantSignalBuilding, defaultBuildingVariant],
|
||||
]),
|
||||
[enumHubGoalRewards.reward_second_wire]: null, // @TODO!
|
||||
|
||||
[enumHubGoalRewards.reward_wires_filters_and_levers]: null,
|
||||
[enumHubGoalRewards.reward_freeplay]: null,
|
||||
[enumHubGoalRewards.no_reward]: null,
|
||||
[enumHubGoalRewards.no_reward_freeplay]: null,
|
||||
|
@ -38,7 +38,7 @@ export const UPGRADES = {
|
||||
required: [{ shape: "SrSrSrSr:CyCyCyCy:SwSwSwSw", amount: 20000 }],
|
||||
},
|
||||
{
|
||||
required: [{ shape: finalGameShape, amount: 75000 }],
|
||||
required: [{ shape: finalGameShape, amount: 50000 }],
|
||||
excludePrevious: true,
|
||||
},
|
||||
],
|
||||
@ -60,7 +60,7 @@ export const UPGRADES = {
|
||||
required: [{ shape: "CbRbRbCb:CwCwCwCw:WbWbWbWb", amount: 30000 }],
|
||||
},
|
||||
{
|
||||
required: [{ shape: finalGameShape, amount: 85000 }],
|
||||
required: [{ shape: finalGameShape, amount: 65000 }],
|
||||
excludePrevious: true,
|
||||
},
|
||||
],
|
||||
@ -82,7 +82,7 @@ export const UPGRADES = {
|
||||
required: [{ shape: "WrRgWrRg:CwCrCwCr:SgSgSgSg", amount: 30000 }],
|
||||
},
|
||||
{
|
||||
required: [{ shape: finalGameShape, amount: 100000 }],
|
||||
required: [{ shape: finalGameShape, amount: 75000 }],
|
||||
excludePrevious: true,
|
||||
},
|
||||
],
|
||||
@ -104,7 +104,7 @@ export const UPGRADES = {
|
||||
required: [{ shape: "WpWpWpWp:CwCwCwCw:WpWpWpWp:CwCwCwCw", amount: 30000 }],
|
||||
},
|
||||
{
|
||||
required: [{ shape: finalGameShape, amount: 125000 }],
|
||||
required: [{ shape: finalGameShape, amount: 100000 }],
|
||||
excludePrevious: true,
|
||||
},
|
||||
],
|
||||
|
@ -687,7 +687,9 @@ storyRewards:
|
||||
|
||||
reward_miner_chainable:
|
||||
title: Chaining Extractor
|
||||
desc: You have unlocked the <strong>chaining extractor</strong>! It can <strong>forward its resources</strong> to other extractors so you can more efficiently extract resources!
|
||||
desc: >-
|
||||
You have unlocked the <strong>chained extractor</strong>! It can <strong>forward its resources</strong> to other extractors so you can more efficiently extract resources!<br><br>
|
||||
PS: The old extractor has been replaced in your toolbar now!
|
||||
|
||||
reward_underground_belt_tier_2:
|
||||
title: Tunnel Tier II
|
||||
@ -703,6 +705,11 @@ storyRewards:
|
||||
desc: >-
|
||||
You have unlocked a merger variant of the <strong>balancer</strong> - It accepts one input and splits them into two!
|
||||
|
||||
reward_belt_reader:
|
||||
title: Belt reader
|
||||
desc: >-
|
||||
You have now unlocked the <strong>belt reader</strong>! It allows you to measure the throughput of a belt.<br><br>And wait until you unlock wires - then it gets really useful!
|
||||
|
||||
reward_cutter_quad:
|
||||
title: Quad Cutting
|
||||
desc: You have unlocked a variant of the <strong>cutter</strong> - It allows you to cut shapes in <strong>four parts</strong> instead of just two!
|
||||
@ -713,16 +720,14 @@ storyRewards:
|
||||
|
||||
reward_painter_quad:
|
||||
title: Quad Painting
|
||||
desc: You have unlocked a variant of the <strong>painter</strong> - It allows you to paint each part of the shape individually!
|
||||
desc: >-
|
||||
You have unlocked a variant of the <strong>painter</strong> - It allows you to paint each part of the shape individually!<br><br>
|
||||
To use it, connect each slot which should be painted on the wires layer!
|
||||
|
||||
reward_storage:
|
||||
title: Storage Buffer
|
||||
desc: You have unlocked a variant of the <strong>trash</strong> - It allows you to store items up to a given capacity!
|
||||
|
||||
reward_freeplay:
|
||||
title: Freeplay
|
||||
desc: You did it! You unlocked the <strong>free-play mode</strong>! This means that shapes are now randomly generated! (No worries, more content is planned for the standalone!)
|
||||
|
||||
reward_blueprints:
|
||||
title: Blueprints
|
||||
desc: You can now <strong>copy and paste</strong> parts of your factory! Select an area (Hold CTRL, then drag with your mouse), and press 'C' to copy it.<br><br>Pasting it is <strong>not free</strong>, you need to produce <strong>blueprint shapes</strong> to afford it! (Those you just delivered).
|
||||
@ -731,6 +736,45 @@ storyRewards:
|
||||
title: Rotater (180 degrees)
|
||||
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows you to rotate a shape by 180 degress (Surprise! :D)
|
||||
|
||||
reward_wires_filters_and_levers:
|
||||
title: >-
|
||||
Wires: Filters & Levers
|
||||
desc: >-
|
||||
You just unlocked the <strong>wires layer</strong>! It is a separate layer on top of the regular layer and introduces a lot of new mechanics!<br><br>
|
||||
Since it can be overwhelming a bit, I added a small tutorial - Be sure to have <strong>tutorials enabled</strong> in the settings!
|
||||
|
||||
reward_display:
|
||||
title: Display
|
||||
desc: >-
|
||||
You have unlocked the <strong>Display</strong>! Connect a wires signal to it to present a color, shape or boolean!
|
||||
|
||||
reward_constant_signal:
|
||||
title: Constant Signal
|
||||
desc: >-
|
||||
You can now emit a <strong>constant signal</strong> on the wires layer! This is useful to connect it to <strong>item filters</strong> for example!
|
||||
|
||||
reward_logic_gates:
|
||||
title: Logic Gates
|
||||
desc: >-
|
||||
You unlocked <strong>logic gates</strong>! You don't have to be excited about this, but it's actually super cool!<br><br>
|
||||
With those gates you can now perform AND, OR, XOR and NOT boolean operations!
|
||||
|
||||
reward_virtual_processing:
|
||||
title: Virtual Processing
|
||||
desc: >-
|
||||
I just gave a whole bunch of new buildings which allow you to <strong>simulate the processing of shapes</strong>!<br><br>
|
||||
You can now simulate a cutter, rotater, stacker and more on the wires layer!<br><br>
|
||||
With this you now have three options to continue the game:<br><br>
|
||||
- Build an <strong>automated machine</strong> to create any possible shape requested by the hub (This is cool, I swear!).<br><br>
|
||||
- Build something cool with wires.<br><br>
|
||||
- Continue to play regulary.
|
||||
|
||||
reward_second_wire:
|
||||
title: Second Wire Type
|
||||
desc: >-
|
||||
Annoyed by wires automatically connecting? I just gave you another <strong>type of wire</strong>!<br><br>
|
||||
Different types of wires do not connect to each other, so you can now build much compacter circuits.
|
||||
|
||||
# Special reward, which is shown when there is no reward actually
|
||||
no_reward:
|
||||
title: Next level
|
||||
@ -742,6 +786,12 @@ storyRewards:
|
||||
desc: >-
|
||||
Congratulations! By the way, more content is planned for the standalone!
|
||||
|
||||
reward_freeplay:
|
||||
title: Freeplay
|
||||
desc: >-
|
||||
You did it! You unlocked the <strong>free-play mode</strong>! This means that shapes are now <strong>randomly</strong> generated!<br><br>
|
||||
Since the hub will only require low quantities, I highly recommend to build a machine which automatically delivers the requested shape!
|
||||
|
||||
settings:
|
||||
title: Settings
|
||||
categories:
|
||||
|
Loading…
Reference in New Issue
Block a user