parent
e29499bbc3
commit
f11b5b28bf
@ -0,0 +1 @@ |
|||||||
|
DISCORD_TOKEN=MTAyODUyNDI3NDIzMjg2ODkyNg.GRkc8K.3IJk3BTDR4sQOyVExvZOUQ5lsgrbJNO97Lz1Pw |
@ -0,0 +1,5 @@ |
|||||||
|
databaseChangeLog: |
||||||
|
- includeAll: |
||||||
|
path: migrations |
||||||
|
relativeToChangelogFile: true |
||||||
|
errorIfMissingOrEmpty: true |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,7 @@ |
|||||||
|
# PostgreSQL |
||||||
|
classpath: lib/postgresql-42.5.0.jar |
||||||
|
driver: org.postgresql.Driver |
||||||
|
url: jdbc:postgresql://free-tier11.gcp-us-east1.cockroachlabs.cloud:26257/nomrpg-chesting?options=--cluster%3Ddeliciousreya-nom-rpg-2220&sslmode=verify-full |
||||||
|
username: reya |
||||||
|
changeLogFile: configuration.yml |
||||||
|
liquibase.hub.mode=off |
@ -0,0 +1,215 @@ |
|||||||
|
--liquibase formatted sql |
||||||
|
|
||||||
|
--changeset reya:users_table runInTransaction:false |
||||||
|
CREATE TABLE IF NOT EXISTS users |
||||||
|
( |
||||||
|
id UUID NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(), |
||||||
|
discord_snowflake INT NOT NULL, |
||||||
|
INDEX discord_users (discord_snowflake) |
||||||
|
); |
||||||
|
--rollback DROP TABLE IF EXISTS users; |
||||||
|
|
||||||
|
--changeset reya:types_table runInTransaction:false |
||||||
|
CREATE TABLE IF NOT EXISTS types |
||||||
|
( |
||||||
|
id INT NOT NULL PRIMARY KEY, |
||||||
|
name STRING NOT NULL, |
||||||
|
color STRING NOT NULL, |
||||||
|
display_order INT NOT NULL, |
||||||
|
immunities INT[] NOT NULL DEFAULT '{}', |
||||||
|
resistances INT[] NOT NULL DEFAULT '{}', |
||||||
|
weaknesses INT[] NOT NULL DEFAULT '{}' |
||||||
|
); |
||||||
|
--rollback DROP TABLE IF EXISTS types; |
||||||
|
|
||||||
|
--changeset reya:types_values runInTransaction:true |
||||||
|
INSERT INTO types (id, name, color, display_order) |
||||||
|
VALUES (0, 'Basic', '', 0), |
||||||
|
(1, 'Sassy', '', 1), |
||||||
|
(2, 'Gentle', '', 2), |
||||||
|
(3, 'Sexy', '', 3), |
||||||
|
(4, 'Muscle', '', 4), |
||||||
|
(5, 'Glam', '', 5), |
||||||
|
(6, 'Punk', '', 6), |
||||||
|
(7, 'Glutton', '', 7), |
||||||
|
(8, 'Dumb', '', 8), |
||||||
|
(9, 'Drone', '', 9), |
||||||
|
(10, 'Spooky', '', 10), |
||||||
|
(11, 'Lively', '', 11), |
||||||
|
(12, 'Smart', '', 12), |
||||||
|
(13, 'Cool', '', 13), |
||||||
|
(14, 'Bully', '', 14), |
||||||
|
(15, 'Mythic', '', 15), |
||||||
|
(16, 'Toy', '', 16), |
||||||
|
(17, 'Cute', '', 17); |
||||||
|
--rollback DELETE FROM types WHERE id in (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17) |
||||||
|
|
||||||
|
--changeset reya:difficulties_table runInTransaction:false |
||||||
|
CREATE TABLE IF NOT EXISTS difficulties |
||||||
|
( |
||||||
|
id INT NOT NULL PRIMARY KEY, |
||||||
|
name STRING NOT NULL, |
||||||
|
description STRING NOT NULL, |
||||||
|
display_order INT NOT NULL, |
||||||
|
endo_only BOOLEAN NOT NULL DEFAULT false, |
||||||
|
regenerate_talent BOOLEAN NOT NULL DEFAULT false, |
||||||
|
lose_proficiency_percent FLOAT NOT NULL DEFAULT 0, |
||||||
|
lose_exp_percent FLOAT NOT NULL DEFAULT 0, |
||||||
|
lose_money_percent FLOAT NOT NULL DEFAULT 0, |
||||||
|
allow_reformation BOOLEAN NOT NULL DEFAULT true |
||||||
|
); |
||||||
|
--rollback DROP TABLE IF EXISTS difficulties; |
||||||
|
|
||||||
|
--changeset reya:difficulties_values runInTransaction:true |
||||||
|
INSERT INTO difficulties |
||||||
|
(id, name, description, display_order, endo_only, regenerate_talent, lose_proficiency_percent, lose_exp_percent, |
||||||
|
lose_money_percent, allow_reformation) |
||||||
|
VALUES (0, 'Endo Only', 'You can never be digested. You always come out sooner or later.', 0, true, false, 0, 0, 0, |
||||||
|
true), |
||||||
|
(1, 'Very Safe', |
||||||
|
'You''ll be completely safe. The only downsides to being digested? Inconvenience. And smug predators.', 1, |
||||||
|
false, false, 0, 0, 0, true), |
||||||
|
(2, 'Safe', |
||||||
|
'Your noggin will get rattled around, sure, and you might drop some of your cash, but it''s a small price to pay for being able to come back.', |
||||||
|
2, false, true, 10, 0, 10, true), |
||||||
|
(3, 'Risky', |
||||||
|
'Getting digested is going to mess with your head, for sure. You''ll come back a bit weakened from the experience, and your wallet will notice. This is the recommended difficulty.', |
||||||
|
3, false, true, 25, 10, 25, true), |
||||||
|
(4, 'Dangerous', |
||||||
|
'Digestion is something to be avoided at all costs. You''ll lose half your money, your stats will have atrophied, and you''ll lose some of your memories.', |
||||||
|
4, false, true, 50, 25, 50, true), |
||||||
|
(5, 'Very Dangerous', |
||||||
|
'Being a meal is not just humiliating - it''s a nightmare. You''re lucky you get to hold on to anything.', 5, |
||||||
|
false, true, 90, 50, 90, true), |
||||||
|
(6, 'Extremely Dangerous', |
||||||
|
'If you get devoured and you don''t get out, you''ll lose just about everything. Be very, very careful...', 6, |
||||||
|
false, true, 100, 100, 100, true), |
||||||
|
(7, 'Impossible', |
||||||
|
'There is nothing to look forward to after digestion but an eternity on someone else''s thighs. When you''re digested, your life is over. There''s no coming back. Ever.', |
||||||
|
7, false, true, 100, 100, 100, false); |
||||||
|
--rollback DELETE FROM difficulties WHERE id IN (0, 1, 2, 3, 4, 5, 6, 7); |
||||||
|
|
||||||
|
--changeset reya:preferences_table runInTransaction:false |
||||||
|
CREATE TABLE IF NOT EXISTS preferences |
||||||
|
( |
||||||
|
id INT NOT NULL PRIMARY KEY, |
||||||
|
name STRING NOT NULL, |
||||||
|
description STRING NOT NULL, |
||||||
|
display_order INT NOT NULL, |
||||||
|
can_use_vore BOOLEAN NOT NULL, |
||||||
|
can_receive_vore BOOLEAN NOT NULL |
||||||
|
); |
||||||
|
--rollback DROP TABLE IF EXISTS preferences; |
||||||
|
|
||||||
|
--changeset reya:preferences_values runInTransaction:true |
||||||
|
INSERT INTO preferences (id, name, description, display_order, can_use_vore, can_receive_vore) |
||||||
|
VALUES (0, 'Observer', 'You can neither eat nor be eaten.', 0, false, false), |
||||||
|
(1, 'Prey Only', 'You can only be eaten, not eat.', 1, false, true), |
||||||
|
(2, 'Pred Only', 'You can only eat, not be eaten.', 2, true, false), |
||||||
|
(3, 'Switch', 'You can both eat and be eaten.', 3, true, true); |
||||||
|
--rollback DELETE FROM preferences WHERE id IN (0, 1, 2, 3); |
||||||
|
|
||||||
|
--changeset reya:genders_table runInTransaction:false |
||||||
|
CREATE TABLE IF NOT EXISTS genders |
||||||
|
( |
||||||
|
id INT NOT NULL PRIMARY KEY, |
||||||
|
name STRING NOT NULL, |
||||||
|
display_order INT NOT NULL, |
||||||
|
use_plural BOOLEAN NOT NULL, |
||||||
|
subjective STRING NOT NULL, |
||||||
|
adjective STRING NOT NULL, |
||||||
|
possessive STRING NOT NULL, |
||||||
|
reflexive STRING NOT NULL, |
||||||
|
objective STRING NOT NULL |
||||||
|
); |
||||||
|
--rollback DROP TABLE IF EXISTS genders; |
||||||
|
|
||||||
|
--changeset reya:genders_values runInTransaction:true |
||||||
|
INSERT INTO genders (id, name, display_order, use_plural, subjective, adjective, possessive, reflexive, objective) |
||||||
|
VALUES (0, 'Non-binary (name only)', 0, false, '@@', '@@''s', '@@''s', '@@''s self', '@@'), |
||||||
|
(1, 'Female (she/her)', 1, false, 'she', 'her', 'hers', 'herself', 'her'), |
||||||
|
(2, 'Non-binary (they/them)', 2, true, 'they', 'their', 'theirs', 'themself', 'them'), |
||||||
|
(3, 'Male (he/him)', 3, false, 'he', 'his', 'his', 'himself', 'him'), |
||||||
|
(4, 'Object (it/its)', 4, false, 'it', 'its', 'its', 'itself', 'it'), |
||||||
|
(5, 'Herm (shi/hir)', 5, false, 'shi', 'hir', 'hirs', 'hirself', 'hir'), |
||||||
|
(6, 'Non-binary (ae/aer)', 6, false, 'ae', 'aer', 'aers', 'aerself', 'aer'), |
||||||
|
(7, 'Non-binary (fae/faer)', 7, false, 'fae', 'faer', 'faers', 'faerself', 'faer'), |
||||||
|
(8, 'Non-binary (e/em)', 8, false, 'e', 'eir', 'eirs', 'emself', 'em'), |
||||||
|
(9, 'Non-binary (ey/em)', 9, false, 'ey', 'eir', 'eirs', 'emself', 'em'), |
||||||
|
(10, 'Non-binary (per/per)', 10, false, 'per', 'pers', 'pers', 'perself', 'per'), |
||||||
|
(11, 'Non-binary (ve/ver)', 11, false, 've', 'vis', 'vis', 'verself', 'ver'), |
||||||
|
(12, 'Non-binary (xe/xem)', 12, false, 'xe', 'xyr', 'xyrs', 'xemself', 'xem'), |
||||||
|
(13, 'Non-binary (ze/hir)', 13, false, 'ze', 'hir', 'hirs', 'hirself', 'hir'), |
||||||
|
(14, 'Non-binary (zie/hir)', 14, false, 'zie', 'hir', 'hirs', 'hirself', 'hir'), |
||||||
|
(15, 'Non-binary (zie/zim)', 15, false, 'zie', 'zir', 'zis', 'zieself', 'zim'), |
||||||
|
(16, 'Non-binary (sie/sie)', 16, false, 'sie', 'hir', 'hirs', 'hirself', 'sie'), |
||||||
|
(17, 'Non-binary (te/ter)', 17, false, 'te', 'tem', 'ters', 'terself', 'ter'); |
||||||
|
--rollback DELETE FROM genders WHERE id IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17); |
||||||
|
|
||||||
|
--changeset reya:characters_table runInTransaction:false |
||||||
|
CREATE TABLE IF NOT EXISTS characters |
||||||
|
( |
||||||
|
id UUID NOT NULL PRIMARY KEY, |
||||||
|
user_id UUID NOT NULL REFERENCES users (id) ON DELETE CASCADE, |
||||||
|
name STRING NOT NULL, |
||||||
|
title STRING NOT NULL, |
||||||
|
profile STRING NOT NULL, |
||||||
|
gender_id INT NOT NULL REFERENCES genders (id) ON DELETE RESTRICT, |
||||||
|
difficulty_id INT NOT NULL REFERENCES difficulties (id) ON DELETE RESTRICT, |
||||||
|
preference_id INT NOT NULL REFERENCES preferences (id) ON DELETE RESTRICT, |
||||||
|
type1_id INT NOT NULL REFERENCES types (id) ON DELETE RESTRICT, |
||||||
|
type2_id INT NOT NULL REFERENCES types (id) ON DELETE RESTRICT, |
||||||
|
experience INT NOT NULL DEFAULT 0, |
||||||
|
money INT NOT NULL DEFAULT 0, |
||||||
|
|
||||||
|
-- stats: base |
||||||
|
base_confidence INT NOT NULL DEFAULT 70, |
||||||
|
base_health INT NOT NULL DEFAULT 70, |
||||||
|
base_stamina INT NOT NULL DEFAULT 70, |
||||||
|
base_brawn INT NOT NULL DEFAULT 70, |
||||||
|
base_durability INT NOT NULL DEFAULT 70, |
||||||
|
base_intensity INT NOT NULL DEFAULT 70, |
||||||
|
base_resilience INT NOT NULL DEFAULT 70, |
||||||
|
base_speed INT NOT NULL DEFAULT 70, |
||||||
|
-- stats: banked talent points |
||||||
|
min_confidence_talent INT NOT NULL DEFAULT 0, |
||||||
|
min_health_talent INT NOT NULL DEFAULT 0, |
||||||
|
min_stamina_talent INT NOT NULL DEFAULT 0, |
||||||
|
min_brawn_talent INT NOT NULL DEFAULT 0, |
||||||
|
min_durability_talent INT NOT NULL DEFAULT 0, |
||||||
|
min_intensity_talent INT NOT NULL DEFAULT 0, |
||||||
|
min_resilience_talent INT NOT NULL DEFAULT 0, |
||||||
|
min_speed_talent INT NOT NULL DEFAULT 0, |
||||||
|
-- stats: current talent points |
||||||
|
confidence_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_confidence_talent + floor(random() * (32 - min_confidence_talent)), |
||||||
|
health_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_health_talent + floor(random() * (32 - min_health_talent)), |
||||||
|
stamina_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_stamina_talent + floor(random() * (32 - min_stamina_talent)), |
||||||
|
brawn_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_brawn_talent + floor(random() * (32 - min_brawn_talent)), |
||||||
|
durability_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_durability_talent + floor(random() * (32 - min_durability_talent)), |
||||||
|
intensity_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_intensity_talent + floor(random() * (32 - min_intensity_talent)), |
||||||
|
resilience_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_resilience_talent + floor(random() * (32 - min_resilience_talent)), |
||||||
|
speed_talent INT NOT NULL DEFAULT floor(random() * 32)::INT, --min_speed_talent + floor(random() * (32 - min_speed_talent)), |
||||||
|
-- stats: current proficiency points |
||||||
|
confidence_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
health_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
stamina_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
brawn_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
durability_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
intensity_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
resilience_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
speed_proficiency INT NOT NULL DEFAULT 0, |
||||||
|
|
||||||
|
FAMILY character_base (id, user_id, name, title, profile, gender_id, type1_id, type2_id, base_confidence, |
||||||
|
base_health, |
||||||
|
base_stamina, base_brawn, base_durability, base_intensity, base_resilience, base_speed), |
||||||
|
FAMILY character_reformation_stats ( |
||||||
|
min_confidence_talent, min_health_talent, min_stamina_talent, min_brawn_talent, |
||||||
|
min_durability_talent, min_intensity_talent, min_resilience_talent, |
||||||
|
min_speed_talent, |
||||||
|
confidence_talent, health_talent, stamina_talent, brawn_talent, |
||||||
|
durability_talent, intensity_talent, resilience_talent, speed_talent), |
||||||
|
FAMILY character_live_stats (difficulty_id, preference_id, experience, money, confidence_proficiency, |
||||||
|
health_proficiency, stamina_proficiency, brawn_proficiency, durability_proficiency, |
||||||
|
intensity_proficiency, resilience_proficiency, speed_proficiency) |
||||||
|
); |
||||||
|
--rollback DROP TABLE IF EXISTS characters_table; |
Loading…
Reference in new issue