1
1
CREATE TABLE item (
2
2
id SERIAL PRIMARY KEY ,
3
- tipo TIPO_ITEM NOT NULL ,
4
- descricao TEXT NOT NULL ,
5
- -- É o numero de inimigos que você tem que matar para conseguir o item.
6
- -- Chance de drop: O cálculo é: 1 / drop_inimigos_media.
7
- drop_inimigos_media INT NOT NULL CHECK (drop_inimigos_media >= 0 ),
8
- nome VARCHAR (200 ) NOT NULL ,
9
- peso INT NOT NULL CHECK (peso >= 0 ),
10
- preco INT NOT NULL CHECK (preco >= 0 )
3
+ tipo TIPO_ITEM NOT NULL
11
4
);
12
5
13
6
CREATE TABLE armazenamento (
@@ -63,21 +56,21 @@ CREATE TABLE inventario (
63
56
64
57
CREATE TABLE npc (
65
58
id SERIAL PRIMARY KEY ,
66
- nome VARCHAR (100 ) NOT NULL ,
67
59
tipo TIPO_NPC NOT NULL
68
60
);
69
61
70
62
CREATE TABLE civil (
71
63
id INT NOT NULL PRIMARY KEY REFERENCES npc(id),
72
64
sub_regiao_id INT NOT NULL REFERENCES sub_regiao(id),
73
- descricao TEXT NOT NULL ,
74
- tipo TIPO_CIVIL NOT NULL
65
+ tipo TIPO_CIVIL NOT NULL ,
66
+ nome VARCHAR (100 ) NOT NULL ,
67
+ descricao TEXT NOT NULL
75
68
);
76
69
77
70
CREATE TABLE quester (
78
71
id INT NOT NULL PRIMARY KEY REFERENCES npc(id),
79
- dialogo TEXT NOT NULL ,
80
- num_quests INT NOT NULL CHECK (num_quests >= 0 )
72
+ num_quests INT NOT NULL CHECK (num_quests >= 0 ) ,
73
+ dialogo TEXT NOT NULL
81
74
);
82
75
83
76
CREATE TABLE quest (
@@ -97,15 +90,8 @@ CREATE TABLE quest_instancia (
97
90
completed BOOLEAN NOT NULL
98
91
);
99
92
100
- CREATE TABLE item_instancia (
101
- id SERIAL PRIMARY KEY ,
102
- item_id INT NOT NULL REFERENCES item(id),
103
- inventario_id INT NOT NULL REFERENCES inventario(id)
104
- );
105
-
106
93
CREATE TABLE mercador (
107
94
id INT NOT NULL PRIMARY KEY REFERENCES npc(id),
108
- armazenamento_id INT REFERENCES armazenamento(id),
109
95
dialogo TEXT NOT NULL
110
96
);
111
97
@@ -127,13 +113,14 @@ CREATE TABLE mochila (
127
113
peso_total INT NOT NULL CHECK (peso_total >= 0 )
128
114
);
129
115
116
+ CREATE TABLE item_instancia (
117
+ id SERIAL PRIMARY KEY ,
118
+ item_id INT NOT NULL REFERENCES item(id),
119
+ mochila_id INT NOT NULL REFERENCES mochila(id)
120
+ );
121
+
130
122
CREATE TABLE feitico (
131
123
id SERIAL PRIMARY KEY ,
132
- descricao TEXT NOT NULL ,
133
- elemento TIPO_ELEMENTO NOT NULL ,
134
- countdown INT NOT NULL CHECK (countdown >= 0 ),
135
- conhecimento_arcano_necessario INT NOT NULL CHECK (conhecimento_arcano_necessario >= 0 ),
136
- energia_arcana INT NOT NULL CHECK (energia_arcana >= 0 ),
137
124
tipo TIPO_FEITICO NOT NULL
138
125
);
139
126
@@ -144,18 +131,33 @@ CREATE TABLE feitico_requerimento (
144
131
145
132
CREATE TABLE feitico_dano (
146
133
id INT PRIMARY KEY REFERENCES feitico(id),
147
- dano_total INT NOT NULL CHECK (dano_total >= 0 )
134
+ dano_total INT NOT NULL CHECK (dano_total >= 0 ),
135
+ descricao TEXT NOT NULL ,
136
+ elemento TIPO_ELEMENTO NOT NULL ,
137
+ countdown INT NOT NULL CHECK (countdown >= 0 ),
138
+ conhecimento_arcano_necessario INT NOT NULL CHECK (conhecimento_arcano_necessario >= 0 ),
139
+ energia_arcana INT NOT NULL CHECK (energia_arcana >= 0 )
148
140
);
149
141
150
142
CREATE TABLE feitico_dano_area (
151
143
id INT PRIMARY KEY REFERENCES feitico(id),
152
144
dano INT NOT NULL CHECK (dano >= 0 ),
153
- qtd_inimigos_afetados INT NOT NULL CHECK (qtd_inimigos_afetados >= 0 )
145
+ qtd_inimigos_afetados INT NOT NULL CHECK (qtd_inimigos_afetados >= 0 ),
146
+ descricao TEXT NOT NULL ,
147
+ elemento TIPO_ELEMENTO NOT NULL ,
148
+ countdown INT NOT NULL CHECK (countdown >= 0 ),
149
+ conhecimento_arcano_necessario INT NOT NULL CHECK (conhecimento_arcano_necessario >= 0 ),
150
+ energia_arcana INT NOT NULL CHECK (energia_arcana >= 0 )
154
151
);
155
152
156
153
CREATE TABLE feitico_cura (
157
154
id INT PRIMARY KEY REFERENCES feitico(id),
158
- qtd_cura INT NOT NULL CHECK (qtd_cura >= 0 )
155
+ qtd_cura INT NOT NULL CHECK (qtd_cura >= 0 ),
156
+ descricao TEXT NOT NULL ,
157
+ elemento TIPO_ELEMENTO NOT NULL ,
158
+ countdown INT NOT NULL CHECK (countdown >= 0 ),
159
+ conhecimento_arcano_necessario INT NOT NULL CHECK (conhecimento_arcano_necessario >= 0 ),
160
+ energia_arcana INT NOT NULL CHECK (energia_arcana >= 0 )
159
161
);
160
162
161
163
CREATE TABLE grimorio (
@@ -171,7 +173,12 @@ CREATE TABLE feitico_aprendido (
171
173
172
174
CREATE TABLE pergaminho (
173
175
id INT PRIMARY KEY REFERENCES item(id),
174
- cor VARCHAR (10 ) NOT NULL
176
+ cor VARCHAR (10 ) NOT NULL ,
177
+ descricao TEXT NOT NULL ,
178
+ drop_inimigos_media INT NOT NULL CHECK (drop_inimigos_media >= 0 ),
179
+ nome VARCHAR (200 ) NOT NULL ,
180
+ peso INT NOT NULL CHECK (peso >= 0 ),
181
+ preco INT NOT NULL CHECK (preco >= 0 )
175
182
);
176
183
177
184
CREATE TABLE feitico_escrito (
@@ -195,7 +202,12 @@ CREATE TABLE efeito (
195
202
196
203
CREATE TABLE acessorio (
197
204
id INT PRIMARY KEY REFERENCES item(id),
198
- tipo TIPO_ACESSORIO NOT NULL
205
+ tipo TIPO_ACESSORIO NOT NULL ,
206
+ descricao TEXT NOT NULL ,
207
+ drop_inimigos_media INT NOT NULL CHECK (drop_inimigos_media >= 0 ),
208
+ nome VARCHAR (200 ) NOT NULL ,
209
+ peso INT NOT NULL CHECK (peso >= 0 ),
210
+ preco INT NOT NULL CHECK (preco >= 0 )
199
211
);
200
212
201
213
CREATE TABLE sub_regiao_acessorio_conexao (
@@ -212,7 +224,12 @@ CREATE TABLE acessorio_efeito (
212
224
CREATE TABLE pocao (
213
225
id INT PRIMARY KEY REFERENCES item(id),
214
226
turnos INT NOT NULL CHECK (turnos >= 0 ),
215
- usado BOOLEAN NOT NULL
227
+ usado BOOLEAN NOT NULL ,
228
+ descricao TEXT NOT NULL ,
229
+ drop_inimigos_media INT NOT NULL CHECK (drop_inimigos_media >= 0 ),
230
+ nome VARCHAR (200 ) NOT NULL ,
231
+ peso INT NOT NULL CHECK (peso >= 0 ),
232
+ preco INT NOT NULL CHECK (preco >= 0 )
216
233
);
217
234
218
235
CREATE TABLE pocao_efeito (
@@ -222,6 +239,7 @@ CREATE TABLE pocao_efeito (
222
239
223
240
CREATE TABLE inimigo (
224
241
id INT NOT NULL PRIMARY KEY REFERENCES npc(id),
242
+ nome VARCHAR (100 ) NOT NULL ,
225
243
descricao TEXT NOT NULL ,
226
244
elemento TIPO_ELEMENTO NOT NULL ,
227
245
vida_maxima INT NOT NULL CHECK (vida_maxima >= 0 ),
0 commit comments