diff --git a/install.lua b/install.lua index 9e9b7b4..63e35de 100644 --- a/install.lua +++ b/install.lua @@ -10,23 +10,25 @@ db:begin() db:create_table("babble", "id INTEGER PRIMARY KEY AUTOINCREMENT", - "posted TEXT NOT NULL DEFAULT '00:00:00'", "user_id INTEGER NOT NULL", - "babble TEXT NOT NULL", - "visible INTEGER NOT NULL DEFAULT 1" + "visible INTEGER NOT NULL DEFAULT 1", + "content TEXT NOT NULL", + "posted INTEGER NOT NULL DEFAULT (unixepoch())" ) db:create_table("items", "id INTEGER PRIMARY KEY AUTOINCREMENT", "type INTEGER NOT NULL DEFAULT 0", - "name TEXT NOT NULL", - "lore TEXT", + "tier INTEGER NOT NULL DEFAULT 0", + "rarity INTEGER NOT NULL DEFAULT 0", "base_value INTEGER NOT NULL DEFAULT 0", "attributes_id INTEGER NOT NULL DEFAULT 0", + "name TEXT UNIQUE NOT NULL", + "lore TEXT", "special TEXT NOT NULL DEFAULT ''" ) -db:create_table("attributes", +db:create_table("user_attributes", "id INTEGER PRIMARY KEY AUTOINCREMENT", "power INTEGER NOT NULL DEFAULT 0", "toughness INTEGER NOT NULL DEFAULT 0", @@ -36,126 +38,179 @@ db:create_table("attributes", "luck INTEGER NOT NULL DEFAULT 0", "perception INTEGER NOT NULL DEFAULT 0", "uber_power INTEGER NOT NULL DEFAULT 0", - "uber_resist INTEGER NOT NULL DEFAULT 0" + "uber_resist INTEGER NOT NULL DEFAULT 0", "hp INTEGER NOT NULL DEFAULT 0", "mp INTEGER NOT NULL DEFAULT 0" ) -db:create_table("drops", +db:create_table("item_attributes", "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", - "level INTEGER NOT NULL DEFAULT 0", - "type INTEGER NOT NULL DEFAULT 0", - "attribute_1 TEXT NOT NULL DEFAULT ''", - "attribute_2 TEXT NOT NULL DEFAULT ''" + "power INTEGER NOT NULL DEFAULT 0", + "toughness INTEGER NOT NULL DEFAULT 0", + "agility INTEGER NOT NULL DEFAULT 0", + "dexterity INTEGER NOT NULL DEFAULT 0", + "magic INTEGER NOT NULL DEFAULT 0", + "luck INTEGER NOT NULL DEFAULT 0", + "perception INTEGER NOT NULL DEFAULT 0", + "uber_power INTEGER NOT NULL DEFAULT 0", + "uber_resist INTEGER NOT NULL DEFAULT 0", + "hp INTEGER NOT NULL DEFAULT 0", + "mp INTEGER NOT NULL DEFAULT 0" +) + +db:create_table("monster_attributes", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "power INTEGER NOT NULL DEFAULT 0", + "toughness INTEGER NOT NULL DEFAULT 0", + "agility INTEGER NOT NULL DEFAULT 0", + "dexterity INTEGER NOT NULL DEFAULT 0", + "magic INTEGER NOT NULL DEFAULT 0", + "luck INTEGER NOT NULL DEFAULT 0", + "perception INTEGER NOT NULL DEFAULT 0", + "uber_power INTEGER NOT NULL DEFAULT 0", + "uber_resist INTEGER NOT NULL DEFAULT 0", + "hp INTEGER NOT NULL DEFAULT 0", + "mp INTEGER NOT NULL DEFAULT 0" ) db:create_table("forum", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "author INTEGER NOT NULL", - "parent INTEGER NOT NULL DEFAULT 0", - "replies INTEGER NOT NULL DEFAULT 0", - "title TEXT NOT NULL", - "content TEXT NOT NULL", - "posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "latest DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP" + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "user_id INTEGER NOT NULL", + "parent_id INTEGER NOT NULL DEFAULT 0", + "replies INTEGER NOT NULL DEFAULT 0", + "locked INTEGER NOT NULL DEFAULT 0", + "visible INTEGER NOT NULL DEFAULT 1", + "pinned INTEGER NOT NULL DEFAULT 0", + "posted INTEGER NOT NULL DEFAULT (unixepoch())", + "latest INTEGER NOT NULL DEFAULT (unixepoch())", + "title TEXT NOT NULL", + "content TEXT NOT NULL" ) db:create_table("monsters", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", - "max_hp INTEGER NOT NULL DEFAULT 1", - "max_dmg INTEGER NOT NULL DEFAULT 0", - "armor INTEGER NOT NULL DEFAULT 0", - "level INTEGER NOT NULL DEFAULT 0", - "max_exp INTEGER NOT NULL DEFAULT 0", - "max_gold INTEGER NOT NULL DEFAULT 0", - "immune INTEGER NOT NULL DEFAULT 0" + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "tier INTEGER NOT NULL DEFAULT 0", + "min_level INTEGER NOT NULL DEFAULT 1", + "max_level INTEGER NOT NULL DEFAULT 1", + "min_hp INTEGER NOT NULL DEFAULT 1", + "max_hp INTEGER NOT NULL DEFAULT 1", + "attributes_id INTEGER NOT NULL", + "attribute_spread INTEGER NOT NULL 0", + "exp_base INTEGER NOT NULL DEFAULT 0", + "exp_spread INTEGER NOT NULL DEFAULT 0", + "gold_base INTEGER NOT NULL DEFAULT 0", + "gold_spread INTEGER NOT NULL DEFAULT 0", + "immunity INTEGER NOT NULL DEFAULT 0", + "name TEXT UNIQUE NOT NULL" ) db:create_table("news", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "author TEXT NOT NULL DEFAULT 'Guild Master'", - "postdate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "content TEXT NOT NULL" + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "posted INTEGER NOT NULL DEFAULT (unixepoch())", + "author TEXT NOT NULL DEFAULT 'Guild Master'", + "content TEXT NOT NULL" ) db:create_table("spells", "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", "mp INTEGER NOT NULL DEFAULT 0", "power INTEGER NOT NULL DEFAULT 0", - "type INTEGER NOT NULL DEFAULT 0" + "type INTEGER NOT NULL DEFAULT 0", + "name TEXT UNIQUE NOT NULL", + "lore TEXT", + "info TEXT NOT NULL" +) + +db:create_table("pois", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "lat INTEGER NOT NULL", + "lon INTEGER NOT NULL", + "type INTEGER NOT NULL", + "poi_id UNIQUE INTEGER NOT NULL", + "UNIQUE INDEX:pois_location_idx(lat, lon)", + "INDEX:pois_type_idx(type, type_id)" ) db:create_table("towns", "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", - "lat INTEGER NOT NULL DEFAULT 0", - "lon INTEGER NOT NULL DEFAULT 0", + "poi_id INTEGER UNIQUE NOT NULL", "inn_price INTEGER NOT NULL DEFAULT 0", "map_price INTEGER NOT NULL DEFAULT 0", "tp_cost INTEGER NOT NULL DEFAULT 0", + "name TEXT UNIQUE NOT NULL" ) db:create_table("town_shop_items", - "town_id INTEGER NOT NULL", - "item_id INTEGER NOT NULL", - "buy_value INTEGER NOT NULL DEFAULT 1", + "town_id INTEGER NOT NULL", + "item_id INTEGER NOT NULL", + "buy_value INTEGER NOT NULL DEFAULT 1", "sell_value INTEGER NOT NULL DEFAULT 1" ) +db:create_table("fights", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "user_id INTEGER NOT NULL", + "user_attributes_id INTEGER NOT NULL", + "user_uber_power INTEGER NOT NULL", + "user_uber_resist INTEGER NOT NULL", + "monster_id INTEGER NOT NULL", + "monster_attributes_id INTEGER NOT NULL", + "monster_hp INTEGER NOT NULL", + "monster_max_hp INTEGER NOT NULL", + "monster_mp INTEGER NOT NULL", + "monster_max_mp INTEGER NOT NULL", + "monster_sleep INTEGER NOT NULL DEFAULT 0", + "monster_uber_power INTEGER NOT NULL", + "monster_uber_resist INTEGER NOT NULL", + "first INTEGER NOT NULL DEFAULT 0", + "turn INTEGER NOT NULL DEFAULT 0", + "won INTEGER NOT NULL DEFAULT 0", + "log TEXT" +) + db:create_table("users", "id INTEGER PRIMARY KEY AUTOINCREMENT", - "username TEXT NOT NULL", + "username TEXT UNIQUE NOT NULL", "password TEXT NOT NULL", - "email TEXT NOT NULL", + "email TEXT UNIQUE NOT NULL", "verified INTEGER NOT NULL DEFAULT 0", "verify_token TEXT NOT NULL DEFAULT ''", - "registered DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "last_login DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "auth INTEGER NOT NULL DEFAULT 0", + "registered INTEGER NOT NULL DEFAULT (unixepoch())", + "last_login INTEGER NOT NULL DEFAULT (unixepoch())", + "auth_level INTEGER NOT NULL DEFAULT 0", "lat INTEGER NOT NULL DEFAULT 0", "lon INTEGER NOT NULL DEFAULT 0", "class_id INTEGER NOT NULL DEFAULT 1", - "currently TEXT NOT NULL DEFAULT 'In Town'", - "fighting INTEGER NOT NULL default 0", - "monster_id INTEGER NOT NULL default 0", - "monster_hp INTEGER NOT NULL default 0", - "monster_sleep INTEGER NOT NULL default 0", - "monster_immune INTEGER NOT NULL default 0", - "uber_dmg INTEGER NOT NULL default 0", - "uber_def INTEGER NOT NULL default 0", + "currently INTEGER NOT NULL DEFAULT 0", + "fight_id INTEGER NOT NULL DEFAULT 0", "hp INTEGER NOT NULL default 15", - "mp INTEGER NOT NULL default 0", - "tp INTEGER NOT NULL default 10", "max_hp INTEGER NOT NULL default 15", + "mp INTEGER NOT NULL default 0", "max_mp INTEGER NOT NULL default 0", + "tp INTEGER NOT NULL default 10", "max_tp INTEGER NOT NULL default 10", "level INTEGER NOT NULL default 1", "gold INTEGER NOT NULL default 100", "exp INTEGER NOT NULL default 0", - "gold_bonus INTEGER NOT NULL default 0", - "exp_bonus INTEGER NOT NULL default 0", - "strength INTEGER NOT NULL default 5", - "dexterity INTEGER NOT NULL default 5", - "attack INTEGER NOT NULL default 5", - "defense INTEGER NOT NULL default 5", - "weapon_id INTEGER NOT NULL default 0", - "armor_id INTEGER NOT NULL default 0", - "shield_id INTEGER NOT NULL default 0", - "slot_1_id INTEGER NOT NULL default 0", - "slot_2_id INTEGER NOT NULL default 0", - "slot_3_id INTEGER NOT NULL default 0", - "weapon_name TEXT NOT NULL default 'None'", - "armor_name TEXT NOT NULL default 'None'", - "shield_name TEXT NOT NULL default 'None'", - "slot_1_name TEXT NOT NULL default 'None'", - "slot_2_name TEXT NOT NULL default 'None'", - "slot_3_name TEXT NOT NULL default 'None'", "drop_code INTEGER NOT NULL default 0", - "spells TEXT NOT NULL default '0'", - "maps TEXT NOT NULL default '0'" + "spells TEXT", + "maps TEXT" +) + +db:create_table("user_equipped", + "user_id INTEGER NOT NULL", + "weapon_id INTEGER NOT NULL DEFAULT 0", + "weapon_name TEXT", + "armor_id INTEGER NOT NULL DEFAULT 0", + "armor_name TEXT", + "shield_id INTEGER NOT NULL DEFAULT 0", + "shield_name TEXT", + "relic_1_id INTEGER NOT NULL DEFAULT 0", + "relic_1_name TEXT", + "relic_2_id INTEGER NOT NULL DEFAULT 0", + "relic_2_name TEXT", + "relic_3_id INTEGER NOT NULL DEFAULT 0", + "relic_3_name TEXT", ) db:commit()