proc-gen equipment drops from monsters can be picked up
[sketchy-heroes.git] / prisma / seed / equipment.ts
1 import { InventoryType, Rarity } from '@prisma/client';
2 import {prisma} from '../../src/lib/db';
3
4 const equipmentDef = [
5   {
6     name: 'Rusty Sword',
7     type: [InventoryType.R_ARM, InventoryType.L_ARM, InventoryType.WEAPON],
8     durability: 30,
9     minLevelDrop: 1,
10     rarityDropRates: [
11       {
12         rarity: Rarity.COMMON,
13         weight: 0.9,
14       },
15       {
16         rarity: Rarity.UNCOMMON,
17         weight: 0.1
18       }
19     ],
20     statModifiers: {
21       stats: [
22         {
23           name: 'pow',
24           min: 2,
25           max :5
26         }
27       ],
28       required: ['pow']
29     }
30   },
31   {
32     name: 'Shortsword',
33     type: [InventoryType.L_ARM, InventoryType.R_ARM, InventoryType.WEAPON],
34     durability: 50,
35     minLevelDrop: 2,
36     rarityDropRates: [
37       {
38         rarity: Rarity.COMMON,
39         weight: 0.8
40       },
41       {
42         rarity: Rarity.UNCOMMON,
43         weight: 0.2
44       }
45     ],
46     statModifiers: {
47       stats: [
48         {
49           name: 'pow',
50           min: 3,
51           max: 8
52         }
53       ],
54       required: ['pow']
55     }
56   },
57   {
58     name: 'Polearm',
59     type: [InventoryType.BOTH_ARMS, InventoryType.WEAPON],
60     durability: 45,
61     minLevelDrop: 2,
62     rarityDropRates: [
63       {
64         rarity: Rarity.COMMON,
65         weight: 0.8
66       },
67       {
68         rarity: Rarity.COMMON,
69         weight: 0.2
70       }
71     ],
72     statModifiers: {
73       stats: [
74         {
75           name: 'pow',
76           min: 3,
77           max: 5
78         }
79       ],
80       required: ['pow']
81     }
82   },
83   {
84     name: 'Old Shirt',
85     type: [InventoryType.ARMOUR, InventoryType.TORSO],
86     durability: 20,
87     minLevelDrop: 1,
88     rarityDropRates: [
89       {
90         rarity: Rarity.COMMON,
91         weight: 0.8,
92       },
93       {
94         rarity: Rarity.UNCOMMON,
95         weight: 0.1
96       }
97     ],
98     statModifiers: {
99       stats: [
100         {
101           name: 'zest',
102           min: 1,
103           max: 3
104         }
105       ],
106       required: ['zest']
107     }
108   },
109   {
110     name: 'Gloves',
111     type: [InventoryType.L_ARM, InventoryType.R_ARM, InventoryType.ARMOUR],
112     durability: 20,
113     minLevelDrop: 1,
114     rarityDropRates: [
115       {
116         rarity: Rarity.COMMON,
117         weight: 0.8
118       },
119       {
120         rarity: Rarity.UNCOMMON,
121         weight: 0.1
122       }
123     ],
124     statModifiers: {
125       stats: [
126         {
127           name: 'zest',
128           min: 1,
129           max: 2
130         }
131       ],
132       required: ['zest']
133     }
134   }
135 ];
136
137 export async function down() {
138   await prisma.inventory.deleteMany();
139   await prisma.lootTable.deleteMany();
140   await prisma.item.deleteMany();
141 }
142
143 export async function up() {
144   await prisma.item.createMany({
145     data: equipmentDef
146   });
147 }