You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
3.2 KiB
164 lines
3.2 KiB
4 years ago
|
import { enumSubShape, ShapeDefinition, createSimpleShape } from "./shape_definition";
|
||
|
import { enumColors } from "./colors";
|
||
|
|
||
|
/**
|
||
|
* @enum {string}
|
||
|
*/
|
||
|
export const enumHubGoalRewards = {
|
||
|
reward_cutter_and_trash: "Cutting Shapes",
|
||
|
reward_rotater: "Rotating",
|
||
|
reward_painter: "Painting",
|
||
|
reward_mixer: "Color Mixing",
|
||
|
reward_stacker: "Combiner",
|
||
|
reward_splitter: "Splitter/Merger",
|
||
|
reward_tunnel: "Tunnel",
|
||
|
|
||
|
no_reward: "Next level",
|
||
|
};
|
||
|
|
||
|
export const tutorialGoals = [
|
||
|
// Circle
|
||
|
{
|
||
|
shape: "CuCuCuCu",
|
||
|
required: 40,
|
||
|
reward: enumHubGoalRewards.reward_cutter_and_trash,
|
||
|
},
|
||
|
|
||
|
// Cutter
|
||
|
{
|
||
|
shape: "CuCu----",
|
||
|
required: 150,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "----CuCu",
|
||
|
required: 200,
|
||
|
reward: enumHubGoalRewards.reward_splitter,
|
||
|
},
|
||
|
|
||
|
// Rectangle
|
||
|
{
|
||
|
shape: "RuRuRuRu",
|
||
|
required: 80,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "RuRu----",
|
||
|
required: 250,
|
||
|
reward: enumHubGoalRewards.reward_rotater,
|
||
|
},
|
||
|
|
||
|
// Rotater
|
||
|
{
|
||
|
shape: "--CuCu--",
|
||
|
required: 300,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "Ru----Ru",
|
||
|
required: 400,
|
||
|
reward: enumHubGoalRewards.reward_tunnel,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "Cu------",
|
||
|
required: 800,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "------Ru",
|
||
|
required: 1000,
|
||
|
reward: enumHubGoalRewards.reward_painter,
|
||
|
},
|
||
|
|
||
|
// Painter
|
||
|
{
|
||
|
shape: "CrCrCrCr",
|
||
|
required: 1500,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "RbRb----",
|
||
|
required: 2500,
|
||
|
reward: enumHubGoalRewards.reward_mixer,
|
||
|
},
|
||
|
|
||
|
// Mixing (purple)
|
||
|
{
|
||
|
shape: "CpCpCpCp",
|
||
|
required: 4000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
// Star shape + cyan
|
||
|
{
|
||
|
shape: "ScScScSc",
|
||
|
required: 500,
|
||
|
reward: enumHubGoalRewards.reward_stacker,
|
||
|
},
|
||
|
|
||
|
// Stacker
|
||
|
{
|
||
|
shape: "CcCcRgRg",
|
||
|
required: 3000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "RgRgRgRg:CcCcCcCc",
|
||
|
required: 4000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "CgCgRgRg",
|
||
|
required: 6000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "CwSwCwSw",
|
||
|
required: 6000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "WyWyWyWy",
|
||
|
required: 2000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "WyWgWyWg:CbCpCbCp",
|
||
|
required: 4000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "WyRgWyCg:CbCpCbCp:CwCwCwCw",
|
||
|
required: 9000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
|
||
|
{
|
||
|
shape: "CwRrWbSp:WcWrCpCw",
|
||
|
required: 15000,
|
||
|
reward: enumHubGoalRewards.no_reward,
|
||
|
},
|
||
|
];
|
||
|
|
||
|
if (G_IS_DEV) {
|
||
|
tutorialGoals.forEach(({ shape, required, reward }) => {
|
||
|
try {
|
||
|
ShapeDefinition.fromShortKey(shape);
|
||
|
} catch (ex) {
|
||
|
throw new Error("Invalid tutorial goal: '" + ex + "' for shape" + shape);
|
||
|
}
|
||
|
});
|
||
|
}
|