export async function createShopEquipment(): Promise<void> {
return new Promise(async (resolve) => {
- base('Shop Items').select().eachPage(async (records, next) => {
- await db('shop_items').insert(records.map(r => {
+ base('Shop Equipment').select().eachPage(async (records, next) => {
+ await db('shop_equipment').insert(records.map(r => {
return {
id: r.fields.id,
name: r.fields.Name,
type: r.fields['Equipment Type'],
equipment_slot: r.fields['Equipment Slot'],
cost: r.fields.Cost,
+ icon: r.fields.Icon,
count: 1,
requirements: {
level: r.fields['Required Level'],
dexterity: r.fields['Boost DEX'],
intelligence: r.fields['Boost INT'],
damage: r.fields['Boost DMG'],
- damage_mitigation: r.fields['Damage Mitigation']
+ damage_mitigation: r.fields['Damage Mitigation'],
+ defence: r.fields['Defence'],
},
currentAp: r.fields['Armour Points'],
maxAp: r.fields['Armour Points'],
export async function createShopItems(): Promise<void> {
return new Promise(async (resolve) => {
base('Items').select().eachPage(async (records, next) => {
+ const itemsForSale = [];
await db('items').insert(records.map(r => {
- console.log(`Creating [${r.fields['Name']}]`);
+ if(r.fields['location_id']) {
+ itemsForSale.push({
+ item_id: r.fields['Id'],
+ location_id: r.fields['location_id'][0],
+ amount: r.fields['Amount'],
+ price_per_unit: r.fields['Cost']
+ });
+ }
return {
id: r.fields['Id'],
name: r.fields.Name,
icon_name: r.fields['Icon Name']
};
})).onConflict('id').merge();
+
+ if(itemsForSale.length) {
+ await db('shop_items').insert(itemsForSale).onConflict(['item_id', 'location_id']).merge();
+ }
+
next();
}).finally(() => resolve());
});