98 lines
2.2 KiB
TypeScript
98 lines
2.2 KiB
TypeScript
import { Behavior, CraftingStation, DefaultItem, DefaultRecipe, formatItems, getDefaultItem } from './items';
|
|
|
|
export enum DefaultItems {
|
|
COIN = 1,
|
|
WORKBENCH = 2,
|
|
PEBBLE = 3
|
|
}
|
|
|
|
export const defaultItems: DefaultItem[] = [
|
|
{
|
|
id: -1,
|
|
name: 'Coin',
|
|
emoji: '🪙',
|
|
type: 'plain',
|
|
maxStack: 9999,
|
|
untradable: false
|
|
},
|
|
{
|
|
id: -2,
|
|
name: 'Workbench',
|
|
description: 'A place for you to work with tools, for simple things',
|
|
emoji: '🛠️',
|
|
type: 'plain',
|
|
maxStack: 1,
|
|
untradable: false
|
|
},
|
|
{
|
|
id: -3,
|
|
name: 'Pebble',
|
|
description: 'If you get 5 of them you will instantly ! !!!',
|
|
emoji: '🪨',
|
|
type: 'plain',
|
|
maxStack: 64,
|
|
untradable: false
|
|
}
|
|
];
|
|
|
|
export const behaviors: Behavior[] = [
|
|
{
|
|
name: 'heal',
|
|
description: 'Heals the user by `behaviorValue`',
|
|
itemType: 'consumable',
|
|
action: async (item, user) => {
|
|
// todo
|
|
return false;
|
|
}
|
|
}
|
|
];
|
|
|
|
export const craftingStations: CraftingStation[] = [
|
|
{
|
|
key: 'forage',
|
|
name: 'Forage',
|
|
description: 'Pick up various sticks and stones from the forest',
|
|
emoji: '🌲',
|
|
cooldown: 60 * 5,
|
|
formatRecipe: (_inputs, _requirements, outputs) => `${outputs.map(i => formatItems(i.item, i.quantity) + '?').join(' ')}`,
|
|
manipulateResults: (outputs) =>
|
|
outputs.map(o => ({item: o.item, quantity: Math.floor(o.quantity * Math.random())})).filter(o => o.quantity !== 0)
|
|
},
|
|
{
|
|
key: 'hand',
|
|
name: 'Hand',
|
|
description: 'You can use your hands to make a small assortment of things',
|
|
emoji: '✋'
|
|
},
|
|
{
|
|
key: 'workbench',
|
|
name: 'Workbench',
|
|
description: 'A place for you to work with tools, for simple things',
|
|
emoji: '🛠️',
|
|
requires: getDefaultItem(DefaultItems.WORKBENCH)
|
|
}
|
|
];
|
|
|
|
export const defaultRecipes: DefaultRecipe[] = [
|
|
{
|
|
id: -1,
|
|
station: 'forage',
|
|
inputs: [],
|
|
requirements: [],
|
|
outputs: [
|
|
{ item: getDefaultItem(DefaultItems.PEBBLE), quantity: 2 }
|
|
]
|
|
},
|
|
{
|
|
id: -2,
|
|
station: 'workbench',
|
|
inputs: [
|
|
{ item: getDefaultItem(DefaultItems.PEBBLE), quantity: 2 }
|
|
],
|
|
requirements: [],
|
|
outputs: [
|
|
{ item: getDefaultItem(DefaultItems.WORKBENCH), quantity: 1 }
|
|
]
|
|
}
|
|
];
|