proc-gen equipment drops from monsters can be picked up
[sketchy-heroes.git] / prisma / seed / equipment.ts
diff --git a/prisma/seed/equipment.ts b/prisma/seed/equipment.ts
new file mode 100644 (file)
index 0000000..15c0091
--- /dev/null
@@ -0,0 +1,147 @@
+import { InventoryType, Rarity } from '@prisma/client';
+import {prisma} from '../../src/lib/db';
+
+const equipmentDef = [
+  {
+    name: 'Rusty Sword',
+    type: [InventoryType.R_ARM, InventoryType.L_ARM, InventoryType.WEAPON],
+    durability: 30,
+    minLevelDrop: 1,
+    rarityDropRates: [
+      {
+        rarity: Rarity.COMMON,
+        weight: 0.9,
+      },
+      {
+        rarity: Rarity.UNCOMMON,
+        weight: 0.1
+      }
+    ],
+    statModifiers: {
+      stats: [
+        {
+          name: 'pow',
+          min: 2,
+          max :5
+        }
+      ],
+      required: ['pow']
+    }
+  },
+  {
+    name: 'Shortsword',
+    type: [InventoryType.L_ARM, InventoryType.R_ARM, InventoryType.WEAPON],
+    durability: 50,
+    minLevelDrop: 2,
+    rarityDropRates: [
+      {
+        rarity: Rarity.COMMON,
+        weight: 0.8
+      },
+      {
+        rarity: Rarity.UNCOMMON,
+        weight: 0.2
+      }
+    ],
+    statModifiers: {
+      stats: [
+        {
+          name: 'pow',
+          min: 3,
+          max: 8
+        }
+      ],
+      required: ['pow']
+    }
+  },
+  {
+    name: 'Polearm',
+    type: [InventoryType.BOTH_ARMS, InventoryType.WEAPON],
+    durability: 45,
+    minLevelDrop: 2,
+    rarityDropRates: [
+      {
+        rarity: Rarity.COMMON,
+        weight: 0.8
+      },
+      {
+        rarity: Rarity.COMMON,
+        weight: 0.2
+      }
+    ],
+    statModifiers: {
+      stats: [
+        {
+          name: 'pow',
+          min: 3,
+          max: 5
+        }
+      ],
+      required: ['pow']
+    }
+  },
+  {
+    name: 'Old Shirt',
+    type: [InventoryType.ARMOUR, InventoryType.TORSO],
+    durability: 20,
+    minLevelDrop: 1,
+    rarityDropRates: [
+      {
+        rarity: Rarity.COMMON,
+        weight: 0.8,
+      },
+      {
+        rarity: Rarity.UNCOMMON,
+        weight: 0.1
+      }
+    ],
+    statModifiers: {
+      stats: [
+        {
+          name: 'zest',
+          min: 1,
+          max: 3
+        }
+      ],
+      required: ['zest']
+    }
+  },
+  {
+    name: 'Gloves',
+    type: [InventoryType.L_ARM, InventoryType.R_ARM, InventoryType.ARMOUR],
+    durability: 20,
+    minLevelDrop: 1,
+    rarityDropRates: [
+      {
+        rarity: Rarity.COMMON,
+        weight: 0.8
+      },
+      {
+        rarity: Rarity.UNCOMMON,
+        weight: 0.1
+      }
+    ],
+    statModifiers: {
+      stats: [
+        {
+          name: 'zest',
+          min: 1,
+          max: 2
+        }
+      ],
+      required: ['zest']
+    }
+  }
+];
+
+export async function down() {
+  await prisma.inventory.deleteMany();
+  await prisma.lootTable.deleteMany();
+  await prisma.item.deleteMany();
+}
+
+export async function up() {
+  await prisma.item.createMany({
+    data: equipmentDef
+  });
+}