This repository was archived by the owner on May 16, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.sql
More file actions
126 lines (99 loc) · 3.1 KB
/
schema.sql
File metadata and controls
126 lines (99 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
CREATE TABLE users (
id BIGINT PRIMARY KEY,
active_adventure CHAR(6)
);
CREATE TABLE adventures (
id CHAR(6) PRIMARY KEY,
title VARCHAR(64) NOT NULL,
sector VARCHAR(64) NOT NULL,
planet VARCHAR(64) NOT NULL,
max_terms INT NOT NULL,
survival_fail_kills BOOLEAN NOT NULL,
referee_id BIGINT NOT NULL REFERENCES users(id),
scene_id INT DEFAULT NULL, --active scene
vessel VARCHAR(32) DEFAULT NULL
);
ALTER TABLE users ADD CONSTRAINT fkActiveAdventure FOREIGN KEY(active_adventure) REFERENCES adventures(id);
CREATE TABLE scenes(
id SERIAL PRIMARY KEY,
scene_name VARCHAR(32),
adventure_id CHAR(6) REFERENCES adventures(id)
);
ALTER TABLE adventures ADD CONSTRAINT fkActiveScene FOREIGN KEY(scene_id) REFERENCES scenes(id);
CREATE TABLE characters (
id SERIAL PRIMARY KEY,
char_name VARCHAR(32) NOT NULL,
sex CHAR NOT NULL CHECK (sex = 'M' OR sex = 'F'),
alive BOOLEAN NOT NULL DEFAULT TRUE,
age INT NOT NULL,
strength INT NOT NULL,
dexterity INT NOT NULL,
endurance INT NOT NULL,
intelligence INT NOT NULL,
education INT NOT NULL,
social_standing INT NOT NULL,
str_mod INT NOT NULL DEFAULT 0,
dex_mod INT NOT NULL DEFAULT 0,
end_mod INT NOT NULL DEFAULT 0,
int_mod INT NOT NULL DEFAULT 0,
edu_mod INT NOT NULL DEFAULT 0,
soc_mod INT NOT NULL DEFAULT 0,
credits BIGINT NOT NULL,
ship_shares INT NOT NULL,
equipped_armor INT,
equipped_reflec INT,
drawn_weapon INT,
stance SMALLINT NOT NULL CHECK (stance BETWEEN 0 AND 2) DEFAULT 2,
rads INT NOT NULL DEFAULT 0,
wounded BOOLEAN NOT NULL DEFAULT FALSE,
fatigued BOOLEAN NOT NULL DEFAULT FALSE,
stims_taken INT NOT NULL DEFAULT 0,
society BOOLEAN DEFAULT FALSE,
user_id BIGINT NOT NULL REFERENCES users(id),
adventure_id CHAR(6) NOT NULL REFERENCES adventures(id),
just_created BOOLEAN DEFAULT TRUE
);
CREATE TABLE inventories (
character_id INT NOT NULL,
equipment_id INT NOT NULL,
amount INT NOT NULL,
damage INT DEFAULT 0,
PRIMARY KEY(character_id, equipment_id)
);
CREATE TABLE skill_sets (
character_id INT REFERENCES characters(id),
skill_name VARCHAR(32),
level INT NOT NULL,
PRIMARY KEY (character_id, skill_name)
);
CREATE TABLE npcs(
id SERIAL PRIMARY KEY,
npc_name VARCHAR(32) NOT NULL,
strength INT NOT NULL,
dexterity INT NOT NULL,
endurance INT NOT NULL,
intelligence INT NOT NULL,
education INT NOT NULL,
social_standing INT NOT NULL,
career VARCHAR(32) NOT NULL,
rank INT NOT NULL,
armor INT NOT NULL,
weapon INT NOT NULL,
ally BOOLEAN NOT NULL DEFAULT FALSE,
scene INT REFERENCES scenes(id),
pos INT NOT NULL DEFAULT 0 --scene position
);
CREATE TABLE careers(
char_id SERIAL REFERENCES characters(id),
career VARCHAR(32),
rank INT NOT NULL,
PRIMARY KEY (char_id, career)
);
CREATE TABLE shop (
adventure_id CHAR(6) REFERENCES adventures(id),
category VARCHAR(32) NOT NULL,
tl INT NOT NULL,
PRIMARY KEY(adventure_id,category)
);