diff --git a/ABILITY_SCHEMA.md b/ABILITY_SCHEMA.md deleted file mode 100644 index 584da7d..0000000 --- a/ABILITY_SCHEMA.md +++ /dev/null @@ -1,383 +0,0 @@ -# Ability JSON Schema Documentation - -> This document explains the structure of ability definition files used in the system. -> It is intended for **wiki contributors** and **tool developers** alike. - ---- - -## Top-Level Structure - -Every ability file follows this wrapper: - -```json -{ - "abilities": { - "id": "namespace:category/name", - "displayName": "translation.key.for.name", - "description": "translation.key.for.description", - "math": [ ...nodes ] - } -} -``` - -| Field | Type | Required | Description | -|---------------|--------|----------|-------------| -| `id` | string | ✅ | Unique ID in `namespace:category/name` format | -| `displayName` | string | ✅ | i18n translation key for the display name | -| `description` | string | ✅ | i18n translation key for the tooltip/description | -| `math` | array | ✅ | Ordered list of effect nodes (see below) | - ---- - -## The `id` Format - -IDs follow the pattern: `namespace:category/name` - -| Part | Example | Notes | -|-------------|---------------|-------| -| `namespace` | `original` | The mod or source that owns this ability | -| `category` | `fire` | The element, school, or grouping | -| `name` | `fireball` | The specific ability | - -**Examples:** -- `original:fire/fireball` -- `original:ice/frost_bolt` -- `mymod:arcane/void_lance` - ---- - -## Translation Keys - -`displayName` and `description` are **not raw text** — they are keys looked up in a translation file. - -**Convention:** `ability...` - -| Field | Example Key | -|---------------|--------------------------------------| -| `displayName` | `ability.original.fireball.name` | -| `description` | `ability.original.fireball.description` | - ---- - -## Math Nodes - -The `math` array is the heart of an ability. Each node is an object with at minimum: - -```json -{ "id": "unique_node_id", "type": "node_type", ...fields } -``` - -| Field | Type | Required | Description | -|--------|--------|----------|-------------| -| `id` | string | ✅ | Unique name for this node within the ability | -| `type` | string | ✅ | Determines what this node does (see types below) | - ---- - -## Node Types - ---- - -### `base_value` -The foundational damage or healing number, before any modifiers. - -```json -{ - "id": "base_damage", - "type": "base_value", - "amount": 50, - "scaling": { "stat": "spell_power", "multiplier": 1.5 } -} -``` - -| Field | Type | Required | Description | -|--------------------|--------|----------|-------------| -| `amount` | number | ✅ | The flat base value | -| `scaling.stat` | string | ✅ | Which player stat to scale from | -| `scaling.multiplier` | number | ✅ | How much of that stat to add (`stat × multiplier`) | - -> **Formula:** `final = amount + (player[stat] × multiplier)` - ---- - -### `range` -How far the ability can reach and how it travels. - -```json -{ - "id": "cast_range", - "type": "range", - "min": 0, - "max": 30, - "unit": "meters", - "rangeType": "projectile" -} -``` - -| Field | Type | Required | Description | -|-------------|--------|----------|-------------| -| `min` | number | ✅ | Minimum range (use `> 0` for dead zones) | -| `max` | number | ✅ | Maximum range (`null` = unlimited) | -| `unit` | string | ✅ | `"meters"` | -| `rangeType` | string | ✅ | `projectile`, `hitscan`, `melee`, `aura` | - ---- - -### `area_of_effect` -Defines the shape and spread of the ability's impact zone. - -```json -{ - "id": "explosion", - "type": "area_of_effect", - "shape": "sphere", - "radius": 5, - "unit": "meters", - "falloff": "linear" -} -``` - -| Field | Type | Required | Description | -|-----------|--------|----------|-------------| -| `shape` | string | ✅ | `sphere`, `cone`, `cylinder`, `line` | -| `radius` | number | ✅ | Size of the AoE | -| `unit` | string | ✅ | `"meters"` | -| `falloff` | string | ✅ | `none`, `linear`, `quadratic` — how damage drops off at edges | - ---- - -### `damage` -Instant damage dealt. Supports **multiple damage types** in one node via `sources`. - -```json -{ - "id": "instant_damage", - "type": "damage", - "sources": [ - { - "damageType": "fire", - "base_value": 50, - "scaling": { "stat": "spell_power", "multiplier": 1.5 } - }, - { - "damageType": "physical", - "base_value": 15, - "scaling": { "stat": "strength", "multiplier": 0.5 } - } - ] -} -``` - -| Field | Type | Required | Description | -|--------------------------|--------|----------|-------------| -| `sources` | array | ✅ | One entry per damage type | -| `sources[].damageType` | string | ✅ | e.g. `fire`, `physical`, `lightning`, `poison` | -| `sources[].base_value` | number | ✅ | Flat damage for this type | -| `sources[].scaling` | object | ✅ | Same `stat` / `multiplier` structure as `base_value` | - -> **Note:** Multiple sources are applied **independently** — each scales off its own stat. - ---- - -### `damage_over_time` -Repeating damage applied in ticks after the initial hit. - -```json -{ - "id": "burn_dot", - "type": "damage_over_time", - "damageType": "fire", - "damage_per_tick": 10, - "tick_interval_seconds": 1, - "duration_seconds": 5, - "scaling": { "stat": "spell_power", "multiplier": 0.3 }, - "stacks": false -} -``` - -| Field | Type | Required | Description | -|-------------------------|---------|----------|-------------| -| `damageType` | string | ✅ | Damage type per tick | -| `damage_per_tick` | number | ✅ | Flat damage each tick | -| `tick_interval_seconds` | number | ✅ | Seconds between ticks | -| `duration_seconds` | number | ✅ | Total duration | -| `scaling` | object | ✅ | Same `stat` / `multiplier` structure | -| `stacks` | boolean | ✅ | `true` = re-applying adds a new stack; `false` = resets timer | - -> **Total ticks:** `duration_seconds / tick_interval_seconds` - ---- - -### `condition` -A status effect or triggered reaction applied to the target. - -```json -{ - "id": "ignite_debuff", - "type": "condition", - "chance": 0.75, - "duration_seconds": 5, - "effect": "reduce_fire_resistance", - "magnitude": -20 -} -``` - -```json -{ - "id": "explosion_knockback", - "type": "condition", - "chance": 1.0, - "effect": "knockback", - "force": 8, - "direction": "away_from_origin" -} -``` - -| Field | Type | Required | Description | -|--------------------|--------|----------|-------------| -| `chance` | number | ✅ | Probability `0.0`–`1.0` (`1.0` = always) | -| `effect` | string | ✅ | The condition to apply — mapped by the engine | -| `duration_seconds` | number | ❌ | How long the condition lasts (omit for instant effects) | -| `magnitude` | number | ❌ | Numeric modifier for stat-changing effects | -| `force` | number | ❌ | For displacement effects like knockback | -| `direction` | string | ❌ | `away_from_origin`, `toward_origin`, `up` | - -> Multiple `condition` nodes are rolled **independently** per hit. - ---- - -### `meta` -Gameplay configuration — cooldowns, costs, and tags. - -```json -{ - "id": "fireball_meta", - "type": "meta", - "cooldown_seconds": 12, - "mana_cost": 80, - "cast_time_seconds": 1.5, - "tags": ["fire", "aoe", "projectile", "dot"] -} -``` - -| Field | Type | Required | Description | -|----------------------|----------|----------|-------------| -| `cooldown_seconds` | number | ✅ | Recharge time after use | -| `mana_cost` | number | ✅ | Resource cost to cast | -| `cast_time_seconds` | number | ✅ | Time before the ability fires (`0` = instant) | -| `tags` | string[] | ✅ | Used for filtering, synergies, and resistances | - ---- - -## Complete Example — Fireball - -```json -{ - "abilities": { - "id": "original:fire/fireball", - "displayName": "ability.original.fireball.name", - "description": "ability.original.fireball.description", - "math": [ - { - "id": "base_damage", - "type": "base_value", - "amount": 50, - "scaling": { "stat": "spell_power", "multiplier": 1.5 } - }, - { - "id": "cast_range", - "type": "range", - "min": 0, - "max": 30, - "unit": "meters", - "rangeType": "projectile" - }, - { - "id": "explosion", - "type": "area_of_effect", - "shape": "sphere", - "radius": 5, - "unit": "meters", - "falloff": "linear" - }, - { - "id": "instant_damage", - "type": "damage", - "sources": [ - { - "damageType": "fire", - "base_value": 50, - "scaling": { "stat": "spell_power", "multiplier": 1.5 } - }, - { - "damageType": "physical", - "base_value": 15, - "scaling": { "stat": "strength", "multiplier": 0.5 } - } - ] - }, - { - "id": "burn_dot", - "type": "damage_over_time", - "damageType": "fire", - "damage_per_tick": 10, - "tick_interval_seconds": 1, - "duration_seconds": 5, - "scaling": { "stat": "spell_power", "multiplier": 0.3 }, - "stacks": false - }, - { - "id": "ignite_debuff", - "type": "condition", - "chance": 0.75, - "duration_seconds": 5, - "effect": "reduce_fire_resistance", - "magnitude": -20 - }, - { - "id": "explosion_knockback", - "type": "condition", - "chance": 1.0, - "effect": "knockback", - "force": 8, - "direction": "away_from_origin" - }, - { - "id": "fireball_meta", - "type": "meta", - "cooldown_seconds": 12, - "mana_cost": 80, - "cast_time_seconds": 1.5, - "tags": ["fire", "aoe", "projectile", "dot"] - } - ] - } -} -``` - ---- - -## Quick Reference Card - -| Node Type | Purpose | Key Fields | -|-------------------|-------------------------------------|------------| -| `base_value` | Core damage number + stat scaling | `amount`, `scaling` | -| `range` | How far & how the ability travels | `min`, `max`, `rangeType` | -| `area_of_effect` | Shape & spread of impact zone | `shape`, `radius`, `falloff` | -| `damage` | Instant hit damage (multi-type ok) | `sources[]` | -| `damage_over_time`| Tick damage over time | `damage_per_tick`, `tick_interval_seconds`, `duration_seconds`, `stacks` | -| `condition` | Status effects & reactions | `chance`, `effect`, `duration_seconds` | -| `meta` | Cooldown, cost, cast time, tags | `cooldown_seconds`, `mana_cost`, `cast_time_seconds`, `tags` | - ---- - -## Rules & Conventions - -1. Every ability **must** have at least one `meta` node. -2. `id` values must be **unique within the same ability file** — use descriptive names. -3. `displayName` and `description` must be **translation keys**, never raw text. -4. The `math` array is processed **top to bottom** — order matters for dependent effects. -5. `damage` nodes should come **after** any `area_of_effect` nodes that modify their area. -6. A `damage_over_time` node is **separate** from `damage` — both can coexist freely. -7. Multiple `condition` nodes are each rolled independently. -8. `tags` on the `meta` node are used by the engine for resistance checks, talent synergies, and UI filtering. diff --git a/Panel_Admin.md b/Panel_Admin.md deleted file mode 100644 index c12391d..0000000 --- a/Panel_Admin.md +++ /dev/null @@ -1,191 +0,0 @@ -# Admin Panel -## - Items List -### Panel Setup -- Tags (Dynamic) - - Default (all) - - Alloys - - Circuits - - Customizables - - Ingots - - Materials - - Ores - - Personal - - Shop - - Space Ships - - Shields - - Weapons -## - Hostiles List -### Panel Setup -- Tags (Dynamic) - - Default (all) - - Ground Units - - Space Ships -## - Player List -- Tags (Dynamic) - - Default (all) - - Members - - Moderators - - Admins -## - Permissions -### Panel hierarchy -- Roles (Static) - - Edit - - Role Tag - - Role Name - - Permission Nodes - - Chat Font Color - - New - - Role Tag - - Role Name - - Permission Nodes - - Chat Font Color -- Users (Static) - - Edit - - Permission Nodes -# Permission Nodes -### Default Roles -- Members Permission Nodes - - permission.node.player.text.chat - - permission.node.player.text.chat.emote - - permission.node.player.text.chat.message - - permission.node.player.text.chat.message.direct - - permission.node.player.text.color.name - - permission.node.guild.join -- Moderator Permission Nodes - - global.roles.members.* - - permission.node.player.server.ban - - permission.node.player.server.timeout - - permission.node.player.server.unban - - permission.node.player.text.ban - - permission.node.player.text.timeout.["timeinseconds"] - - permission.node.player.text.unban -- Admin Permission Nodes - - global.roles.moderators.* - - permission.node.player.clean.database.all - - permission.node.player.clean.database.item - - permission.node.player.clean.inventory.all - - permission.node.player.clean.inventory.item - - permission.node.player.console - - permission.node.player.give.exp - - permission.node.player.give.item - - permission.node.player.give.skill - - permission.node.player.permission.add.["permission.node.*"] - - permission.node.player.permission.edit.["permission.node.*"] - - permission.node.player.permission.remove.["permission.node.*"] - - permission.node.player.role.add.["permission.node.*"] - - permission.node.player.role.edit - - permission.node.player.role.give - - permission.node.player.role.hierarchy - - permission.node.player.role.new - - permission.node.player.role.remove - - permission.node.player.role.remove.["permission.node.*"] -- Super Admin Permission Nodes (First Person On Server) - - permission.node.player.bypass -### Extra Nodes -- permission.node.tab.*.(allow/deny) -- permission.node.tab.dashboard.(allow/deny) -- permission.node.tab.dungeons.* - - ["permission.node.tab.dungeons.{datapackId}.{dungeonId}.(allow/deny)"] -- permission.node.tab.skills.* - - ["permission.node.tab.skills.{datapackId}.{skillsId}.(allow/deny)"] -- permission.node.tab.inventory.* - - ["permission.node.tab.inventory.{datapackId}.{core_systemId}.(allow/deny)"] -- permission.node.tab.shop.* - - ["permission.node.tab.shop.{datapackId}.{shopId}.(allow/deny)"] -- permission.node.tab.crafting.* - - ["permission.node.tab.crafting.{datapackId}.{craftingId}.(allow/deny)"] -- permission.node.tab.admin.* - - ["permission.node.tab.admin.{datapackId}.{adminId}.(allow/deny)"] -- permission.node.tab.chat.* - - ["permission.node.tab.chat.{datapackId}.{chatId}.(allow/deny)"] -- permission.node.tab.alerts.(allow/deny) -- permission.node.generate.credits.online.*.(allow/deny) -- permission.node.generate.credits.offline.*.(allow/deny) -- permission.node.generate.datacores.online.*.(allow/deny) -- permission.node.generate.datacores.offline.*.(allow/deny) -- permission.node.player.nickname.(allow/deny) -- permission.node.player.text.color.(allow/deny) -- permission.node.player.text.emote.(allow/deny) -### Guild Type Permissions -- guild.roles.* -- permission.node.guild.admin.* -- permission.node.guild.admin.alliance.* -- permission.node.guild.admin.alliance.create -- permission.node.guild.admin.alliance.join -- permission.node.guild.admin.alliance.leave -- permission.node.guild.admin.manage.* -- permission.node.guild.admin.manage.base.* -- permission.node.guild.admin.manage.base.type.* -- permission.node.guild.admin.manage.base.type.booster.* -- permission.node.guild.admin.manage.base.type.booster.{integar} -- permission.node.guild.admin.manage.base.type.mine -- permission.node.guild.admin.manage.base.type.mine.{integar} -- permission.node.guild.admin.manage.base.type.research.* -- permission.node.guild.admin.manage.base.type.research.{{datapackId}.{researchId}} -- permission.node.guild.admin.manage.base.type.storage.* -- permission.node.guild.admin.manage.base.type.storage.{integar} -- permission.node.guild.admin.manage.base.type.storage.{integar}.name -- permission.node.guild.admin.manage.base.type.storage.{integer}.limit.* -- permission.node.guild.admin.manage.base.type.storage.{integar}.limit.add -- permission.node.guild.admin.manage.base.type.storage.{integar}.limit.remove -- permission.node.guild.admin.manage.base.type.storage.{integar}.hidden -- permission.node.guild.admin.manage.message.announcement -- permission.node.guild.admin.manage.message.day -- permission.node.guild.admin.manage.message.recuitement -- permission.node.guild.admin.manage.name -- permission.node.guild.admin.manage.role.* -- permission.node.guild.admin.manage.role.create -- permission.node.guild.admin.manage.role.delete -- permission.node.guild.admin.manage.role.edit.* -- permission.node.guild.admin.manage.role.edit.hierarchy -- permission.node.guild.admin.manage.role.edit.name -- permission.node.guild.admin.manage.role.edit.permission -- permission.node.guild.invite -- permission.node.guild.join -- permission.node.guild.storage.* -- permission.node.guild.storage.add.* -- permission.node.guild.storage.add.{integer} -- permission.node.guild.storage.hidden.{integer} -- permission.node.guild.storage.remove.* -- permission.node.guild.storage.remove.{integer} -- permission.node.guild.text.chat.message.["guild.roles.*"] -### Alliance Type Permissions -- alliance.roles.* -- permission.node.alliance.admin.* -- permission.node.alliance.admin.manage.* -- permission.node.alliance.admin.manage.base.* -- permission.node.alliance.admin.manage.base.type.* -- permission.node.alliance.admin.manage.base.type.booster.* -- permission.node.alliance.admin.manage.base.type.booster.{integar} -- permission.node.alliance.admin.manage.base.type.mine -- permission.node.alliance.admin.manage.base.type.mine.{integar} -- permission.node.alliance.admin.manage.base.type.research.* -- permission.node.alliance.admin.manage.base.type.research.{{datapackId}.{researchId}} -- permission.node.alliance.admin.manage.base.type.storage.* -- permission.node.alliance.admin.manage.base.type.storage.{integar} -- permission.node.alliance.admin.manage.base.type.storage.{integar}.name -- permission.node.alliance.admin.manage.base.type.storage.{integer}.limit.* -- permission.node.alliance.admin.manage.base.type.storage.{integar}.limit.add -- permission.node.alliance.admin.manage.base.type.storage.{integar}.limit.remove -- permission.node.alliance.admin.manage.base.type.storage.{integar}.hidden -- permission.node.alliance.admin.manage.kick -- permission.node.alliance.admin.manage.message.announcement -- permission.node.alliance.admin.manage.message.day -- permission.node.alliance.admin.manage.message.recuitement -- permission.node.alliance.admin.manage.name -- permission.node.alliance.admin.manage.role.* -- permission.node.alliance.admin.manage.role.create -- permission.node.alliance.admin.manage.role.delete -- permission.node.alliance.admin.manage.role.edit.* -- permission.node.alliance.admin.manage.role.edit.hierarchy -- permission.node.alliance.admin.manage.role.edit.name -- permission.node.alliance.admin.manage.role.edit.permission -- permission.node.alliance.invite -- permission.node.alliance.join -- permission.node.alliance.storage.* -- permission.node.alliance.storage.add.* -- permission.node.alliance.storage.add.{integer} -- permission.node.alliance.storage.hidden.{integer} -- permission.node.alliance.storage.remove.* -- permission.node.alliance.storage.remove.{integer} -- permission.node.alliance.text.chat.message.["alliance.roles.*"] \ No newline at end of file diff --git a/Panel_Quests.md b/Panel_Quests.md deleted file mode 100644 index 5117058..0000000 --- a/Panel_Quests.md +++ /dev/null @@ -1,18 +0,0 @@ -# Quests Panel -## Quests new variables -```js -{ - "quests": { - "id": "datapackID:questID", - "displayName": "items.materials.original.quest.quest_name", - "description": "items.materials.original.quest.quest_name.desc", - "repeatable": boolean, - "questType": String, - "requiredDone": [], - "unlockRequirements": [], - "onFinish": [], - "meta": { - } - } -} -``` \ No newline at end of file diff --git a/Panel_Store.md b/Panel_Store.md deleted file mode 100644 index 040334a..0000000 --- a/Panel_Store.md +++ /dev/null @@ -1,20 +0,0 @@ -# Store Panel -## Items new variables -```js -{ - "materials": { - "id": "original:ore_coal", - "texture": "original/assets/textures/materials/ore/coal.png", - "displayName": "items.materials.original.ores.coal", - "description": "items.materials.original.ores.coal.desc", - "meta": { - "storeCategory": "original:materials", - "storeFeaturedDiscountPercentage": 0.5, - "storeFeaturedShowWeight": 10, #Higher number harder for role. - "storePrice": 50, - "storeSellValue": 10, - "storeShowWeight": 10 #Higher number harder for role. - } - } -} -``` \ No newline at end of file diff --git a/client/README.md b/README.md similarity index 100% rename from client/README.md rename to README.md diff --git a/api/package.json b/api/package.json deleted file mode 100644 index 68159f2..0000000 --- a/api/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "api", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node ./src/index.js" - }, - "keywords": [], - "author": "", - "license": "ISC", - "type": "commonjs", - "dependencies": { - "bcryptjs": "^3.0.3", - "cors": "^2.8.6", - "dotenv": "^17.3.1", - "express": "^5.2.1", - "jsonwebtoken": "^9.0.3", - "mongoose": "^9.3.0", - "socket.io": "^4.8.3" - } -} diff --git a/api/src/config/config.js b/api/src/config/config.js deleted file mode 100644 index 3abd506..0000000 --- a/api/src/config/config.js +++ /dev/null @@ -1,15 +0,0 @@ -require("dotenv").config(); - -if (!process.env.MONGODB_URI) { - console.error("❌ ERROR: MONGODB_URI is not defined in .env file"); - process.exit(1); -} - -const config = { - mongodbUri: process.env.MONGODB_URI, - port: process.env.PORT || 3000, - isProduction: process.env.NODE_ENV === "production", - gameServerSecret: process.env.GAME_SERVER_SECRET || "secret", -}; - -module.exports = config; diff --git a/api/src/controllers/authController.js b/api/src/controllers/authController.js deleted file mode 100644 index 530322f..0000000 --- a/api/src/controllers/authController.js +++ /dev/null @@ -1,25 +0,0 @@ -const authService = require("../services/authService"); - -const registerUser = async (req, res) => { - try { - const user = await authService.register(req.body); - res.status(201).json(user); - } catch (error) { - res.status(400).json({ message: error.message }); - } -}; - -const loginUser = async (req, res) => { - try { - const { email, password } = req.body; - const user = await authService.login(email, password); - res.status(200).json(user); - } catch (error) { - res.status(401).json({ message: error.message }); - } -}; - -module.exports = { - registerUser, - loginUser, -}; diff --git a/api/src/controllers/serverController.js b/api/src/controllers/serverController.js deleted file mode 100644 index ea991cf..0000000 --- a/api/src/controllers/serverController.js +++ /dev/null @@ -1,73 +0,0 @@ -const serverService = require("../services/serverService"); -const config = require("../config/config.js"); - -const register = async (req, res) => { - try { - const { name, url, secret, region, description } = req.body; - - if (secret !== process.env.GAME_SERVER_SECRET) { - console.warn(`⚠️ Unauthorized registration attempt for server: ${name}`); - return res.status(401).json({ message: "Unauthorized server" }); - } - - await serverService.registerGameServer({ name, url, region, description }); - res.json({ message: "Server registered successfully" }); - } catch (error) { - console.error(`❌ Registration error: ${error.message}`); - res.status(500).json({ message: "Internal server error" }); - } -}; -const heartbeat = async (req, res) => { - const { name, secret, playersOnline } = req.body; - - if (secret !== process.env.GAME_SERVER_SECRET) { - return res.status(401).json({ message: "Unauthorized" }); - } - try { - await serverService.updateHeartbeat(name, playersOnline); - res.json({ status: "ok" }); - } catch (error) { - res.status(500).json({ message: error.message }); - } -}; - -const list = async (req, res) => { - try { - const servers = await serverService.getAvailableServers(); - res.json(servers); - } catch (error) { - res.status(500).json({ message: "Error fetching servers" }); - } -}; -const join = async (req, res) => { - try { - const { serverId } = req.body; - - if (!serverId) { - return res.status(400).json({ message: "Server ID is required" }); - } - - const server = await serverService.getServerConnectionDetails(serverId); - if (!server) { - return res.status(404).json({ message: "Server not found or offline" }); - } - - res.json({ - success: true, - connectUrl: server.url, - port: server.port, - serverName: server.name, - description: server.description, - region: server.region, - }); - } catch (error) { - res.status(500).json({ message: "Error processing join request" }); - } -}; - -module.exports = { - register, - heartbeat, - list, - join, -}; diff --git a/api/src/db/db.js b/api/src/db/db.js deleted file mode 100644 index 924792f..0000000 --- a/api/src/db/db.js +++ /dev/null @@ -1,19 +0,0 @@ -const mongoose = require("mongoose"); -const config = require("../config/config.js"); - -const connectDB = async () => { - try { - const conn = await mongoose.connect(config.mongodbUri); - - console.log(`MongoDB Connected: ${conn.connection.host}`); - } catch (error) { - console.error(`Error connecting to MongoDB: ${error.message}`); - process.exit(1); - } -}; - -mongoose.connection.on("disconnected", () => { - console.warn("MongoDB disconnected!"); -}); - -module.exports = connectDB; diff --git a/api/src/index.js b/api/src/index.js deleted file mode 100644 index 2a12267..0000000 --- a/api/src/index.js +++ /dev/null @@ -1,33 +0,0 @@ -const express = require("express"); -const cors = require("cors"); -const config = require("./config/config.js"); -const connectDB = require("./db/db.js"); -const authRoutes = require("./routes/authRoutes"); -const userRoutes = require("./routes/userRoutes"); -const serverRoutes = require("./routes/serverRoutes.js"); -const app = express(); - -connectDB(); - -app.use( - cors({ - origin: "*", - allowedHeaders: ["Content-Type", "Authorization"], - credentials: true, - }), -); -app.use(express.json()); -app.use(express.urlencoded({ extended: true })); - -app.use("/api/auth", authRoutes); -app.use("/api/users", userRoutes); -app.use("/api/servers", serverRoutes); - -app.get("/health", (req, res) => { - res.status(200).json({ status: "OK" }); -}); - -const PORT = config.port; -app.listen(PORT, () => { - console.log(`🚀 Server running on port ${PORT}`); -}); diff --git a/api/src/middleware/authMiddleware.js b/api/src/middleware/authMiddleware.js deleted file mode 100644 index 03c1eac..0000000 --- a/api/src/middleware/authMiddleware.js +++ /dev/null @@ -1,32 +0,0 @@ -const jwt = require("jsonwebtoken"); -const User = require("../models/User"); -const config = require("../config/config.js"); - -const protect = async (req, res, next) => { - let token; - - if ( - req.headers.authorization && - req.headers.authorization.startsWith("Bearer") - ) { - try { - token = req.headers.authorization.split(" ")[1]; - const decoded = jwt.verify(token, process.env.JWT_SECRET || "secret_key"); - - req.user = await User.findById(decoded.id).select("-password"); - - if (!req.user) { - return res.status(401).json({ message: "User not found" }); - } - - return next(); // Обов'язково return, щоб зупинити виконання функції - } catch (error) { - return res.status(401).json({ message: "Not authorized, token failed" }); - } - } - - if (!token) { - return res.status(401).json({ message: "Not authorized, no token" }); - } -}; -module.exports = { protect }; diff --git a/api/src/models/GameServer.js b/api/src/models/GameServer.js deleted file mode 100644 index 719e4d2..0000000 --- a/api/src/models/GameServer.js +++ /dev/null @@ -1,16 +0,0 @@ -const mongoose = require("mongoose"); - -const gameServerSchema = new mongoose.Schema({ - name: String, - url: String, - lastHeartbeat: { type: Date, default: Date.now }, - status: { type: String, default: "online" }, - description: { type: String, default: "Description..." }, - isModded: { type: Boolean, default: false }, - region: { type: String, default: "Null" }, - playersOnline: { - type: Number, - default: 0, - }, -}); -module.exports = mongoose.model("GameServer", gameServerSchema); diff --git a/api/src/models/User.js b/api/src/models/User.js deleted file mode 100644 index 46c5327..0000000 --- a/api/src/models/User.js +++ /dev/null @@ -1,38 +0,0 @@ -const mongoose = require("mongoose"); - -const userSchema = new mongoose.Schema( - { - username: { - type: String, - required: [true, "Username is required"], - unique: true, - trim: true, - minlength: [3, "Username must be at least 3 characters long"], - }, - email: { - type: String, - required: [true, "Email is required"], - unique: true, - lowercase: true, - trim: true, - match: [/^\S+@\S+\.\S+$/, "Please use a valid email address"], - }, - password: { - type: String, - required: [true, "Password is required"], - minlength: [6, "Password must be at least 6 characters long"], - }, - - role: { - type: String, - enum: ["user", "admin"], - default: "user", - }, - }, - { - timestamps: true, - }, -); - -const User = mongoose.model("User", userSchema); -module.exports = User; diff --git a/api/src/routes/authRoutes.js b/api/src/routes/authRoutes.js deleted file mode 100644 index 0adb13d..0000000 --- a/api/src/routes/authRoutes.js +++ /dev/null @@ -1,7 +0,0 @@ -const express = require("express"); -const router = express.Router(); -const { registerUser, loginUser } = require("../controllers/authController"); - -router.post("/register", registerUser); -router.post("/login", loginUser); -module.exports = router; diff --git a/api/src/routes/serverRoutes.js b/api/src/routes/serverRoutes.js deleted file mode 100644 index f1c29a4..0000000 --- a/api/src/routes/serverRoutes.js +++ /dev/null @@ -1,9 +0,0 @@ -const express = require("express"); -const router = express.Router(); -const serverController = require("../controllers/serverController"); -const { protect } = require("../middleware/authMiddleware"); -router.post("/register", serverController.register); -router.post("/heartbeat", serverController.heartbeat); -router.get("/list", serverController.list); -router.post("/join", protect, serverController.join); -module.exports = router; diff --git a/api/src/routes/userRoutes.js b/api/src/routes/userRoutes.js deleted file mode 100644 index 367d518..0000000 --- a/api/src/routes/userRoutes.js +++ /dev/null @@ -1,10 +0,0 @@ -const express = require("express"); -const router = express.Router(); -const { protect } = require("../middleware/authMiddleware"); -const User = require("../models/User"); - -router.get("/me", protect, async (req, res) => { - res.json(req.user); -}); - -module.exports = router; diff --git a/api/src/services/authService.js b/api/src/services/authService.js deleted file mode 100644 index efcb489..0000000 --- a/api/src/services/authService.js +++ /dev/null @@ -1,59 +0,0 @@ -const User = require("../models/User"); -const bcrypt = require("bcryptjs"); -const jwt = require("jsonwebtoken"); -const config = require("../config/config.js"); - -const register = async (userData) => { - const { username, email, password } = userData; - - const userExists = await User.findOne({ email }); - if (userExists) { - throw new Error("User already exists"); - } - - const salt = await bcrypt.genSalt(10); - const hashedPassword = await bcrypt.hash(password, salt); - - const user = await User.create({ - username, - email, - password: hashedPassword, - }); - - return { - _id: user._id, - username: user.username, - email: user.email, - token: generateToken(user._id), - }; -}; - -const login = async (email, password) => { - const user = await User.findOne({ email }); - if (!user) { - throw new Error("Invalid credentials"); - } - - const isMatch = await bcrypt.compare(password, user.password); - if (!isMatch) { - throw new Error("Invalid credentials"); - } - - return { - _id: user._id, - username: user.username, - email: user.email, - token: generateToken(user._id), - }; -}; - -const generateToken = (id) => { - return jwt.sign({ id }, process.env.JWT_SECRET || "secret_key", { - expiresIn: "30d", - }); -}; - -module.exports = { - register, - login, -}; diff --git a/api/src/services/serverService.js b/api/src/services/serverService.js deleted file mode 100644 index 73e8468..0000000 --- a/api/src/services/serverService.js +++ /dev/null @@ -1,62 +0,0 @@ -const GameServer = require("../models/GameServer"); - -const registerGameServer = async (serverData) => { - const { name, url, region, description } = serverData; - - const server = await GameServer.findOneAndUpdate( - { name }, - { - url, - lastHeartbeat: Date.now(), - status: "online", - description, - region, - }, - { upsert: true, returnDocument: "after" }, - ); - - console.log(`📡 [REGISTRY] Game Server "${name}" at ${url} is now ONLINE`); - return server; -}; -const updateHeartbeat = async (name, playersOnline) => { - return await GameServer.findOneAndUpdate( - { name }, - { - lastHeartbeat: Date.now(), - status: "online", - playersOnline: playersOnline, - }, - ); -}; - -const checkServerHealth = async () => { - const timeout = new Date(Date.now() - 60000); - - const result = await GameServer.updateMany( - { lastHeartbeat: { $lt: timeout }, status: "online" }, - { status: "offline" }, - ); - - if (result.modifiedCount > 0) { - console.log(`[CLEANUP] Marked ${result.modifiedCount} servers as OFFLINE`); - } -}; - -const getAvailableServers = async () => { - return await GameServer.find({}).select( - "name url playersOnline status maxPlayers", - ); -}; -const getServerConnectionDetails = async (serverId) => { - return await GameServer.findOne({ _id: serverId, status: "online" }).select( - "name url port region description", - ); -}; -setInterval(checkServerHealth, 60000); - -module.exports = { - registerGameServer, - updateHeartbeat, - getAvailableServers, - getServerConnectionDetails, -}; diff --git a/client/.gitignore b/client/.gitignore deleted file mode 100644 index a547bf3..0000000 --- a/client/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/client/package.json b/client/package.json deleted file mode 100644 index 85d51c2..0000000 --- a/client/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "client", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite --host 0.0.0.0", - "build": "vite build", - "lint": "eslint .", - "preview": "vite preview" - }, - "dependencies": { - "axios": "^1.13.6", - "react": "^19.2.0", - "react-dom": "^19.2.0", - "socket.io-client": "^4.8.3" - }, - "devDependencies": { - "@eslint/js": "^9.39.1", - "@types/react": "^19.2.5", - "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^5.1.1", - "eslint": "^9.39.1", - "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-react-refresh": "^0.4.24", - "globals": "^16.5.0", - "vite": "^7.2.4" - } -} diff --git a/datapack-documentation/Dungeons.md b/datapack-documentation/Dungeons.md deleted file mode 100644 index 12edb6c..0000000 --- a/datapack-documentation/Dungeons.md +++ /dev/null @@ -1,98 +0,0 @@ -### Dungeon Datapack Documentation - -### Dungeon Configuration - -**Path:** `datapacks/[namespace]/dungeons/[path]/dungeon.json` - -```json -{ - "dungeon": { - "id": "Unique system ID (namespace:path/name)", - "displayName": "Translation key for the dungeon name", - "description": "Translation key for the atmospheric location description", - "meta": { - "energyCost": "Amount of energy required for entry", - "repeatable": "Boolean (true/false): whether the dungeon can be replayed", - "raid": "Whether this dungeon is designed for a group of players" - }, - "rooms": [ - { "id": "Reference to a specific Room ID from the available rooms pool" } - ] - } -} -``` - -### Room Configuration - -**Path:** `datapacks/[namespace]/rooms/[path]/room.json` - -```json -{ - "room": { - "id": "Unique system ID (namespace:path/name)", - "displayName": "Translation key for the UI display name", - "description": "Translation key for the atmospheric flavor text shown upon entry", - "hostiles": [ - "Array of Enemy IDs to spawn in this room (e.g., ['id1', 'id2'])" - ], - "gainXp": "Fixed amount of experience awarded for clearing the room", - "credits": "Fixed amount of currency guaranteed to drop", - "loot": [], - "meta": { - "isBossRoom": "Boolean: whether to trigger boss-fight logic" - } - } -} -``` - -### Hostile Configuration - -Path: datapacks/[namespace]/enemies/hostiles/[path]/enemy.json - -```json -{ - "hostile": { - "id": "Unique system ID (namespace:path/name)", - "displayName": "Translation key for the enemy's name", - "stats": { - "health": "Numerical HP value", - "defense": "Numerical defense value", - "damage": "Numerical base damage value", - "critical.chance": "Critical hit chance", - "attack.rate": "Attack speed (seconds)" - }, - "loot": [], - "meta": {} - } -} -``` - -### Loot System Specification - -This structure is used to define item drops within **Rooms** (on completion) or from **Hostiles** (on death). - -```json -{ - "loot": [ - { - "id": "Unique Item ID (namespace:items/item_name)", - "chance": "Probability of dropping, from 0.0 (0%) to 1.0 (100%)", - "count": { - "min": "Minimum number of items to drop if the chance succeeds", - "max": "Maximum number of items to drop if the chance succeeds" - } - }, - { - "id": "Unique Item ID", - "chance": "Probability of dropping", - "count": "Fixed integer value if the item amount is always constant" - } - ] -} -``` - -### Project Examples Reference - -- **Dungeon Example:** [crystal_mine](example/datapack/ex/data/dungeons/caverns/crystal_mine.json) -- **Room Examples:** \* [crystal_hallway](example/datapack/ex/data/enemies/rooms/caverns/crystal_hallway.json) -- **Hostile Example:** [crystal_guardian](example/datapack/ex/data/enemies/hostiles/caverns/crystal_guardian.json) diff --git a/datapack-documentation/example/datapack/ex/data/dungeons/caverns/crystal_mine.json b/datapack-documentation/example/datapack/ex/data/dungeons/caverns/crystal_mine.json deleted file mode 100644 index 3522f1c..0000000 --- a/datapack-documentation/example/datapack/ex/data/dungeons/caverns/crystal_mine.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "dungeon": { - "id": "original:caverns/crystal_mine", - "displayName": "dungeons.original.caverns.crystal_mine.name", - "description": "dungeons.original.caverns.crystal_mine.desc", - "meta": { - "energyCost": 15, - "repeatable": true, - "raid": false - }, - "rooms": [ - { "id": "original:caverns/crystal_hallway" }, - { "id": "original:caverns/crystal_hallway" }, - { "id": "original:caverns/core_vault" } - ] - } -} diff --git a/datapack-documentation/example/datapack/ex/data/enemies/hostiles/caverns/crystal_guardian.json b/datapack-documentation/example/datapack/ex/data/enemies/hostiles/caverns/crystal_guardian.json deleted file mode 100644 index 5c98d00..0000000 --- a/datapack-documentation/example/datapack/ex/data/enemies/hostiles/caverns/crystal_guardian.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "hostile": { - "id": "original:caverns/crystal_guardian", - "displayName": "enemies.original.caverns.crystal_guardian.name", - "stats": { - "health": 120, - "defense": 0.25, - "damage": 18.0, - "critical,chance": 0.15, - "attack.rate": 2.5 - }, - "loot": [ - { - "id": "original:ore_coal", - "chance": 0.8, - "count": { "min": 2, "max": 5 } - }, - { - "id": "original:ore_copper", - "chance": 0.6, - "count": { "min": 1, "max": 3 } - }, - { - "id": "original:crystal_flux_core", - "chance": 0.15, - "count": 1 - }, - { - "id": "original:crystal_dimentional", - "chance": 0.02, - "count": 1 - } - ], - "meta": {} - } -} diff --git a/datapack-documentation/example/datapack/ex/data/enemies/rooms/caverns/core_vault.json b/datapack-documentation/example/datapack/ex/data/enemies/rooms/caverns/core_vault.json deleted file mode 100644 index 73e7a4a..0000000 --- a/datapack-documentation/example/datapack/ex/data/enemies/rooms/caverns/core_vault.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "room": { - "id": "original:caverns/core_vault", - "displayName": "rooms.original.caverns.core_vault.name", - "description": "rooms.original.caverns.core_vault.desc", - "hostiles": [ - "original:caverns/crystal_guardian", - "original:pirate/boarding_drone" - ], - "gainXp": 120, - "credits": 850, - "loot": [ - { - "id": "original:crystal_flux_core", - "chance": 0.5, - "count": 1 - }, - { - "id": "original:ore_copper", - "chance": 1.0, - "count": { "min": 5, "max": 10 } - } - ], - "meta": { - "isBossRoom": true - } - } -} diff --git a/datapack-documentation/example/datapack/ex/data/enemies/rooms/caverns/crystal_hallway.json b/datapack-documentation/example/datapack/ex/data/enemies/rooms/caverns/crystal_hallway.json deleted file mode 100644 index 47c81cd..0000000 --- a/datapack-documentation/example/datapack/ex/data/enemies/rooms/caverns/crystal_hallway.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "room": { - "id": "original:caverns/crystal_hallway", - "displayName": "rooms.original.caverns.crystal_hallway.name", - "description": "rooms.original.caverns.crystal_hallway.desc", - "hostiles": [ - "original:pirate/boarding_drone", - "original:pirate/boarding_drone" - ], - "gainXp": 45, - "credits": 250, - "loot": [ - { - "id": "original:ore_coal", - "chance": 1.0, - "count": { "min": 3, "max": 6 } - } - ], - "meta": { - "isBossRoom": false - } - } -} diff --git a/client/eslint.config.js b/eslint.config.js similarity index 100% rename from client/eslint.config.js rename to eslint.config.js diff --git a/game-server/datapacks/core/assets/audio/.gitkeep b/game-server/datapacks/core/assets/audio/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/game-server/datapacks/core/assets/audio/GSO-Button Sound.wav b/game-server/datapacks/core/assets/audio/GSO-Button Sound.wav deleted file mode 100644 index 20b3381..0000000 Binary files a/game-server/datapacks/core/assets/audio/GSO-Button Sound.wav and /dev/null differ diff --git a/game-server/datapacks/core/assets/audio/GSO-Button Sound.webm b/game-server/datapacks/core/assets/audio/GSO-Button Sound.webm deleted file mode 100644 index 8229a15..0000000 Binary files a/game-server/datapacks/core/assets/audio/GSO-Button Sound.webm and /dev/null differ diff --git a/game-server/datapacks/core/assets/audio/GSO-Space ship Engine Idle.mp4 b/game-server/datapacks/core/assets/audio/GSO-Space ship Engine Idle.mp4 deleted file mode 100644 index 9ce3c2d..0000000 Binary files a/game-server/datapacks/core/assets/audio/GSO-Space ship Engine Idle.mp4 and /dev/null differ diff --git a/game-server/datapacks/core/assets/audio/GSO-Space ship Engine Idle.webm b/game-server/datapacks/core/assets/audio/GSO-Space ship Engine Idle.webm deleted file mode 100644 index 483bc61..0000000 Binary files a/game-server/datapacks/core/assets/audio/GSO-Space ship Engine Idle.webm and /dev/null differ diff --git a/game-server/datapacks/core/assets/languages/en_US.json b/game-server/datapacks/core/assets/languages/en_US.json deleted file mode 100644 index 1264097..0000000 --- a/game-server/datapacks/core/assets/languages/en_US.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "_comment_Admin": "", - "admin.category.core.dungeon_list": "Dungeon list", - "admin.category.core.hostile_list": "Hostile list", - "admin.category.core.item_list": "Item list", - "admin.category.core.player_list": "Player list", - "admin.category.core.item_list.all": "All", - "admin.category.core.hostile_list.all": "All", - "admin.category.core.player_list.all": "All", - "_comment_Stats": "", - "stats.category.core.attack.base": "Attack", - "stats.category.core.attack.chance": "Attack Chance", - "stats.category.core.attack.rate": "Attack Rate", - "stats.category.core.defence.base": "Defence", - "stats.category.core.defence.chance": "Defence Chance", - "stats.category.core.defence.rate": "Defence Rate", - "stats.category.core.health": "Health", - "stats.category.core.penetration.base": "Penetration", - "stats.category.core.penetration.chance": "Penetration Chance", - "stats.category.core.penetration.rate": "Penetration Rate", - "stats.category.core.reflect.base": "Reflect", - "stats.category.core.reflect.chance": "Reflection Chance", - "stats.category.core.reflect.rate": "Reflection Rate", - "stats.category.core.resistance.base": "Resistance", - "stats.category.core.resistance.cold": "Cold Resistance", - "stats.category.core.resistance.gamma": "Gamma Resistance", - "stats.category.core.resistance.heat": "Heat Resistance", - "stats.category.core.resistance.ion": "Ion Resistance", - "stats.category.core.resistance.physical": "Physical Resistance", - "stats.category.core.resistance.plasma": "Plasma Resistance", - "_comment_Tabs": "", - "category.tabs.core.crafting": "Crafting", - "category.tabs.core.dashboard": "Dashboard", - "category.tabs.core.datapack": "Datapack", - "category.tabs.core.dungeons": "Dungeons", - "category.tabs.core.inventory": "Inventory", - "category.tabs.core.quest": "Quests", - "category.tabs.core.shop": "Shop", - "category.tabs.core.skills": "Skills" -} - diff --git a/game-server/datapacks/core/assets/textures/.gitkeep b/game-server/datapacks/core/assets/textures/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/game-server/datapacks/core/manifest.json b/game-server/datapacks/core/manifest.json deleted file mode 100644 index 23b8e2e..0000000 --- a/game-server/datapacks/core/manifest.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "name": "core", - "version": "0.0.1", - "admin_dungeon_list": { - "categories": { - "dungeon:all": { - "displayName": "admin.category.core.dungeon_list.all" - } - } - }, - "admin_hostiles_list": { - "categories": { - "core:all": { - "displayName": "admin.category.core.hostile_list.all" - } - } - }, - "admin_item_list": { - "categories": { - "core:all": { - "displayName": "admin.category.core.item_list.all" - } - } - }, - "admin_panel": { - "categories": { - "core:admin_dungeon_list": { - "displayName": "admin.category.core.dungeon_list" - }, - "core:admin_hostiles_list": { - "displayName": "admin.category.core.hostile_list" - }, - "core:admin_item_list": { - "displayName": "admin.category.core.item_list" - }, - "core:admin_player_list": { - "displayName": "admin.category.core.player_list" - } - } - }, - "admin_player_list": { - "categories": { - "core:all": { - "displayName": "admin.category.core.player_list.all" - } - } - }, - "core_systems": { - "categories": { - } - }, - "dashboard": { - "categories": { - "core:dashboard_id":{ - "displayName": "dashboard.category.core.dashboard_id" - }, - "core:dashboard_finance":{ - "displayName": "dashboard.category.core.dashboard_finance" - }, - "core:dashboard_system":{ - "displayName": "dashboard.category.core.dashboard_system" - } - } - }, - "dashboard_finance": { - "categories": { - } - }, - "dashboard_id": { - "categories": { - "core:rank":{ - "displayName": "dashboard.category.core.id_rank" - }, - "core:experiance":{ - "displayName": "dashboard.category.core.id_exeriance" - } - } - }, - "dashboard_system": { - "categories": { - "core:server_status":{ - "displayName": "dashboard.category.core.server_status" - } - } - }, - "quests": { - "categories": { - } - }, - "recipes": { - "categories": { - } - }, - "shop": { - "categories": { - } - }, - "skills": { - "categories": { - } - } -} diff --git a/game-server/datapacks/original/assets/languages/en_US.json b/game-server/datapacks/original/assets/languages/en_US.json deleted file mode 100644 index 407a599..0000000 --- a/game-server/datapacks/original/assets/languages/en_US.json +++ /dev/null @@ -1,298 +0,0 @@ -{ -"_comment_Admin" : "", - "admin.category.original.hostile_list" : "Hostile List", - "admin.category.original.item_list" : "Item List", - "admin.category.original.player_list" : "Player List", - "admin.category.original.item_list.all" : "All", - "admin.category.original.item_list.alloys" : "Alloys", - "admin.category.original.item_list.circuits" : "Circuits", - "admin.category.original.item_list.customizables" : "Customizables", - "admin.category.original.item_list.ingots" : "Ingots", - "admin.category.original.item_list.maerials" : "Materials", - "admin.category.original.item_list.ores" : "Ores", - "admin.category.original.item_list.personal" : "Personal", - "admin.category.original.item_list.ships" : "Ships", - "admin.category.original.item_list.shields" : "Shields", - "admin.category.original.item_list.weapons" : "Weapons", - "admin.category.original.hostile_list.all" : "All", - "admin.category.original.hostile_list.ground" : "Ground Units", - "admin.category.original.hostile_list.ships" : "Ships", - "admin.category.original.player_list.all" : "All", - "admin.category.original.player_list.members" : "Members", - "admin.category.original.player_list.moderators" : "Moderators", - "admin.category.original.player_list.admins" : "Admins", -"_comment_Core_Systems" : "", - "core_systems.category.original.person.backpack" : "Personal Backpack", - "core_systems.category.original.person.helmet" : "Personal Helmet", - "core_systems.category.original.person.suit" : "Personal Suit", - "core_systems.category.original.person.gloves" : "Personal Gloves", - "core_systems.category.original.person.boots" : "Personal Boots", - "core_systems.category.original.person.accessory_1" : "Personal Accessory 1", - "core_systems.category.original.person.accessory_2" : "Personal Accessory 2", - "core_systems.category.original.person.accessory_3" : "Personal Accessory 3", - "core_systems.category.original.person.accessory_4" : "Personal Accessory 4", - "core_systems.category.original.person.weapon" : "Personal Weapon", - "core_systems.category.original.ship.hull" : "Ship Hull", - "core_systems.category.original.ship.shields" : "Ship Shield", - "core_systems.category.original.ship.engines" : "Ship Engine", - "core_systems.category.original.ship.weapon_1" : "Ship Weapon 1", - "core_systems.category.original.ship.weapon_2" : "Ship Weapon 2", - "core_systems.category.original.ship.thruster_1" : "Ship Thruster 1", - "core_systems.category.original.ship.thruster_2" : "Ship Thruster 2", - "core_systems.category.original.ship.thruster_3" : "Ship Thruster 3", - "core_systems.category.original.ship.thruster_4" : "Ship Thruster 4", -"_comment_Dungeons" : "", - "dungeons.original.pirate.pirates_outpost" : "Pirate Outpost", - "dungeons.original.pirate.pirates_outpost.desc" : "A hidden supply station belonging to the Black Mark syndicate.", - "dungeons.original.tutorial.tutorial" : "Tutorial", - "dungeons.original.tutorial.tutorial.desc" : "A one time dungeon.", - "dungeons.original.Kaleidoscope" : "Kaleidoscope", - "dungeons.original.Kaleidoscope.desc" : "hope you got lots of diffrent resistances...", -"_comment_Enemies" : "", - "enemies.original.creatures.pirate.black_mark_heavy_cruiser" : "Black Mark Heavy Cruiser", - "enemies.original.pirate.black_mark_heavy_cruiser" : "Raider Frigate", - "enemies.original.pirate.raider_frigate" : "Snacher Clipper", - "enemies.original.pirate.corvid_corvette" : "Corvid Corvette", - "enemies.original.pirate.snacher_clipper" : "Scout Drone", - "enemies.original.tutorial.tutorial_hostile" : "Tutorial hostile", - "enemies.original.tutorial.tutorial_boss_hostile" : "Tutorial Boss", - "enemies.original.pirate.scout_drone" : "scout drone", - "enemies.original.creatures.gamma_fiend" : "mutant", - "enemies.original.creatures.gamma_fiend.desc" : "the radiation sickens you", - "enemies.original.creatures.fire_fiend" : "fire fiend", - "enemies.original.creatures.fire_fiend.desc" : "Hot HOT HOT!", - "enemies.original.anomalies.electrical_anomaly" : "Electrical Anomaly", - "enemies.original.anomalies.electrical_anomaly.desc" : "a ball of angry lightning", - "enemies.original.creatures.not_a_giant_rat" : "Mouse XL", - "enemies.original.creatures.not_a_giant_rat.desc" : "No, not a giant rat, stop asking", - "enemies.original.anomalies.plasma_anomaly" : "Plasma Anomaly", - "enemies.original.anomalies.plasma_anomaly.desc" : "an angry ball of plasma", - "enemies.original.creatures.frost_fiend" : "woolly wambler", - "enemies.original.creatures.frost_fiend.desc" : "beware its ice spikes", - "enemies.original.pirate.scout_drone.desc" : "a scout ahead of its group", - "enemies.original.pirate.snacher_clipper.desc" : "Fast and hard to hit. Built to run blockades and transport VIPs", - "enemies.original.pirate.raider_frigate.desc" : "Perfect for raiding under defended colonies and stations", - "enemies.original.pirate.black_mark_heavy_cruiser.desc" : "what passes as a typical pirate lord cammand ship", - "enemies.original.pirate.corvid_corvette.desc" : "stealthy and uses hard to resist plasma attacks", -"_comment_Equipment_Personal" : "", - "items.materials.original.personal.accessory.basic_personal_accessory" : "Personal accessory", - "items.materials.original.personal.accessory.basic_personal_accessory.desc" : "Test accessory", - "items.materials.original.personal.backpack.basic_personal_backpack" : "Personal backpack", - "items.materials.original.personal.backpack.basic_personal_backpack.desc" : "Test backpack", - "items.materials.original.personal.armor.boots.basic_personal_boots" : "Personal boots", - "items.materials.original.personal.armor.boots.basic_personal_boots.desc" : "Test boots", - "items.materials.original.personal.armor.gloves.basic_personal_gloves" : "Personal gloves", - "items.materials.original.personal.armor.gloves.basic_personal_gloves.desc" : "Test gloves", - "items.materials.original.personal.suit.basic_personal_suit" : "Personal suit", - "items.materials.original.personal.suit.basic_personal_suit.desc" : "Test suit", - "items.materials.original.personal.weapon.basic_personal_weapon" : "Personal weapon", - "items.materials.original.personal.weapon.basic_personal_weapon.desc" : "Test weapon", - "items.materials.original.personal.backpack.personal_shield" : "Personal Shield", - "items.materials.original.personal.backpack.personal_shield.desc" : "Provides a lot of protection but lacks sufficent storage space", -"_comment_Equipment_Ship" : "", - "items.materials.original.ship.engine.basic_ship_engines" : "Ship engines", - "items.materials.original.ship.engine.basic_ship_engines.desc" : "Test engines", - "items.materials.original.ship.engine.rtg" : "RTG", - "items.materials.original.ship.engine.rtg.desc" : "very baisic and low power genarator with a long track record of reliability", - "items.materials.original.ship.engine.gen1_fission_reactor" : "Gen 1 nuclear reactor", - "items.materials.original.ship.engine.gen1_fission_reactor.desc" : "A boiling water reactor. Little more than a pile of glowing rocks in some hot water", - "items.materials.original.ship.engine.gen2_fission_reactor" : "Gen 2 nuclear reactor", - "items.materials.original.ship.engine.gen2_fission_reactor.desc" : "A Gas cooled reactor. Uses CO2 as a coolant allowing it to run hotter and at higher pressures and be much more power dense. The high power density and pressures comes at a price of reliability", - "items.materials.original.ship.engine.gen3_fission_reactor" : "Gen 3 nuclear reactor", - "items.materials.original.ship.engine.gen3_fission_reactor.desc" : "A Molten salt reactor. The pinical of fission power. Uses molten salt as its coolant allowing for very high temperatures and low pressures. Safer than most reactors", - "items.materials.original.ship.plating.basic_plating" : "Ship plating", - "items.materials.original.ship.plating.basic_plating.desc" : "Better at stopping sing large hits", - "items.materials.original.ship.plating.heavy_plating" : "Heavy Plating", - "items.materials.original.ship.plating.heavy_plating.desc" : "Strong plating capable of resisting high damage impacts", - "items.materials.original.ship.plating.reflective_plating" : "Reflective plating", - "items.materials.original.ship.plating.reflective_plating.desc" : "About as strong as heavy plating but reflects damage back at attackers", - "items.materials.original.ship.shields.basic_shield" : "Ship shield", - "items.materials.original.ship.shields.basic_shield.desc" : "Better at stopping many smaller hits. Weak to ion damage", - "items.materials.original.ship.shields.heavy_shield" : "Heavy shield", - "items.materials.original.ship.shields.heavy_shield.desc" : "A high capacity shild for dealing with lots of inbond threats", - "items.materials.original.ship.shields.reflecter_shield" : "Reflecter Shields", - "items.materials.original.ship.shields.reflecter_shield.desc" : "About as strong as heavy shields but reflects a lot of damage back at the attacker", - "items.materials.original.ship.thruster.basic_ship_thruster" : "Ship thruster", - "items.materials.original.ship.thruster.basic_ship_thruster.desc" : "Test thruster", - "items.materials.original.ship.thruster.big_ship_thruster" : "Big ship thruster", - "items.materials.original.ship.thruster.big_ship_thruster.desc" : "Used as a main drive for a ship", - "items.materials.original.ship.weapon.basic_ship_weapon" : "Ship weapon", - "items.materials.original.ship.weapon.basic_ship_weapon.desc" : "Test weapon", - "items.materials.original.ship.weapon.unstable_partical_cannon" : "Unstable partical cannon", - "items.materials.original.ship.weapon.unstable_partical_cannon.desc" : "Does a lot of damage in a small space but to power it requires a lot of changes to the ships internals making it more prone to damage", - "items.materials.original.ship.weapon.serpent_missiles" : "Serpent Missiles", - "items.materials.original.ship.weapon.serpent_missiles.desc" : "Missiles do more damage for their tier but prone to magazine detonations", -"_comment_Materials" : "", - "items.materials.original.bio.bio_pulp" : "Bio pulp", - "items.materials.original.bio.bio_pulp.desc" : "A pile of biological material.", - "items.materials.original.alloys.steel" : "Steel ingot", - "items.materials.original.alloys.steel.desc" : "A steel ingot.", - "items.materials.original.alloys.titanium_weave" : "Titanium weave", - "items.materials.original.alloys.titanium_weave.desc" : "used where flexibility does not compromise strength", - "items.materials.original.alloys.void_steel" : "Void steel", - "items.materials.original.alloys.void_steel.desc" : "Steel that is very strong and increadably light absorbent", - "items.materials.original.alloys.chronotanium" : "Chronotanium ingot", - "items.materials.original.alloys.chronotanium.desc" : "A chronite-titianium alloy for strong and energetic applications", - "items.materials.original.alloys.neutronium_composite" : "Neutronium composite", - "items.materials.original.alloys.neutronium_composite.desc" : "A compostite of neutronium of", - "items.materials.original.alloys.superconductor" : "Superconductor", - "items.materials.original.alloys.superconductor.desc" : "A material with no resistance and expells all magnetic fields very usefull in high energy compnents", - "items.materials.original.circuits.basic" : "Basic Circuit", - "items.materials.original.circuits.basic.desc" : "Basic electronics used in simple electromecanical systems. Probably made in someone's shed. Rated for common Tier systems.", - "items.materials.original.circuits.advanced" : "Advanced Circuit", - "items.materials.original.circuits.advanced.desc" : "Advanced electronics used in electromecanical systems, featuring transistors for compact switching. Made with industrial Machines. Rated for uncommon Tier systems.", - "items.materials.original.circuits.processing_unit" : "Processing unit", - "items.materials.original.circuits.processing_unit.desc" : "Highly Advanced electronics used in demanding systems, featuring Integrated circuts replacing entire boards. Made with precision UV lithography machines. Rated for Rare Tier systems.", - "items.materials.original.circuits.quantum_processor" : "Quantum Processor", - "items.materials.original.circuits.quantum_processor.desc" : "Increadably electronics used in complex systems, featuring quantum cores for unparalleled parallel computation. Made with . Rated for Epic Tier systems.", - "items.materials.original.circuits.ai_core" : "Ai Core", - "items.materials.original.circuits.ai_core.desc" : "A semi sapient general intelligence, featuring advanced reasoning skills and simulated simulations, it will never truly know if it is in another simulation. Made under incudulus supervison and adhears to strict laws. Warrrenty void if not reset every terran standerd season.", - "items.materials.original.crystal.flux" : "Flux crystal", - "items.materials.original.crystal.flux.desc" : "A crystal whose properties are in constant flux. Commenly used in high power electrical aplications", - "items.materials.original.crystal.flux_core" : "Flux Core", - "items.materials.original.crystal.flux_core.desc" : "The crystal tamed can nhow be used in more demanding applications", - "items.materials.original.crystal.void" : "Void crystal", - "items.materials.original.crystal.void.desc" : "A crystal that seems to sap the very light from the room. Commenly used in armor and stealth applications", - "items.materials.original.crystal.dimentional" : "Dimentional crystal", - "items.materials.original.crystal.dimentional.desc" : "reality warps at its edges, imagine the possibilities", - "items.materials.original.crystal.neutronium" : "Neutronium", - "items.materials.original.crystal.neutronium.desc" : "A hyper dense piece of along dead star", - "items.materials.original.ingots.aluminum" : "Aluminum ingot", - "items.materials.original.ingots.aluminum.desc" : "An aluminum ingot.", - "items.materials.original.ingots.carbon" : "carbon ingot", - "items.materials.original.ingots.carbon.desc" : "A carbon ingot.", - "items.materials.original.ingots.chronite" : "Chronite Ingot", - "items.materials.original.ingots.chronite.desc" : "A chronite ingot.", - "items.materials.original.ingots.copper" : "Copper ingot", - "items.materials.original.ingots.copper.desc" : "A copper ingot.", - "items.materials.original.ingots.gold" : "Gold ingot", - "items.materials.original.ingots.gold.desc" : "A gold ingot.", - "items.materials.original.ingots.iron" : "Iron Ingot", - "items.materials.original.ingots.iron.desc" : "A iron ingot.", - "items.materials.original.ingots.titanium" : "Titanium ingot", - "items.materials.original.ingots.titanium.desc" : "A titanium ingot.", - "items.materials.original.ingots.tungsten" : "Tungsten ingot", - "items.materials.original.ingots.tungsten.desc" : "A tungsten ingot.", - "items.materials.original.ores.bauxite" : "Bauxite ore", - "items.materials.original.ores.bauxite.desc" : "A pile of bauxite ore.", - "items.materials.original.ores.chronite" : "Chronium ore", - "items.materials.original.ores.chronite.desc" : "A pile of chronium ore.", - "items.materials.original.ores.coal" : "Coal ore", - "items.materials.original.ores.coal.desc" : "A pile of coal ore.", - "items.materials.original.ores.copper" : "Copper ore", - "items.materials.original.ores.copper.desc" : "A pile of copper ore.", - "items.materials.original.ores.gold" : "Gold ore", - "items.materials.original.ores.gold.desc" : "A pile of gold ore.", - "items.materials.original.ores.ilunite" : "Ilunite ore", - "items.materials.original.ores.ilunite.desc" : "A pile of ilunite ore.", - "items.materials.original.ores.iron" : "Iron ore", - "items.materials.original.ores.iron.desc" : "A pile of iron ore.", - "items.materials.original.ores.wolframite" : "Wolframite ore", - "items.materials.original.ores.wolframite.desc" : "A pile of wolframite ore.", - "items.materials.original.plating.basic_ship_plating" : "Ship plating", - "items.materials.original.plating.basic_ship_plating.desc" : "Just basic ship plating.", -"_comment_Quests" : "", - "quests.category.original.story" : "Story", - "quests.category.original.daily" : "Daily", - "quests.category.original.weekly" : "Weekly", - "quests.category.original.monthly" : "Monthly", - "quests.category.original.seasonal" : "Seasons", - "quests.original.tutorial.starter_kit" : "Starter Kit: Neural Link", - "quests.tutorial.slay_boss.name" : "Trial by Fire", - "quests.tutorial.slay_boss.desc" : "Prove your combat capabilities by neutralizing the Tutorial Boss unit.", - "quests.tutorial.slay_boss.obj1" : "Defeat the Tutorial Boss", - "Welcome, Commander. Your neural link is active. Initial equipment has been authorized." : "", -"_comment_Recipes" : "", - "recipes.category.original.alloys" : "Alloys", - "recipes.category.original.circuits" : "Circuits", - "recipes.category.original.crystals" : "Crystals", - "recipes.category.original.food" : "Food", - "recipes.category.original.forging" : "Forging", - "recipes.category.original.hull_sections" : "Hull Sections", - "recipes.category.original.hulls" : "Hulls", - "recipes.category.original.organics" : "Organics", - "recipes.category.original.spacesuit_parts" : "Spacesuit Parts", -"_comment_Shop" : "", - "shop.category.original.consumables" : "Consumables", - "shop.category.original.defence" : "Defence", - "shop.category.original.featured" : "Featured", - "shop.category.original.materials" : "Materials", - "shop.category.original.premium" : "Premium", - "shop.category.original.ships" : "Ships", - "shop.category.original.weapons" : "Weapons", - "shop.category.original.personal.equipment" : "Personal Equipment", - "shop.category.original.ship.equipment" : "Ship Equipment", -"_comment_Skills" : "", - "skills.category.original.combat" : "Combat", - "skills.category.original.combat.weapon_effiency" : "Weapon Effiency", - "skills.category.original.combat.weapon_effiency.desc" : "Let's get those weapons better!", - "skills.category.original.crafting" : "Crafting", - "skills.category.original.crafting.blacksmithing" : "Blacksmithing", - "skills.category.original.crafting.blacksmithing.desc" : "To forge the basics.", - "skills.category.original.crafting.alloying" : "Alloying", - "skills.category.original.crafting.alloying.desc" : "Lets start alloy making.", - "skills.category.original.science" : "Science", - "skills.category.original.science.alien_technology" : "Alien Technology", - "skills.category.original.science.alien_technology.desc" : "Unknown Mysterious Tech", - "skills.category.original.science.biology_engineering" : "Biology Engineering", - "skills.category.original.science.biology_engineering.desc" : "Maybe we will unlock bio-tech?", - "skills.category.original.crafting.ship_manufacturing" : "Ship Manufacturing", - "skills.category.original.crafting.ship_manufacturing.desc" : "To build a ship to sail the stars", - "skills.category.original.crafting.high_energetics" : "High Energetics", - "skills.category.original.crafting.high_energetics.desc" : "Learn how to make and manage reactors and energy weapons", - "skills.category.original.combat.engine_effiency" : "", - "skills.category.original.combat.engine_effiency.desc" : "", - "skills.category.original.combat.shield_effiency" : "", - "skills.category.original.combat.shield_effiency.desc" : "", - "skills.category.original.combat.thruster_effiency" : "", - "skills.category.original.combat.thruster_effiency.desc" : "", - "skills.category.original.crafting.circuit_assembly" : "", - "skills.category.original.crafting.circuit_assembly.desc" : "", - "skills.category.original.crafting.forging" : "", - "skills.category.original.crafting.forging.desc" : "", -"_comment_Stats" : "", - "stats.category.original.attack.base" : "Attack", - "stats.category.original.attack.chance" : "Attack Chance", - "stats.category.original.attack.rate" : "Attack Rate", - "stats.category.original.defence.base" : "Defence", - "stats.category.original.defence.chance" : "Defence Chance", - "stats.category.original.defence.rate" : "Defence Rate", - "stats.category.original.health" : "Health", - "stats.category.original.penetration.base" : "Penetration", - "stats.category.original.penetration.chance" : "Penetration Chance", - "stats.category.original.penetration.rate" : "Penetration Rate", - "stats.category.original.reflect.base" : "Reflect", - "stats.category.original.reflect.chance" : "Reflection Chance", - "stats.category.original.reflect.rating" : "Reflection Rating", - "stats.category.original.resistance.base" : "Resistance", - "stats.category.original.resistance.cold" : "Cold Resistance", - "stats.category.original.resistance.gamma" : "Gamma Resistance", - "stats.category.original.resistance.heat" : "Heat Resistance", - "stats.category.original.resistance.ion" : "Ion Resistance", - "stats.category.original.resistance.physical" : "Physical Resistance", - "stats.category.original.resistance.plasma" : "Plasma Resistance", -"_comment_Tabs" : "", - "category.tabs.original.crafting" : "Crafting", - "category.tabs.original.dashboard" : "Dashboard", - "category.tabs.original.datapack" : "Debug Tab", - "category.tabs.original.dungeons" : "Dungeons", - "category.tabs.original.inventory" : "Inventory", - "category.tabs.original.shop" : "Shop", - "category.tabs.original.skills" : "Skills", - "category.tabs.original.quests" : "Quests", -"_comment_Rooms" : "", - "rooms.original.pirates.pirate_supply_bay" : "", - "rooms.original.pirates.pirate_supply_bay.desc" : "", - "rooms.original.tutorial.tutorial_boss_room.name" : "", - "rooms.original.tutorial.tutorial_boss_room.desc" : "", - "rooms.original.tutorial.tutorial_enemy_room.name" : "", - "rooms.original.tutorial.tutorial_enemy_room.desc" : "", - "rooms.original.tutorial.tutorial_loot_room.name" : "", - "rooms.original.tutorial.tutorial_loot_room.desc" : "", - "rooms.original.themed.broken_reactor" : "", - "rooms.original.themed.broken_reactor.desc" : "", - "rooms.original.themed.the_rat_one" : "", - "rooms.original.themed.the_rat_one.desc" : "", - "rooms.original.themed.cold" : "", - "rooms.original.themed.cold.desc" : "" -} \ No newline at end of file diff --git a/game-server/datapacks/original/assets/languages/fr_FR.json b/game-server/datapacks/original/assets/languages/fr_FR.json deleted file mode 100644 index 8787d3a..0000000 --- a/game-server/datapacks/original/assets/languages/fr_FR.json +++ /dev/null @@ -1,189 +0,0 @@ -{ -"_comment_Admin" : "", - "admin.category.original.hostile_list" : "Hostile List", - "admin.category.original.item_list" : "Item List", - "admin.category.original.player_list" : "Player List", - "admin.category.original.item_list.all" : "All", - "admin.category.original.item_list.alloys" : "Alloys", - "admin.category.original.item_list.circuits" : "Circuits", - "admin.category.original.item_list.customizables" : "Customizables", - "admin.category.original.item_list.ingots" : "Ingots", - "admin.category.original.item_list.maerials" : "Materials", - "admin.category.original.item_list.ores" : "Ores", - "admin.category.original.item_list.personal" : "Personal", - "admin.category.original.item_list.ships" : "Ships", - "admin.category.original.item_list.shields" : "Shields", - "admin.category.original.item_list.weapons" : "Weapons", - "admin.category.original.hostile_list.all" : "All", - "admin.category.original.hostile_list.ground" : "Ground Units", - "admin.category.original.hostile_list.ships" : "Ships", - "admin.category.original.player_list.all" : "All", - "admin.category.original.player_list.members" : "Members", - "admin.category.original.player_list.moderators" : "Moderators", - "admin.category.original.player_list.admins" : "Admins", -"_comment_Core_Systems" : "", - "core_systems.category.original.person.helmet" : "Personal Helmet", - "core_systems.category.original.person.suit" : "Personal Suit", - "core_systems.category.original.person.gloves" : "Personal Gloves", - "core_systems.category.original.person.boots" : "Personal Boots", - "core_systems.category.original.person.accessory_1" : "Personal Accessory 1", - "core_systems.category.original.person.accessory_2" : "Personal Accessory 2", - "core_systems.category.original.person.accessory_3" : "Personal Accessory 3", - "core_systems.category.original.person.accessory_4" : "Personal Accessory 4", - "core_systems.category.original.person.weapon" : "Personal Weapon", - "core_systems.category.original.ship.hull" : "Ship Hull", - "core_systems.category.original.ship.shields" : "Ship Shield", - "core_systems.category.original.ship.engines" : "Ship Engine", - "core_systems.category.original.ship.weapon_1" : "Ship Weapon 1", - "core_systems.category.original.ship.weapon_2" : "Ship Weapon 2", - "core_systems.category.original.ship.thruster_1" : "Ship Thruster 1", - "core_systems.category.original.ship.thruster_2" : "Ship Thruster 2", - "core_systems.category.original.ship.thruster_3" : "Ship Thruster 3", - "core_systems.category.original.ship.thruster_4" : "Ship Thruster 4", -"_comment_Dungeons": "", - "dungeons.original.pirate.pirates_outpost": "Avant-Poste Pirate", - "dungeons.original.pirate.pirates_outpost.desc": "Une station de ravitaillement caché appartenant au syndicat de la Marque Noire.", - "dungeons.original.tutorial.tutorial": "Tutoriel", - "dungeons.original.tutorial.tutorial.desc": "Un donjon unique.", -"_comment_Enemies": "", - "enemies.original.pirate.black_mark_heavy_cruiser": "Croiseur Lourd Marque Noire", - "enemies.original.pirate.raider_frigate": "Frégate d'Assaillant", - "enemies.original.pirate.snacher_clipper": "Snacher Clipper", - "enemies.original.pirate.corvid_corvette": "Corvid Corvette", - "enemies.original.pirate.scout_drone": "Drone d'espionnage", - "enemies.original.tutorial.tutorial_hostile": "Tutoriel hostile", - "enemies.original.tutorial.tutorial_boss_hostile": "Maître tutoriel", -"_comment_Equipment": "", - "items.materials.original.backpack_basic": "Sac à dos basique", - "items.materials.original.backpack_basic.desc": "Les bases des costumes.", - "items.materials.original.backpack_advanced": "Sac à dos Avancé", - "items.materials.original.backpack_advanced.desc": "Essayer un meilleur costume.", - "items.materials.original.backpack_elite": "Sac à dos d'élite", - "items.materials.original.backpack_elite.desc": "Maintenant, le meilleur que le monde ait à offrir.", -"_comment_Materials": "", - "items.materials.original.bio.bio_pulp": "Pulpe de biographie", - "items.materials.original.bio.bio_pulp.desc": "Une pile de matériel biologique.", - "items.materials.original.alloys.steel": "Lingot d'Acier", - "items.materials.original.alloys.steel.desc": "Un lingot d'acier.", - "items.materials.original.alloys.titanium_weave" : "titianium weave", - "items.materials.original.alloys.titanium_weave.desc" : "used where flexibility does not compromise strength", - "items.materials.original.alloys.neutronium_composite" :"Neutronium composite", - "items.materials.original.alloys.neutronium_composite.desc" :"A compostite of neutronium of", - "items.materials.original.alloys.superconductor" : "Superconductor", - "items.materials.original.alloys.superconductor.desc" : "A material with no resistance and expells all magnetic fields very usefull in high energy compnents", - "items.materials.original.alloys.chronotanium" :"Chronotanium", - "items.materials.original.alloys.chronotanium.desc" :"A chronite-titianium alloy for strong and energetic applications", - "items.materials.original.circuits.basic" : "Basic Circuit", - "items.materials.original.circuits.basic.desc" : "Basic electronics used in simple electromecanical systems. Probably made in someone's shed. Rated for common Tier systems.", - "items.materials.original.circuits.advanced" : "Advanced Circuit", - "items.materials.original.circuits.advanced.desc" : "Advanced electronics used in electromecanical systems, featuring transistors for compact switching. Made with industrial Machines. Rated for uncommon Tier systems.", - "items.materials.original.circuits.processing_unit" : "Processing unit", - "items.materials.original.circuits.processing_unit.desc" : "Highly Advanced electronics used in demanding systems, featuring Integrated circuts replacing entire boards. Made with precision UV lithography machines. Rated for Rare Tier systems.", - "items.materials.original.circuits.quantum_processor" : "Quantum Processor", - "items.materials.original.circuits.quantum_processor.desc" : "Increadably electronics used in complex systems, featuring quantum cores for unparalleled parallel computation. Made with . Rated for Epic Tier systems.", - "items.materials.original.circuits.ai_core" : "Ai Core", - "items.materials.original.circuits.ai_core.desc" : "A semi sapient general intelligence, featuring advanced reasoning skills and simulated simulations, it will never truly know if it is in another simulation. Made under incudulus supervison and adhears to strict laws. Warrrenty void if not reset every terran standerd season.", - "items.materials.original.crystal.flux" :"Flux crystal", - "items.materials.original.crystal.flux.desc" :"A crystal whose properties are in constant flux. Commenly used in high power electrical aplications", - "items.materials.original.crystal.flux_core" : "Flux Core", - "items.materials.original.crystal.flux_core.desc" : "The crystal tamed can nhow be used in more demanding applications", - "items.materials.original.crystal.void" :"Void crystal", - "items.materials.original.crystal.void.desc" :"A crystal that seems to sap the very light from the room. Commenly used in armor and stealth applications", - "items.materials.original.crystal.dimentional" : "Dimentonal crystal", - "items.materials.original.crystal.dimentional.desc" : "reality warps at its edges, imagine the possibilities", - "items.materials.original.crystal.neutronium" :"Neutronium", - "items.materials.original.crystal.neutronium.desc" :"A hyper dense piece of along dead star", - "items.materials.original.ingots.aluminum": "Lingot d'aluminium", - "items.materials.original.ingots.aluminum.desc": "Un lingot d'aluminium", - "items.materials.original.ingots.chronite": "Lingot chronite", - "items.materials.original.ingots.chronite.desc": "Un lingot de chronite.", - "items.materials.original.ingots.copper": "Lingot de cuivre", - "items.materials.original.ingots.copper.desc": "Un lingot de cuivre.", - "items.materials.original.ingots.gold": "Lingot d'or", - "items.materials.original.ingots.gold.desc": "Un lingot d'or.", - "items.materials.original.ingots.iron": "Lingot d'acier", - "items.materials.original.ingots.iron.desc": "Un lingot de fer.", - "items.materials.original.ingots.titanium": "Lingot de titane", - "items.materials.original.ingots.titanium.desc": "Un lingot de titane", - "items.materials.original.ingots.tungsten": "Lingot de tungstène", - "items.materials.original.ingots.tungsten.desc": "Un lingot de tungstène", - "items.materials.original.ores.bauxite": "Minerai de Bauxite", - "items.materials.original.ores.bauxite.desc": "Une pile de minerai de bauxite.", - "items.materials.original.ores.chronite": "Minerai de Chronium", - "items.materials.original.ores.chronite.desc": "Une pile de minerai de chronium.", - "items.materials.original.ores.coal": "Minerai de Charbon", - "items.materials.original.ores.coal.desc": "Une pile de minerai de charbon.", - "items.materials.original.ores.copper": "Minerai de cuivre", - "items.materials.original.ores.copper.desc": "Une pile de minerai de cuivre.", - "items.materials.original.ores.gold": "Minerai d'or", - "items.materials.original.ores.gold.desc": "Une pile de minerai d'or.", - "items.materials.original.ores.ilunite": "Minerai d'Ilménite", - "items.materials.original.ores.ilunite.desc": "Une pile de minerai d'ilménite.", - "items.materials.original.ores.iron": "Minerai de fer", - "items.materials.original.ores.iron.desc": "Une pile de minerai de fer.", - "items.materials.original.ores.wolframite": "Minerai de Louframite", - "items.materials.original.ores.wolframite.desc": "Une pile de minerai de louframite.", - "items.materials.original.plating.basic_ship_plating": "Plaque de Navire", - "items.materials.original.plating.basic_ship_plating.desc": "Juste l'assiette de base du navire.", -"_comment_Recipes": "", - "recipes.category.original.alloys": "Alliages", - "recipes.category.original.circuits": "Circuits", - "recipes.category.original.crystals" : "Crystals", - "recipes.category.original.food": "Nourriture", - "recipes.category.original.forging": "Forge", - "recipes.category.original.hull_sections": "Sections de coque", - "recipes.category.original.hulls": "Coques", - "recipes.category.original.organics": "Organismes", - "recipes.category.original.spacesuit_parts": "Pièces spatiales", -"_comment_Shop" : "", - "shop.category.original.consumables" : "Consumables", - "shop.category.original.defence" : "Defence", - "shop.category.original.featured" : "Featured", - "shop.category.original.materials" : "Materials", - "shop.category.original.premium" : "Premium", - "shop.category.original.ships" : "Ships", - "shop.category.original.weapons" : "Weapons", -"_comment_Skills": "", - "skills.category.original.combat": "Guerre", - "skills.category.original.combat.weapon_effiency": "Efficacité de l'arme", - "skills.category.original.combat.weapon_effiency.desc": "Améliorons ces armes !", - "skills.category.original.crafting": "Fabriquer", - "skills.category.original.crafting.blacksmithing": "Forge", - "skills.category.original.crafting.blacksmithing.desc": "Pour forger les bases.", - "skills.category.original.crafting.alloying": "Alliage", - "skills.category.original.crafting.alloying.desc": "Commençons à fabriquer des alliages.", - "skills.category.original.science": "Sciences", - "skills.category.original.science.alien_technology": "Technologies extraterrestres", - "skills.category.original.science.alien_technology.desc": "Technique Mystérieuse Inconnue", - "skills.category.original.science.biology_engineering": "Ingénierie de la Biologie", - "skills.category.original.science.biology_engineering.desc": "Peut-être débloquons-nous la biotechnologie ?", -"_comment_Stats": "", - "stats.category.original.attack.base": "Attaque", - "stats.category.original.attack.chance": "Chances d'Attaque", - "stats.category.original.attack.rating": "Classement d'Attaque", - "stats.category.original.defence.base": "Défense", - "stats.category.original.defence.chance": "Chance de défense", - "stats.category.original.defence.rating": "Classement de défense", - "stats.category.original.health": "Vie", - "stats.category.original.penetration.base": "Pénétration", - "stats.category.original.penetration.chance": "Chance de pénétration", - "stats.category.original.penetration.rating": "Évaluation de pénétration", - "stats.category.original.reflect.base": "Reflet", - "stats.category.original.reflect.chance": "Chance de réflexion", - "stats.category.original.reflect.rating": "Évaluation de réflexion", - "stats.category.original.resistance.base": "résistance", - "stats.category.original.resistance.cold": "Résistance au froid", - "stats.category.original.resistance.gamma": "Résistance au gamma", - "stats.category.original.resistance.heat": "Résistance à la chaleur", - "stats.category.original.resistance.ion": "Résistance à l'ion", - "stats.category.original.resistance.physical": "Résistance physique", - "stats.category.original.resistance.plasma": "Résistance au plasma", -"_comment_Tabs": "", - "category.tabs.original.admin_panel" : "Admin", - "category.tabs.original.crafting": "Fabriquer", - "category.tabs.original.dashboard": "Tableaux de bord", - "category.tabs.original.dungeons": "Les donjons", - "category.tabs.original.inventory": "Inventaire", - "category.tabs.original.shop": "Boutique", - "category.tabs.original.skills": "Possibilité" -} \ No newline at end of file diff --git a/game-server/datapacks/original/assets/languages/uk_UA.json b/game-server/datapacks/original/assets/languages/uk_UA.json deleted file mode 100644 index f5a23e0..0000000 --- a/game-server/datapacks/original/assets/languages/uk_UA.json +++ /dev/null @@ -1,189 +0,0 @@ -{ -"_comment_Admin" : "", - "admin.category.original.hostile_list" : "Hostile List", - "admin.category.original.item_list" : "Item List", - "admin.category.original.player_list" : "Player List", - "admin.category.original.item_list.all" : "All", - "admin.category.original.item_list.alloys" : "Alloys", - "admin.category.original.item_list.circuits" : "Circuits", - "admin.category.original.item_list.customizables" : "Customizables", - "admin.category.original.item_list.ingots" : "Ingots", - "admin.category.original.item_list.maerials" : "Materials", - "admin.category.original.item_list.ores" : "Ores", - "admin.category.original.item_list.personal" : "Personal", - "admin.category.original.item_list.ships" : "Ships", - "admin.category.original.item_list.shields" : "Shields", - "admin.category.original.item_list.weapons" : "Weapons", - "admin.category.original.hostile_list.all" : "All", - "admin.category.original.hostile_list.ground" : "Ground Units", - "admin.category.original.hostile_list.ships" : "Ships", - "admin.category.original.player_list.all" : "All", - "admin.category.original.player_list.members" : "Members", - "admin.category.original.player_list.moderators" : "Moderators", - "admin.category.original.player_list.admins" : "Admins", -"_comment_Core_Systems" : "", - "core_systems.category.original.person.helmet" : "Personal Helmet", - "core_systems.category.original.person.suit" : "Personal Suit", - "core_systems.category.original.person.gloves" : "Personal Gloves", - "core_systems.category.original.person.boots" : "Personal Boots", - "core_systems.category.original.person.accessory_1" : "Personal Accessory 1", - "core_systems.category.original.person.accessory_2" : "Personal Accessory 2", - "core_systems.category.original.person.accessory_3" : "Personal Accessory 3", - "core_systems.category.original.person.accessory_4" : "Personal Accessory 4", - "core_systems.category.original.person.weapon" : "Personal Weapon", - "core_systems.category.original.ship.hull" : "Ship Hull", - "core_systems.category.original.ship.shields" : "Ship Shield", - "core_systems.category.original.ship.engines" : "Ship Engine", - "core_systems.category.original.ship.weapon_1" : "Ship Weapon 1", - "core_systems.category.original.ship.weapon_2" : "Ship Weapon 2", - "core_systems.category.original.ship.thruster_1" : "Ship Thruster 1", - "core_systems.category.original.ship.thruster_2" : "Ship Thruster 2", - "core_systems.category.original.ship.thruster_3" : "Ship Thruster 3", - "core_systems.category.original.ship.thruster_4" : "Ship Thruster 4", -"_comment_Dungeons": "", - "dungeons.original.pirate.pirates_outpost": "Аванпост піратів", - "dungeons.original.pirate.pirates_outpost.desc": "Прихована станція постачання, що належить синдикату «Чорна Мітка».", - "dungeons.original.tutorial.tutorial": "Навчання", - "dungeons.original.tutorial.tutorial.desc": "Одноразове підземелля для освоєння азів.", -"_comment_Enemies": "", - "enemies.original.pirate.black_mark_heavy_cruiser": "Важкий крейсер «Чорної Мітки»", - "enemies.original.pirate.raider_frigate": "Фрегат рейдерів", - "enemies.original.pirate.snacher_clipper": "Snacher Clipper", - "enemies.original.pirate.corvid_corvette": "Corvid Corvette", - "enemies.original.pirate.scout_drone": "Дрон-розвідник", - "enemies.original.tutorial.tutorial_hostile": "Тренувальний ворог", - "enemies.original.tutorial.tutorial_boss_hostile": "Бос навчання", -"_comment_Equipment": "", - "items.materials.original.backpack_basic": "Базовий рюкзак", - "items.materials.original.backpack_basic.desc": "Основа вашого спорядження.", - "items.materials.original.backpack_advanced": "Покращений рюкзак", - "items.materials.original.backpack_advanced.desc": "Спроба використати більш досконалий костюм.", - "items.materials.original.backpack_elite": "Елітний рюкзак", - "items.materials.original.backpack_elite.desc": "Найкраще, що може запропонувати світ.", -"_comment_Materials": "", - "items.materials.original.bio.bio_pulp": "Біомаса", - "items.materials.original.bio.bio_pulp.desc": "Купа біологічного матеріалу.", - "items.materials.original.alloys.steel": "Сталевий злиток", - "items.materials.original.alloys.steel.desc": "Злиток високоміцної сталі.", - "items.materials.original.alloys.titanium_weave" : "titianium weave", - "items.materials.original.alloys.titanium_weave.desc" : "used where flexibility does not compromise strength", - "items.materials.original.alloys.neutronium_composite" :"Neutronium composite", - "items.materials.original.alloys.neutronium_composite.desc" :"A compostite of neutronium of", - "items.materials.original.alloys.superconductor" : "Superconductor", - "items.materials.original.alloys.superconductor.desc" : "A material with no resistance and expells all magnetic fields very usefull in high energy compnents", - "items.materials.original.alloys.chronotanium.desc" :"A chronite-titianium alloy for strong and energetic applications", - "items.materials.original.alloys.chronotanium" :"Chronotanium", - "items.materials.original.circuits.basic" : "Basic Circuit", - "items.materials.original.circuits.basic.desc" : "Basic electronics used in simple electromecanical systems. Probably made in someone's shed. Rated for common Tier systems.", - "items.materials.original.circuits.advanced" : "Advanced Circuit", - "items.materials.original.circuits.advanced.desc" : "Advanced electronics used in electromecanical systems, featuring transistors for compact switching. Made with industrial Machines. Rated for uncommon Tier systems.", - "items.materials.original.circuits.processing_unit" : "Processing unit", - "items.materials.original.circuits.processing_unit.desc" : "Highly Advanced electronics used in demanding systems, featuring Integrated circuts replacing entire boards. Made with precision UV lithography machines. Rated for Rare Tier systems.", - "items.materials.original.circuits.quantum_processor" : "Quantum Processor", - "items.materials.original.circuits.quantum_processor.desc" : "Increadably electronics used in complex systems, featuring quantum cores for unparalleled parallel computation. Made with . Rated for Epic Tier systems.", - "items.materials.original.circuits.ai_core" : "Ai Core", - "items.materials.original.circuits.ai_core.desc" : "A semi sapient general intelligence, featuring advanced reasoning skills and simulated simulations, it will never truly know if it is in another simulation. Made under incudulus supervison and adhears to strict laws. Warrrenty void if not reset every terran standerd season.", - "items.materials.original.crystal.flux" :"Flux crystal", - "items.materials.original.crystal.flux.desc" :"A crystal whose properties are in constant flux. Commenly used in high power electrical aplications", - "items.materials.original.crystal.flux_core" : "Flux Core", - "items.materials.original.crystal.flux_core.desc" : "The crystal tamed can nhow be used in more demanding applications", - "items.materials.original.crystal.void" :"Void crystal", - "items.materials.original.crystal.void.desc" :"A crystal that seems to sap the very light from the room. Commenly used in armor and stealth applications", - "items.materials.original.crystal.dimentional" : "Dimentonal crystal", - "items.materials.original.crystal.dimentional.desc" : "reality warps at its edges, imagine the possibilities", - "items.materials.original.crystal.neutronium" :"Neutronium", - "items.materials.original.crystal.neutronium.desc" :"A hyper dense piece of along dead star", - "items.materials.original.ingots.aluminum": "Алюмінієвий злиток", - "items.materials.original.ingots.aluminum.desc": "Легкий алюмінієвий злиток.", - "items.materials.original.ingots.chronite": "Хронітовий злиток", - "items.materials.original.ingots.chronite.desc": "Злиток рідкісного хроніту.", - "items.materials.original.ingots.copper": "Мідний злиток", - "items.materials.original.ingots.copper.desc": "Злиток чистої міді.", - "items.materials.original.ingots.gold": "Золотий злиток", - "items.materials.original.ingots.gold.desc": "Злиток щирого золота.", - "items.materials.original.ingots.iron": "Залізний злиток", - "items.materials.original.ingots.iron.desc": "Злиток переплавленого заліза.", - "items.materials.original.ingots.titanium": "Титановий злиток", - "items.materials.original.ingots.titanium.desc": "Надміцний титановий злиток.", - "items.materials.original.ingots.tungsten": "Вольфрамовий злиток", - "items.materials.original.ingots.tungsten.desc": "Тугоплавкий вольфрамовий злиток.", - "items.materials.original.ores.bauxite": "Бокситова руда", - "items.materials.original.ores.bauxite.desc": "Купа бокситової руди.", - "items.materials.original.ores.chronite": "Хромова руда", - "items.materials.original.ores.chronite.desc": "Купа хромової руди.", - "items.materials.original.ores.coal": "Вугілля", - "items.materials.original.ores.coal.desc": "Купа викопного вугілля.", - "items.materials.original.ores.copper": "Мідна руда", - "items.materials.original.ores.copper.desc": "Купа мідної руди.", - "items.materials.original.ores.gold": "Золота руда", - "items.materials.original.ores.gold.desc": "Купа золотоносної руди.", - "items.materials.original.ores.ilunite": "Ільменітова руда", - "items.materials.original.ores.ilunite.desc": "Купа ільменітової руди.", - "items.materials.original.ores.iron": "Залізна руда", - "items.materials.original.ores.iron.desc": "Купа залізної руди.", - "items.materials.original.ores.wolframite": "Вольфрамова руда", - "items.materials.original.ores.wolframite.desc": "Купа вольфрамової руди.", - "items.materials.original.plating.basic_ship_plating": "Корабельна обшивка", - "items.materials.original.plating.basic_ship_plating.desc": "Звичайна базова обшивка для суден.", -"_comment_Recipes": "", - "recipes.category.original.alloys": "Сплави", - "recipes.category.original.circuits": "Схеми", - "recipes.category.original.crystals" : "Crystals", - "recipes.category.original.food": "Їжа", - "recipes.category.original.forging": "Кування", - "recipes.category.original.hull_sections": "Секції корпусу", - "recipes.category.original.hulls": "Корпуси", - "recipes.category.original.organics": "Органіка", - "recipes.category.original.spacesuit_parts": "Деталі скафандра", -"_comment_Shop": "", - "shop.category.original.consumables" : "Consumables", - "shop.category.original.defence" : "Defence", - "shop.category.original.featured" : "Featured", - "shop.category.original.materials": "Матеріали", - "shop.category.original.premium" : "Premium", - "shop.category.original.ships" : "Ships", - "shop.category.original.weapons" : "Weapons", -"_comment_Skills": "", - "skills.category.original.combat": "Бойові навички", - "skills.category.original.combat.weapon_effiency": "Ефективність зброї", - "skills.category.original.combat.weapon_effiency.desc": "Час зробити наші гармати смертоноснішими!", - "skills.category.original.crafting": "Ремесло", - "skills.category.original.crafting.blacksmithing": "Ковальство", - "skills.category.original.crafting.blacksmithing.desc": "Виготовлення базових металевих виробів.", - "skills.category.original.crafting.alloying": "Створення сплавів", - "skills.category.original.crafting.alloying.desc": "Мистецтво поєднання металів.", - "skills.category.original.science": "Наука", - "skills.category.original.science.alien_technology": "Інопланетні технології", - "skills.category.original.science.alien_technology.desc": "Вивчення невідомих таємничих технологій.", - "skills.category.original.science.biology_engineering": "Біоінженерія", - "skills.category.original.science.biology_engineering.desc": "Можливо, нам вдасться розблокувати біотехнології?", -"_comment_Stats": "", - "stats.category.original.attack.base": "Атака", - "stats.category.original.attack.chance": "Шанс атаки", - "stats.category.original.attack.rating": "Рейтинг атаки", - "stats.category.original.defence.base": "Захист", - "stats.category.original.defence.chance": "Шанс захисту", - "stats.category.original.defence.rating": "Рейтинг захисту", - "stats.category.original.health": "Здоров'я", - "stats.category.original.penetration.base": "Пробиття", - "stats.category.original.penetration.chance": "Шанс пробиття", - "stats.category.original.penetration.rating": "Рейтинг пробиття", - "stats.category.original.reflect.base": "Відбиття", - "stats.category.original.reflect.chance": "Шанс відбиття", - "stats.category.original.reflect.rating": "Рейтинг відбиття", - "stats.category.original.resistance.base": "Опір", - "stats.category.original.resistance.cold": "Опір холоду", - "stats.category.original.resistance.gamma": "Гамма-резист", - "stats.category.original.resistance.heat": "Опір теплу", - "stats.category.original.resistance.ion": "Іонний опір", - "stats.category.original.resistance.physical": "Фізичний опір", - "stats.category.original.resistance.plasma": "Плазмовий опір", -"_comment_Tabs": "", - "category.tabs.original.admin_panel" : "Admin", - "category.tabs.original.crafting": "Крафт", - "category.tabs.original.dashboard": "Головна", - "category.tabs.original.dungeons": "Підземелля", - "category.tabs.original.inventory": "Інвентар", - "category.tabs.original.shop": "Магазин", - "category.tabs.original.skills": "Навички" -} diff --git a/game-server/datapacks/original/assets/textures/materials/alloy/chronotanium.png b/game-server/datapacks/original/assets/textures/materials/alloy/chronotanium.png deleted file mode 100644 index 8948848..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/alloy/chronotanium.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/alloy/neutroniumcomposite.png b/game-server/datapacks/original/assets/textures/materials/alloy/neutroniumcomposite.png deleted file mode 100644 index abc9ff2..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/alloy/neutroniumcomposite.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/alloy/steel.png b/game-server/datapacks/original/assets/textures/materials/alloy/steel.png deleted file mode 100644 index 831acf0..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/alloy/steel.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/alloy/superconductorflux.png b/game-server/datapacks/original/assets/textures/materials/alloy/superconductorflux.png deleted file mode 100644 index f55807d..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/alloy/superconductorflux.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/alloy/titaniumweave.png b/game-server/datapacks/original/assets/textures/materials/alloy/titaniumweave.png deleted file mode 100644 index 1f56f91..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/alloy/titaniumweave.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/alloy/voidsteel.png b/game-server/datapacks/original/assets/textures/materials/alloy/voidsteel.png deleted file mode 100644 index 7b590b5..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/alloy/voidsteel.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/circuits/advanced_circuit.png b/game-server/datapacks/original/assets/textures/materials/circuits/advanced_circuit.png deleted file mode 100644 index d006bee..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/circuits/advanced_circuit.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/circuits/ai_core.gif b/game-server/datapacks/original/assets/textures/materials/circuits/ai_core.gif deleted file mode 100644 index ce8fa0c..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/circuits/ai_core.gif and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/circuits/basic_circuit.png b/game-server/datapacks/original/assets/textures/materials/circuits/basic_circuit.png deleted file mode 100644 index 09baeaf..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/circuits/basic_circuit.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/circuits/processing_unit.png b/game-server/datapacks/original/assets/textures/materials/circuits/processing_unit.png deleted file mode 100644 index 4931435..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/circuits/processing_unit.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/circuits/quantum_processor.png b/game-server/datapacks/original/assets/textures/materials/circuits/quantum_processor.png deleted file mode 100644 index 1a8b199..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/circuits/quantum_processor.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/crystal/dimentionalcrystal.gif b/game-server/datapacks/original/assets/textures/materials/crystal/dimentionalcrystal.gif deleted file mode 100644 index 9dfcbb5..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/crystal/dimentionalcrystal.gif and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/crystal/fluxcore.gif b/game-server/datapacks/original/assets/textures/materials/crystal/fluxcore.gif deleted file mode 100644 index c858c7b..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/crystal/fluxcore.gif and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/crystal/fluxcrystal.png b/game-server/datapacks/original/assets/textures/materials/crystal/fluxcrystal.png deleted file mode 100644 index 4a4cf9a..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/crystal/fluxcrystal.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/crystal/neutronium.png b/game-server/datapacks/original/assets/textures/materials/crystal/neutronium.png deleted file mode 100644 index 0c10a14..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/crystal/neutronium.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/crystal/voidcrystal.png b/game-server/datapacks/original/assets/textures/materials/crystal/voidcrystal.png deleted file mode 100644 index 3b1b160..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/crystal/voidcrystal.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/aluminum.png b/game-server/datapacks/original/assets/textures/materials/ingot/aluminum.png deleted file mode 100644 index cdf5ec5..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/aluminum.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/carbon.png b/game-server/datapacks/original/assets/textures/materials/ingot/carbon.png deleted file mode 100644 index d4f0ada..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/carbon.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/chronite.png b/game-server/datapacks/original/assets/textures/materials/ingot/chronite.png deleted file mode 100644 index ef66bcc..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/chronite.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/copper.png b/game-server/datapacks/original/assets/textures/materials/ingot/copper.png deleted file mode 100644 index eddc09d..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/copper.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/gold.png b/game-server/datapacks/original/assets/textures/materials/ingot/gold.png deleted file mode 100644 index e0f71b6..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/gold.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/iron.png b/game-server/datapacks/original/assets/textures/materials/ingot/iron.png deleted file mode 100644 index 9e755db..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/iron.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/titanium.png b/game-server/datapacks/original/assets/textures/materials/ingot/titanium.png deleted file mode 100644 index 8ad579c..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/titanium.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ingot/tungsten.png b/game-server/datapacks/original/assets/textures/materials/ingot/tungsten.png deleted file mode 100644 index e42d6aa..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ingot/tungsten.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/bauxite.png b/game-server/datapacks/original/assets/textures/materials/ore/bauxite.png deleted file mode 100644 index fdd34ec..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/bauxite.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/chronite.png b/game-server/datapacks/original/assets/textures/materials/ore/chronite.png deleted file mode 100644 index a4c6125..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/chronite.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/coal.png b/game-server/datapacks/original/assets/textures/materials/ore/coal.png deleted file mode 100644 index 927911f..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/coal.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/copper.png b/game-server/datapacks/original/assets/textures/materials/ore/copper.png deleted file mode 100644 index e52b10b..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/copper.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/gold.png b/game-server/datapacks/original/assets/textures/materials/ore/gold.png deleted file mode 100644 index 6b5a20d..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/gold.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/ilmenite.png b/game-server/datapacks/original/assets/textures/materials/ore/ilmenite.png deleted file mode 100644 index c81b190..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/ilmenite.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/iron.png b/game-server/datapacks/original/assets/textures/materials/ore/iron.png deleted file mode 100644 index 7c851d5..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/iron.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/lead.png b/game-server/datapacks/original/assets/textures/materials/ore/lead.png deleted file mode 100644 index 52dddcf..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/lead.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/silicon.png b/game-server/datapacks/original/assets/textures/materials/ore/silicon.png deleted file mode 100644 index 767aeb8..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/silicon.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/uranium.png b/game-server/datapacks/original/assets/textures/materials/ore/uranium.png deleted file mode 100644 index 80105f1..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/uranium.png and /dev/null differ diff --git a/game-server/datapacks/original/assets/textures/materials/ore/wolframite.png b/game-server/datapacks/original/assets/textures/materials/ore/wolframite.png deleted file mode 100644 index 74ed6e8..0000000 Binary files a/game-server/datapacks/original/assets/textures/materials/ore/wolframite.png and /dev/null differ diff --git a/game-server/datapacks/original/data/dungeons/pirates/pirates_outpost.json b/game-server/datapacks/original/data/dungeons/pirates/pirates_outpost.json deleted file mode 100644 index 7c25433..0000000 --- a/game-server/datapacks/original/data/dungeons/pirates/pirates_outpost.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "dungeon": { - "id": "original:pirate/pirate_outpost", - "displayName": "dungeons.original.pirate.pirates_outpost", - "description": "dungeons.original.pirate.pirates_outpost.desc", - "meta": { - "energyCost": 10, - "repeatable": true, - "missionArea":"ground", - "raid": false, "_comment_1":"Future raid type picking, when you can have friends in the dugeon to help you.", - "missionAllowed": [], "_comment_2":"Future ground type picking, when ground classes are started" - }, - "rooms": [ - { "id": "original:pirate/pirate_patrol_room" }, - { "id": "original:pirate/pirate_supply_bay" }, - { "id": "original:pirate/pirate_ambush_zone" }, - { "id": "original:pirate/pirate_boss_bridge" } - ] - } -} diff --git a/game-server/datapacks/original/data/dungeons/themed/kaleidoscope.json b/game-server/datapacks/original/data/dungeons/themed/kaleidoscope.json deleted file mode 100644 index 5be6251..0000000 --- a/game-server/datapacks/original/data/dungeons/themed/kaleidoscope.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "dungeon": { - "id": "original:Kaleidoscope", - "displayName": "dungeons.original.Kaleidoscope", - "description": "dungeons.original.Kaleidoscope.desc", - "meta": { - "energyCost": 0, - "repeatable": true, - "raid": false - }, - "rooms": [ - { - "id": "original:themed/the_rat_one" - }, - { - "id": "original:themed/cold" - }, - { - "id": "original:themed/heat_anomaly" - }, - { - "id": "original:themed/broken_reactor" - } - ] - } -} - diff --git a/game-server/datapacks/original/data/dungeons/tutorial/tutorial.json b/game-server/datapacks/original/data/dungeons/tutorial/tutorial.json deleted file mode 100644 index 4e81896..0000000 --- a/game-server/datapacks/original/data/dungeons/tutorial/tutorial.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "dungeon": { - "id": "original:tutorial/tutorial_dungeon", - "displayName": "dungeons.original.tutorial.tutorial", - "description": "dungeons.original.tutorial.tutorial.desc", - "meta": { - "energyCost": 0, - "repeatable": false, - "missionArea": "space", - "raid": false, - "_comment_1": "Future raid type picking, when you can have friends in the dugeon to help you.", - "missionAllowed": [], - "_comment_2": "Future ship type picking, when ship classes are started" - }, - "rooms": [ - { "id": "original:tutorial/tutorial_enemy_room" }, - { "id": "original:tutorial/tutorial_loot_room" }, - { "id": "original:tutorial/tutorial_boss_room" } - ] - } -} diff --git a/game-server/datapacks/original/data/enemies/hostiles/anomalies/electrical_anomaly.json b/game-server/datapacks/original/data/enemies/hostiles/anomalies/electrical_anomaly.json deleted file mode 100644 index 5d80a0c..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/anomalies/electrical_anomaly.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "hostile": { - "id": "original:anomalies/electrical_anomaly", - "displayName": "enemies.original.anomalies.electrical_anomaly", - "description": "enemies.original.anomalies.electrical_anomaly.desc", - "texture": "mypack/assets/textures/enemies/pirates/raider_frigate.png", - "stats": { - "health": 150, - "defense": 2, - "critical.chance": 0.15, - "attack.rate": 1, - "damage.base": 0, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 6, - "damage.physical": 0, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": 0, - "resistance.gamma": 0, - "resistance.heat": 0, - "resistance.ion": 0.5, - "resistance.physical": -0.5, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:ore_copper", - "chance": 1, - "count": { - "min": 1, - "max": 3 - } - }, - { - "id": "original:ore_gold", - "chance": 0.7000000000000001, - "count": { - "min": 1, - "max": 1 - } - }, - { - "id": "original:crystal_flux", - "chance": 1, - "count": { - "min": 0, - "max": 2 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/anomalies/plasma_anomaly.json b/game-server/datapacks/original/data/enemies/hostiles/anomalies/plasma_anomaly.json deleted file mode 100644 index 846aa68..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/anomalies/plasma_anomaly.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "hostile": { - "id": "original:anomalies/plasma_anomaly", - "displayName": "enemies.original.anomalies.plasma_anomaly", - "description": "enemies.original.anomalies.plasma_anomaly.desc", - "texture": "mypack/assets/textures/enemies/pirates/raider_frigate.png", - "stats": { - "health": 150, - "defense": 2, - "critical.chance": 0.15, - "attack.rate": 1, - "damage.base": 0, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 0, - "damage.plasma": 6, - "resistance.base": 0, - "resistance.cold": -0.5, - "resistance.gamma": 0.25, - "resistance.heat": 0.25, - "resistance.ion": 0, - "resistance.physical": 0, - "resistance.plasma": 0.5 - }, - "loot": [ - { - "id": "original:crystal_flux", - "chance": 1, - "count": { - "min": 1, - "max": 2 - } - }, - { - "id": "original:crystal_flux_core", - "chance": 0.1, - "count": { - "min": 1, - "max": 1 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/creatures/fire_fiend.json b/game-server/datapacks/original/data/enemies/hostiles/creatures/fire_fiend.json deleted file mode 100644 index bb01bf0..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/creatures/fire_fiend.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "hostile": { - "id": "original:creatures/fire_fiend", - "displayName": "enemies.original.creatures.fire_fiend", - "description": "enemies.original.creatures.fire_fiend.desc", - "texture": "mypack/assets/textures/enemies/pirates/raider_frigate.png", - "stats": { - "health": 150, - "defense": 2, - "critical.chance": 0.15, - "attack.rate": 1, - "damage.base": 0, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 6, - "damage.ion": 0, - "damage.physical": 0, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": -0.5, - "resistance.gamma": 0, - "resistance.heat": 0.5, - "resistance.ion": 0, - "resistance.physical": 0, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:ore_coal", - "chance": 1, - "count": { - "min": 1, - "max": 10 - } - }, - { - "id": "original:ingot_carbon", - "chance": 0.25, - "count": { - "min": 1, - "max": 1 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/creatures/frost_fiend.json b/game-server/datapacks/original/data/enemies/hostiles/creatures/frost_fiend.json deleted file mode 100644 index bc98ddd..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/creatures/frost_fiend.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "hostile": { - "id": "original:creatures/frost_fiend", - "displayName": "enemies.original.creatures.frost_fiend", - "description": "enemies.original.creatures.frost_fiend.desc", - "texture": "mypack/assets/textures/enemies/pirates/raider_frigate.png", - "stats": { - "health": 150, - "defense": 2, - "critical.chance": 0.15, - "attack.rate": 1, - "damage.base": 0, - "damage.cold": 6, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 0, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": 0.5, - "resistance.gamma": 0, - "resistance.heat": -0.5, - "resistance.ion": 0, - "resistance.physical": 0, - "resistance.plasma": -0.25 - }, - "loot": [ - { - "id": "original:ore_copper", - "chance": 1, - "count": { - "min": 1, - "max": 3 - } - }, - { - "id": "original:ore_ilunite", - "chance": 0.5, - "count": { - "min": 1, - "max": 1 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/creatures/gamma_fiend.json b/game-server/datapacks/original/data/enemies/hostiles/creatures/gamma_fiend.json deleted file mode 100644 index c7f911d..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/creatures/gamma_fiend.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "hostile": { - "id": "original:creatures/gamma_fiend", - "displayName": "enemies.original.creatures.gamma_fiend", - "description": "enemies.original.creatures.gamma_fiend.desc", - "texture": "mypack/assets/textures/enemies/pirates/raider_frigate.png", - "stats": { - "health": 150, - "defense": 2, - "critical.chance": 0.15, - "attack.rate": 1, - "damage.base": 0, - "damage.cold": 0, - "damage.gamma": 6, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 0, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": 0, - "resistance.gamma": 0.5, - "resistance.heat": -0.25, - "resistance.ion": 0, - "resistance.physical": -0.25, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:crystal_void", - "chance": 0.75, - "count": { - "min": 1, - "max": 2 - } - }, - { - "id": "original:crystal_flux", - "chance": 0.25, - "count": { - "min": 1, - "max": 1 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/creatures/not_a_giant_rat.json b/game-server/datapacks/original/data/enemies/hostiles/creatures/not_a_giant_rat.json deleted file mode 100644 index e272d01..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/creatures/not_a_giant_rat.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "hostile": { - "id": "original:creatures/not_a_giant_rat", - "displayName": "enemies.original.creatures.not_a_giant_rat", - "description": "enemies.original.creatures.not_a_giant_rat.desc", - "texture": "mypack/assets/textures/enemies/pirates/raider_frigate.png", - "stats": { - "health": 150, - "defense": 2, - "critical.chance": 0.15, - "attack.rate": 1, - "damage.base": 0, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 6, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": 0, - "resistance.gamma": 0.25, - "resistance.heat": -0.5, - "resistance.ion": 0, - "resistance.physical": 0.5, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:ore_iron", - "chance": 1, - "count": { - "min": 0, - "max": 3 - } - }, - { - "id": "original:ore_copper", - "chance": 1, - "count": { - "min": 0, - "max": 3 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/pirates/black_mark_cruiser.json b/game-server/datapacks/original/data/enemies/hostiles/pirates/black_mark_cruiser.json deleted file mode 100644 index bc82500..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/pirates/black_mark_cruiser.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "hostile": { - "id": "original:pirates/black_mark_cruiser", - "displayName": "enemies.original.pirate.black_mark_heavy_cruiser", - "description": "enemies.original.pirate.black_mark_heavy_cruiser.desc", - "texture": "original/assets/textures/enemies/pirates/black_mark_cruiser.png", - "stats": { - "health": 850, - "defense": 5, - "critical.chance": 0.15, - "attack.rate": 0.6, - "damage.base": 8, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 10, - "damage.plasma": 0, - "resistance.base": 0.1, - "resistance.cold": 0, - "resistance.gamma": 0, - "resistance.heat": 0, - "resistance.ion": 0, - "resistance.physical": 0, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:circuit_basic", - "chance": 1, - "count": { - "min": 1, - "max": 2 - } - }, - { - "id": "original:ore_wolframite", - "chance": 0.1, - "count": { - "min": 1, - "max": 1 - } - }, - { - "id": "original:ore_ilunite", - "chance": 0.1, - "count": { - "min": 1, - "max": 1 - } - }, - { - "id": "original:ingot_gold", - "chance": 0.5, - "count": { - "min": 1, - "max": 2 - } - }, - { - "id": "original:ore_gold", - "chance": 1, - "count": { - "min": 1, - "max": 2 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/pirates/corvid_corvette.json b/game-server/datapacks/original/data/enemies/hostiles/pirates/corvid_corvette.json deleted file mode 100644 index beca6fd..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/pirates/corvid_corvette.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "hostile": { - "id": "original:pirates/corvid_corvette", - "displayName": "enemies.original.pirate.corvid_corvette", - "description": "enemies.original.pirate.corvid_corvette.desc", - "texture": "original/assets/textures/enemies/pirates/corvid_corvette.png", - "stats": { - "health": 100, - "defense": 1, - "critical.chance": 0.1, - "attack.rate": 1, - "damage.base": 2, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 0, - "damage.plasma": 6, - "resistance.base": 0.2, - "resistance.cold": 0, - "resistance.gamma": 0, - "resistance.heat": 0, - "resistance.ion": 0.1, - "resistance.physical": 0, - "resistance.plasma": 0.1 - }, - "loot": [], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/pirates/raider_frigate.json b/game-server/datapacks/original/data/enemies/hostiles/pirates/raider_frigate.json deleted file mode 100644 index eb3b069..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/pirates/raider_frigate.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "hostile": { - "id": "original:pirates/raider_frigate", - "displayName": "enemies.original.pirate.raider_frigate", - "description": "enemies.original.pirate.raider_frigate.desc", - "texture": "original/assets/textures/enemies/pirates/raider_frigate.png", - "stats": { - "health": 210, - "defense": 1.5, - "critical.chance": 0.2, - "attack.rate": 1, - "damage.base": 0, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 8, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": 0, - "resistance.gamma": 0, - "resistance.heat": 0, - "resistance.ion": 0, - "resistance.physical": 0, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:ore_iron", - "chance": 1, - "count": { - "min": 1, - "max": 2 - } - }, - { - "id": "original:circuit_basic", - "chance": 0.5, - "count": { - "min": 1, - "max": 1 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/pirates/scout_drone.json b/game-server/datapacks/original/data/enemies/hostiles/pirates/scout_drone.json deleted file mode 100644 index 98cc297..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/pirates/scout_drone.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "hostile": { - "id": "original:pirates/scout_drone", - "displayName": "enemies.original.pirate.scout_drone", - "description": "enemies.original.pirate.scout_drone.desc", - "texture": "original/assets/textures/enemies/pirates/scout_drone.png", - "stats": { - "health": 25, - "defense": 0, - "critical.chance": 0.1, - "attack.rate": 1, - "damage.base": 1, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 2, - "damage.physical": 0, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": 0, - "resistance.gamma": 0, - "resistance.heat": 0, - "resistance.ion": 0, - "resistance.physical": 0, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:ore_iron", - "chance": 0.5, - "count": { - "min": 1, - "max": 1 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/pirates/snacher_clipper.json b/game-server/datapacks/original/data/enemies/hostiles/pirates/snacher_clipper.json deleted file mode 100644 index f62c80d..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/pirates/snacher_clipper.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "hostile": { - "id": "original:pirates/snacher_clipper", - "displayName": "enemies.original.pirate.snacher_clipper", - "description": "enemies.original.pirate.snacher_clipper.desc", - "texture": "original/assets/textures/enemies/pirates/snacher_clipper.png", - "stats": { - "health": 100, - "defense": 5, - "critical.chance": 0.5, - "attack.rate": 3, - "damage.base": 0, - "damage.cold": 0, - "damage.gamma": 0, - "damage.heat": 0, - "damage.ion": 0, - "damage.physical": 5, - "damage.plasma": 0, - "resistance.base": 0, - "resistance.cold": 0, - "resistance.gamma": 0, - "resistance.heat": -0.1, - "resistance.ion": -0.25, - "resistance.physical": 0, - "resistance.plasma": 0 - }, - "loot": [ - { - "id": "original:Big_ship_thruster", - "chance": 0.25, - "count": { - "min": 1, - "max": 1 - } - }, - { - "id": "original:ore_copper", - "chance": 1, - "count": { - "min": 1, - "max": 2 - } - } - ], - "meta": {} - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/enemies/hostiles/tutorial/tutorial_boss_hostile.json b/game-server/datapacks/original/data/enemies/hostiles/tutorial/tutorial_boss_hostile.json deleted file mode 100644 index c19ec9c..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/tutorial/tutorial_boss_hostile.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "hostile": { - "id": "original:tutorial/tutorial_boss_hostile", - "displayName": "enemies.original.tutorial.tutorial_boss_hostile", - "stats": { - "health": 60, - "defense": 1.3, - "damage": 4, - "critical.chance": 0.3, - "attack.rate": 2 - }, - "loot": [ - { - "id": "original:ore_coal", - "chance": 1.0, - "count": 50 - }, - { - "id": "original:ore_copper", - "chance": 1.0, - "count": 20 - } - ], - "meta": {} - } -} diff --git a/game-server/datapacks/original/data/enemies/hostiles/tutorial/tutorial_hostile.json b/game-server/datapacks/original/data/enemies/hostiles/tutorial/tutorial_hostile.json deleted file mode 100644 index 911c1ef..0000000 --- a/game-server/datapacks/original/data/enemies/hostiles/tutorial/tutorial_hostile.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "hostile": { - "id": "original:tutorial/tutorial_hostile", - "displayName": "enemies.original.tutorial.tutorial_hostile", - "stats": { - "health": 30, - "defense": 0.0, - "damage": 2, - "critical.chance": 0.0, - "attack.rate": 1 - }, - "loot": [ - { - "id": "original:ingot_iron", - "chance": 0.8, - "count": { - "min": 1, - "max": 2 - } - } - ], - "meta": {} - } -} diff --git a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_ambush_zone.json b/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_ambush_zone.json deleted file mode 100644 index e020d8a..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_ambush_zone.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "rooms": { - "id": "original:pirate/pirate_ambush_zone", - "hostiles": [ - "original:pirates/scout_drone", - "original:pirates/raider_frigate", - "original:pirates/raider_frigate" - ], - "gainXp": 25, - "credits": 400 - } -} diff --git a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_boss_bridge.json b/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_boss_bridge.json deleted file mode 100644 index 2c9e294..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_boss_bridge.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rooms": { - "id": "original:pirate/pirate_boss_bridge", - "hostiles": ["original:pirates/black_mark_cruiser"], - "gainXp": 100, - "credits": 2500 - } -} diff --git a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_patrol_room.json b/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_patrol_room.json deleted file mode 100644 index cda0c2e..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_patrol_room.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "rooms": { - "id": "original:pirate/pirate_patrol_room", - "hostiles": [ - "original:pirates/scout_drone", - "original:pirates/scout_drone" - ], - "gainXp": 8, - "credits": 120 - } -} diff --git a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_supply_bay.json b/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_supply_bay.json deleted file mode 100644 index 6171c9e..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/pirates/pirate_supply_bay.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "rooms": { - "id": "original:pirate/pirate_supply_bay", - "hostiles": [], - "gainXp": 5, - "credits": 800, - "description": "You found a hidden cargo container filled with stolen tech." - } -} diff --git a/game-server/datapacks/original/data/enemies/rooms/themed/broken_reactor.json b/game-server/datapacks/original/data/enemies/rooms/themed/broken_reactor.json deleted file mode 100644 index bf576d2..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/themed/broken_reactor.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "rooms": { - "id": "original:themed/broken_reactor", - "displayName": "rooms.original.themed.broken_reactor", - "description": "rooms.original.themed.broken_reactor.desc", - "hostiles": [ - "original:anomalies/electrical_anomaly", - "original:creatures/gamma_fiend", - "original:anomalies/electrical_anomaly", - "original:creatures/gamma_fiend" - ], - "gainXp": 145, - "credits": 1000, - "loot": [ - { - "id": "original:rtg", - "chance": 0.66, - "count": { - "min": 1, - "max": 1 - } - }, - { - "id": "original:gen2_fission_reactor", - "chance": 0.33, - "count": { - "min": 1, - "max": 1 - } - }, - { - "id": "original:alloy_superconductor", - "chance": 0.2, - "count": { - "min": 1, - "max": 1 - } - } - ], - "meta": { - "isBossRoom": true - } - } -} - diff --git a/game-server/datapacks/original/data/enemies/rooms/themed/cold.json b/game-server/datapacks/original/data/enemies/rooms/themed/cold.json deleted file mode 100644 index abd14aa..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/themed/cold.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "rooms": { - "id": "original:themed/cold", - "displayName": "rooms.original.themed.cold", - "description": "rooms.original.themed.cold.desc", - "hostiles": [ - "original:creatures/frost_fiend", - "original:creatures/frost_fiend" - ], - "gainXp": 69, - "credits": 420, - "loot": [], - "meta": { - "isBossRoom": false - } - } -} - diff --git a/game-server/datapacks/original/data/enemies/rooms/themed/heat_anomaly.json b/game-server/datapacks/original/data/enemies/rooms/themed/heat_anomaly.json deleted file mode 100644 index 6178172..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/themed/heat_anomaly.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "rooms": { - "id": "original:themed/heat_anomaly", - "displayName": "rooms.original.themed.heat_anomaly", - "description": "rooms.original.themed.heat_anomaly.desc", - "hostiles": [ - "original:anomalies/plasma_anomaly", - "original:creatures/fire_fiend", - "original:creatures/fire_fiend" - ], - "gainXp": 25, - "credits": 400, - "loot": [], - "meta": { - "isBossRoom": false - } - } -} - diff --git a/game-server/datapacks/original/data/enemies/rooms/themed/the_rat_one.json b/game-server/datapacks/original/data/enemies/rooms/themed/the_rat_one.json deleted file mode 100644 index aa5ae94..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/themed/the_rat_one.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "rooms": { - "id": "original:themed/the_rat_one", - "displayName": "rooms.original.themed.the_rat_one", - "description": "rooms.original.themed.the_rat_one.desc", - "hostiles": [ - "original:creatures/not_a_giant_rat", - "original:creatures/not_a_giant_rat", - "original:creatures/not_a_giant_rat" - ], - "gainXp": 69, - "credits": 420, - "loot": [ - { - "id": "original:crystal_void", - "chance": 1, - "count": { - "min": 0, - "max": 1 - } - } - ], - "meta": { - "isBossRoom": false - } - } -} - diff --git a/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_boss.json b/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_boss.json deleted file mode 100644 index dcb1b2d..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_boss.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "rooms": { - "id": "original:tutorial/tutorial_boss_room", - "displayName": "rooms.original.tutorial.tutorial_boss_room.name", - "description": "rooms.original.tutorial.tutorial_boss_room.desc", - "hostiles": ["original:tutorial/tutorial_boss_hostile"], - "gainXp": 4, - "credits": 200, - "loot": [], - "meta": { - "isBossRoom": true - } - } -} diff --git a/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_enemy_room.json b/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_enemy_room.json deleted file mode 100644 index af8b759..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_enemy_room.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "rooms": { - "id": "original:tutorial/tutorial_enemy_room", - "displayName": "rooms.original.tutorial.tutorial_enemy_room.name", - "description": "rooms.original.tutorial.tutorial_enemy_room.desc", - "hostiles": [ - "original:tutorial/tutorial_hostile", - "original:tutorial/tutorial_hostile" - ], - "gainXp": 3, - "credits": 30, - "loot": [], - "meta": { - "isBossRoom": false - } - } -} diff --git a/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_loot_room.json b/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_loot_room.json deleted file mode 100644 index 6a7812b..0000000 --- a/game-server/datapacks/original/data/enemies/rooms/tutorial/tutorial_loot_room.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "rooms": { - "id": "original:tutorial/tutorial_loot_room", - "displayName": "rooms.original.tutorial.tutorial_loot_room.name", - "description": "rooms.original.tutorial.tutorial_loot_room.desc", - "hostiles": [], - "gainXp": 0, - "credits": 0, - "loot": [ - { - "id": "original:bio_pulp", - "chance": 1.0, - "count": 1 - } - ], - "meta": { - "isBossRoom": false - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/personal/accessory/basic_accessory.json b/game-server/datapacks/original/data/items/equipment/personal/accessory/basic_accessory.json deleted file mode 100644 index 4f4667b..0000000 --- a/game-server/datapacks/original/data/items/equipment/personal/accessory/basic_accessory.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "plating": { - "id": "original:basic_personal_accessory", - "displayName": "items.materials.original.personal.accessory.basic_personal_accessory", - "description": "items.materials.original.personal.accessory.basic_personal_accessory.desc", - "texture": "original/assets/textures/equipement/personal/accessory/basic_accessory.png", - "stats": { - "health": 2.25 - }, - "meta": { - "rarity": "common", - "equipmentSlot": [ - "original:personal_accessory_1", - "original:personal_accessory_2", - "original:personal_accessory_3", - "original:personal_accessory_4" - ], - "storeCategory": "original:personal_equipment", - "dungeon": "ground" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/personal/backpack/basic_backpack.json b/game-server/datapacks/original/data/items/equipment/personal/backpack/basic_backpack.json deleted file mode 100644 index ef64db6..0000000 --- a/game-server/datapacks/original/data/items/equipment/personal/backpack/basic_backpack.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "armour": { - "id": "original:basic_personal_backpack", - "displayName": "items.materials.original.personal.backpack.basic_personal_backpack", - "description": "items.materials.original.personal.backpack.basic_personal_backpack.desc", - "texture": "original/assets/textures/equipement/personal/backpacks/backpack_basic.png", - "stats": { - "health": 20, - "carry.capacity": 10, - "resistance.base": 0.125, - "defence.rating": 0.125 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:personal_backpack", - "storeCategory": "original:personal_equipment", - "dungeon": "ground" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/personal/backpack/personal_shield.json b/game-server/datapacks/original/data/items/equipment/personal/backpack/personal_shield.json deleted file mode 100644 index da8d3bb..0000000 --- a/game-server/datapacks/original/data/items/equipment/personal/backpack/personal_shield.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "plating": { - "id": "original:personal_shield", - "displayName": "items.materials.original.personal.backpack.personal_shield", - "description": "items.materials.original.personal.backpack.personal_shield.desc", - "texture": "original/assets/textures/equipement/personal/backpacks/personal_shield.png", - "stats": { - "health": 35, - "reflect.chance": 0.1, - "resistance.base": 0.1 - }, - "meta": { - "rarity": "uncommon", - "equipmentSlot": "original:personal_backpack", - "storeCategory": "original:personal_equipment", - "dungeon": "ground" - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/personal/boots/basic_boots.json b/game-server/datapacks/original/data/items/equipment/personal/boots/basic_boots.json deleted file mode 100644 index 5de8a6f..0000000 --- a/game-server/datapacks/original/data/items/equipment/personal/boots/basic_boots.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "plating": { - "id": "original:basic_personal_boots", - "displayName": "items.materials.original.personal.armor.boots.basic_personal_boots", - "description": "items.materials.original.personal.armor.boots.basic_personal_boots.desc", - "texture": "original/assets/textures/equipment/personal/armor/boots/basic_boots.png", - "stats": { - "health": 5, - "resistance.base": 0.1, - "defence.rating": 1.3, - "reflect.chance": 0.1 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:personal_boots", - "storeCategory": "original:personal", - "dungeon": "ground" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/personal/gloves/basic_gloves.json b/game-server/datapacks/original/data/items/equipment/personal/gloves/basic_gloves.json deleted file mode 100644 index 0ee305b..0000000 --- a/game-server/datapacks/original/data/items/equipment/personal/gloves/basic_gloves.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "plating": { - "id": "original:basic_personal_gloves", - "displayName": "items.materials.original.personal.armor.gloves.basic_personal_gloves", - "description": "items.materials.original.personal.armor.gloves.basic_personal_gloves.desc", - "texture": "original/assets/textures/equipment/personal/armor/gloves/basic_gloves.png", - "stats": { - "health": 5, - "resistance.base": 0.1, - "defence.rating": 1.3, - "reflect.chance": 0.1 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:personal_gloves", - "storeCategory": "original:personal", - "dungeon": "ground" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/personal/suit/basic_suit.json b/game-server/datapacks/original/data/items/equipment/personal/suit/basic_suit.json deleted file mode 100644 index f03afab..0000000 --- a/game-server/datapacks/original/data/items/equipment/personal/suit/basic_suit.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "plating": { - "id": "original:basic_personal_suit", - "displayName": "items.materials.original.personal.suit.basic_personal_suit", - "description": "items.materials.original.personal.suit.basic_personal_suit.desc", - "texture": "original/assets/textures/equipment/personal/armor/suit/basic_suit.png", - "stats": { - "health": 15, - "resistance.base": 0.125, - "defence.rating": 0.9, - "reflect.chance": 0.0125 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:personal_suit", - "storeCategory": "original:personal", - "dungeon": "ground" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/personal/weapons/basic_weapon.json b/game-server/datapacks/original/data/items/equipment/personal/weapons/basic_weapon.json deleted file mode 100644 index 4c8f569..0000000 --- a/game-server/datapacks/original/data/items/equipment/personal/weapons/basic_weapon.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "weapons": { - "id": "original:basic_personal_weapon", - "displayName": "items.materials.original.personal.weapon.basic_personal_weapon", - "description": "items.materials.original.personal.weapon.basic_personal_weapon.desc", - "texture": "original/assets/textures/equipment/personal/weapon/basic_weapon.png", - "stats": { - "attack.base": 20 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:personal_weapons", - "storeCategory": "original:personal", - "dungeon": "ground" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/engines/basic_ship_engines.json b/game-server/datapacks/original/data/items/equipment/ship/engines/basic_ship_engines.json deleted file mode 100644 index 4cecb74..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/engines/basic_ship_engines.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "plating": { - "id": "original:basic_ship_engines", - "displayName": "items.materials.original.ship.engine.basic_ship_engines", - "description": "items.materials.original.ship.engine.basic_ship_engines.desc", - "texture": "original/assets/textures/equipement/ship/engines/basic_ship_enignes.png", - "stats": { - "health": 20, - "power": 10 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:ship_engines", - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/engines/gen1_fission_reactor.json b/game-server/datapacks/original/data/items/equipment/ship/engines/gen1_fission_reactor.json deleted file mode 100644 index 0febc10..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/engines/gen1_fission_reactor.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "plating": { - "id": "original:gen1_fission_reactor", - "displayName": "items.materials.original.ship.engine.gen1_fission_reactor", - "description": "items.materials.original.ship.engine.gen1_fission_reactor.desc", - "texture": "original/assets/textures/equipement/ship/engines/gen1_fission_reactor.png", - "stats": { - "health": 30, - "power": 30 - - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:ship_engines", - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/engines/gen2_fission_reactor.json b/game-server/datapacks/original/data/items/equipment/ship/engines/gen2_fission_reactor.json deleted file mode 100644 index e6d40ca..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/engines/gen2_fission_reactor.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "plating": { - "id": "original:gen2_fission_reactor", - "displayName": "items.materials.original.ship.engine.gen2_fission_reactor", - "description": "items.materials.original.ship.engine.gen2_fission_reactor.desc", - "texture": "original/assets/textures/equipement/ship/engines/gen2_fission_reactor.png", - "stats": { - "health": 30, - "power": 50, - "defence.rating": -0.1, - "resistance.base": -0.1 - }, - "meta": { - "rarity": "uncommon", - "equipmentSlot": "original:ship_engines", - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/engines/gen3_fission_reactor.json b/game-server/datapacks/original/data/items/equipment/ship/engines/gen3_fission_reactor.json deleted file mode 100644 index 682b58d..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/engines/gen3_fission_reactor.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "plating": { - "id": "original:gen3_fission_reactor", - "displayName": "items.materials.original.ship.engine.gen3_fission_reactor", - "description": "items.materials.original.ship.engine.gen3_fission_reactor.desc", - "texture": "original/assets/textures/equipement/ship/engines/gen3_fission_reactor.png", - "stats": { - "health": 40, - "power": 60, - "defence.rating": 0.1, - "resistance.base": 0.05 - }, - "meta": { - "rarity": "rare", - "equipmentSlot": "original:ship_engines", - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/engines/rtg.json b/game-server/datapacks/original/data/items/equipment/ship/engines/rtg.json deleted file mode 100644 index 58e2f11..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/engines/rtg.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "plating": { - "id": "original:rtg", - "displayName": "items.materials.original.ship.engine.rtg", - "description": "items.materials.original.ship.engine.rtg.desc", - "texture": "original/assets/textures/equipement/ship/engines/rtg.png", - "stats": { - "health": 40, - "power": 10, - "defence.rating": 0.05, - "resistance.base": 0.2 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:ship_engines", - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/hulls/basic_plating.json b/game-server/datapacks/original/data/items/equipment/ship/hulls/basic_plating.json deleted file mode 100644 index f4c41c8..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/hulls/basic_plating.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "plating": { - "id": "original:basic_plating", - "displayName": "items.materials.original.ship.plating.basic_plating", - "description": "items.materials.original.ship.plating.basic_plating.desc", - "texture": "original/assets/textures/equipment/ship/hull/basic_plating.png", - "stats": { - "defence.base": 3, - "health": 10, - "reflect.chance": 0, - "resistance.base": 0.2 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:ship_hull", - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/hulls/heavy_plating.json b/game-server/datapacks/original/data/items/equipment/ship/hulls/heavy_plating.json deleted file mode 100644 index e0c1081..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/hulls/heavy_plating.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "plating": { - "id": "original:heavy_plating", - "displayName": "items.materials.original.ship.plating.heavy_plating", - "description": "items.materials.original.ship.plating.heavy_plating.desc", - "texture": "original/assets/textures/equipment/ship/hull/heavy_plating.png", - "stats": { - "defence.base": 6, - "defence.chance": 0.1, - "health": 30, - "resistance.base": 0.3, - "resistance.ion": 0.2 - }, - "meta": { - "rarity": "uncommon", - "equipmentSlot": "original:ship_hull", - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/hulls/reflective_plating.json b/game-server/datapacks/original/data/items/equipment/ship/hulls/reflective_plating.json deleted file mode 100644 index afdc1d1..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/hulls/reflective_plating.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "plating": { - "id": "original:reflective_plating", - "displayName": "items.materials.original.ship.plating.reflective_plating", - "description": "items.materials.original.ship.plating.reflective_plating.desc", - "texture": "original/assets/textures/equipment/ship/hull/reflective_plating.png", - "stats": { - "defence.base": 6, - "defence.chance": 0.1, - "health": 30, - "reflect.base": 1, - "reflect.chance": 0.25, - "reflect.rate": 0.25, - "resistance.base": 0.2 - }, - "meta": { - "rarity": "rare", - "equipmentSlot": "original:ship_hull", - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/hulls/resistive_plating.json b/game-server/datapacks/original/data/items/equipment/ship/hulls/resistive_plating.json deleted file mode 100644 index e33ea03..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/hulls/resistive_plating.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "plating": { - "id": "original:resistive_plating", - "displayName": "items.materials.original.ship.plating.heavy_plating", - "description": "items.materials.original.ship.plating.heavy_plating.desc", - "texture": "original/assets/textures/equipment/ship/hull/resistive_plating.png", - "stats": { - "defence.base": 6, - "health": 30, - "resistance.base": 0.3, - "resistance.cold": 0.3, - "resistance.gamma": 0.3, - "resistance.heat": 0.3, - "resistance.ion": 0.5, - "resistance.physical": 0.3, - "resistance.plasma": 0.3 - }, - "meta": { - "rarity": "rare", - "equipmentSlot": "original:ship_hull", - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/shields/basic_shield.json b/game-server/datapacks/original/data/items/equipment/ship/shields/basic_shield.json deleted file mode 100644 index 065d0ac..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/shields/basic_shield.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "plating": { - "id": "original:basic_shield", - "displayName": "items.materials.original.ship.shields.basic_shield", - "description": "items.materials.original.ship.shields.basic_shield.desc", - "texture": "original/assets/textures/equipment/ship/shields/basic_shield.png", - "stats": { - "defence.rate": 2, - "health": 25, - "reflect.base": 1, - "reflect.chance": 0.1, - "reflect.rate": 0.5, - "resistance.base": 0, - "resistance.ion": -0.5 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "original:ship_shields", - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/shields/heavy_shield.json b/game-server/datapacks/original/data/items/equipment/ship/shields/heavy_shield.json deleted file mode 100644 index 3d17df8..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/shields/heavy_shield.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "plating": { - "id": "original:heavy_shield", - "displayName": "items.materials.original.ship.shields.heavy_shield", - "description": "items.materials.original.ship.shields.heavy_shield.desc", - "texture": "original/assets/textures/equipment/ship/shields/heavy_shield.png", - "stats": { - "defence.rate": 5, - "health": 75, - "reflect.base": 1, - "reflect.chance": 0.15, - "reflect.rate": 1, - "resistance.base": 0.1, - "resistance.ion": -0.5 - }, - "meta": { - "rarity": "uncommon", - "equipmentSlot": "original:ship_shields", - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/shields/reflecter_shield.json b/game-server/datapacks/original/data/items/equipment/ship/shields/reflecter_shield.json deleted file mode 100644 index 49c3fbc..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/shields/reflecter_shield.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "plating": { - "id": "original:reflecter_shield", - "displayName": "items.materials.original.ship.shields.reflecter_shield", - "description": "items.materials.original.ship.shields.reflecter_shield.desc", - "texture": "original/assets/textures/equipment/ship/shields/reflecter_shield.png", - "stats": { - "defence.chance": 0.15, - "defence.rate": 4, - "health": 70, - "reflect.base": 3, - "reflect.chance": 0.5, - "reflect.rate": 1.5, - "resistance.base": 0.1, - "resistance.ion": -0.5 - }, - "meta": { - "rarity": "rare", - "equipmentSlot": "original:ship_shields", - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/thrusters/basic_ship_thrusters.json b/game-server/datapacks/original/data/items/equipment/ship/thrusters/basic_ship_thrusters.json deleted file mode 100644 index 6b4094e..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/thrusters/basic_ship_thrusters.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "plating": { - "id": "original:basic_ship_thruster", - "displayName": "items.materials.original.ship.thruster.basic_ship_thruster", - "description": "items.materials.original.ship.thruster.basic_ship_thruster.desc", - "texture": "original/assets/textures/equipement/ship/thrusters/basic_ship_thruster.png", - "stats": { - "health": 15, - "defence.rating": 0.125, - "speed": 12.5 - }, - "meta": { - "rarity": "common", - "equipmentSlot": [ - "original:ship_thruster_1", - "original:ship_thruster_2", - "original:ship_thruster_3", - "original:ship_thruster_4" - ], - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/thrusters/big_ship_thruster.json b/game-server/datapacks/original/data/items/equipment/ship/thrusters/big_ship_thruster.json deleted file mode 100644 index a44b106..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/thrusters/big_ship_thruster.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "plating": { - "id": "original:Big_ship_thruster", - "displayName": "items.materials.original.ship.thruster.big_ship_thruster", - "description": "items.materials.original.ship.thruster.big_ship_thruster.desc", - "texture": "original/assets/textures/equipment/ship/thruster/Big_ship_thruster.png", - "stats": { - "defence.chance": 0.1, - "health": 35 - }, - "meta": { - "rarity": "uncommon", - "equipmentSlot": [ - "original:ship_thruster_1", - "original:ship_thruster_2", - "original:ship_thruster_3", - "original:ship_thruster_4" - ], - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/thrusters/big_ship_thrusters.json b/game-server/datapacks/original/data/items/equipment/ship/thrusters/big_ship_thrusters.json deleted file mode 100644 index 35a37c3..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/thrusters/big_ship_thrusters.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "plating": { - "id": "original:Big_ship_thruster", - "displayName": "items.materials.original.ship.thruster.big_ship_thruster", - "description": "items.materials.original.ship.thruster.big_ship_thruster.desc", - "texture": "original/assets/textures/equipement/ship/thrusters/big_ship_thruster.png", - "stats": { - "health": 35, - "defence.rating": 0.1, - "speed": 22.5 - }, - "meta": { - "rarity": "uncommon", - "equipmentSlot": [ - "original:ship_thruster_1", - "original:ship_thruster_2" - ], - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/equipment/ship/weapons/basic_ship_weapon.json b/game-server/datapacks/original/data/items/equipment/ship/weapons/basic_ship_weapon.json deleted file mode 100644 index 69f56fe..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/weapons/basic_ship_weapon.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "plating": { - "id": "original:basic_ship_weapon", - "displayName": "items.materials.original.ship.weapon.basic_ship_weapon", - "description": "items.materials.original.ship.weapon.basic_ship_weapon.desc", - "texture": "original/assets/textures/equipement/ship/weapon/basic_ship_weapon.png", - "stats": { - "attack.base": 7.5, - "health": 5 - }, - "meta": { - "rarity": "common", - "equipmentSlot": [ - "original:ship_weapon_1", - "original:ship_weapon_2" - ], - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/weapons/serpent_missiles.json b/game-server/datapacks/original/data/items/equipment/ship/weapons/serpent_missiles.json deleted file mode 100644 index bd31817..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/weapons/serpent_missiles.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "plating": { - "id": "original:serpent_missiles", - "displayName": "items.materials.original.ship.weapon.serpent_missiles", - "description": "items.materials.original.ship.weapon.serpent_missiles.desc", - "texture": "original/assets/textures/equipement/ship/weapon/serpent_missiles.png", - "stats": { - "attack.base": 10, - "health": 5, - "resistance.base": -0.1 - }, - "meta": { - "rarity": "uncommon", - "equipmentSlot": [ - "original:ship_weapon_1", - "original:ship_weapon_2" - ], - "storeCategory": "original:ship_equipment", - "dungeon": "space", - "storePrice": 100, - "storeSellValue": 25, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/equipment/ship/weapons/unstable_partical_cannon.json b/game-server/datapacks/original/data/items/equipment/ship/weapons/unstable_partical_cannon.json deleted file mode 100644 index c659b11..0000000 --- a/game-server/datapacks/original/data/items/equipment/ship/weapons/unstable_partical_cannon.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "plating": { - "id": "original:unstable_partical_cannon", - "displayName": "items.materials.original.ship.weapon.unstable_partical_cannon", - "description": "items.materials.original.ship.weapon.unstable_partical_cannon.desc", - "texture": "original/assets/textures/equipement/ship/weapon/unstable_partical_cannon.png", - "stats": { - "attack.base": 30, - "health": 5, - "defence.rating": -0.20, - "resistance.base": -0.20 - }, - "meta": { - "rarity": "rare", - "equipmentSlot": [ - "original:ship_weapon_1", - "original:ship_weapon_2" - ], - "storeCategory": "original:ship_equipment", - "dungeon": "space" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/alloys/chronotanium.json b/game-server/datapacks/original/data/items/materials/alloys/chronotanium.json deleted file mode 100644 index ac0b9f4..0000000 --- a/game-server/datapacks/original/data/items/materials/alloys/chronotanium.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:alloy_chronotanium", - "texture": "original/assets/textures/materials/alloy/chronotanium.png", - "displayName": "items.materials.original.alloys.chronotanium", - "description": "items.materials.original.alloys.chronotanium.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/alloys/neutronium_composite.json b/game-server/datapacks/original/data/items/materials/alloys/neutronium_composite.json deleted file mode 100644 index 0a5369c..0000000 --- a/game-server/datapacks/original/data/items/materials/alloys/neutronium_composite.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:alloy_neutronium_composite", - "texture": "original/assets/textures/materials/alloy/neutroniumcomposite.png", - "displayName": "items.materials.original.alloys.neutronium_composite", - "description": "items.materials.original.alloys.neutronium_composite.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/alloys/steel.json b/game-server/datapacks/original/data/items/materials/alloys/steel.json deleted file mode 100644 index 3dc0a59..0000000 --- a/game-server/datapacks/original/data/items/materials/alloys/steel.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:alloy_steel", - "texture": "original/assets/textures/materials/alloy/steel.png", - "displayName": "items.materials.original.alloys.steel", - "description": "items.materials.original.alloys.steel.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/alloys/superconductor.json b/game-server/datapacks/original/data/items/materials/alloys/superconductor.json deleted file mode 100644 index cf0fa3a..0000000 --- a/game-server/datapacks/original/data/items/materials/alloys/superconductor.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:alloy_superconductor", - "texture": "original/assets/textures/materials/alloy/superconductorflux.png", - "displayName": "items.materials.original.alloys.superconductor", - "description": "items.materials.original.alloys.superconductor.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/alloys/titanium_weave.json b/game-server/datapacks/original/data/items/materials/alloys/titanium_weave.json deleted file mode 100644 index 7584d8f..0000000 --- a/game-server/datapacks/original/data/items/materials/alloys/titanium_weave.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:alloy_titanium_weave", - "texture": "original/assets/textures/materials/alloy/titaniumweave.png", - "displayName": "items.materials.original.alloys.titanium_weave", - "description": "items.materials.original.alloys.titanium_weave.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/alloys/void_steel.json b/game-server/datapacks/original/data/items/materials/alloys/void_steel.json deleted file mode 100644 index b277384..0000000 --- a/game-server/datapacks/original/data/items/materials/alloys/void_steel.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:alloy_void_steel", - "texture": "original/assets/textures/materials/alloy/voidsteel.png", - "displayName": "items.materials.original.alloys.void_steel", - "description": "items.materials.original.alloys.void_steel.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/bio/bio_pulp.json b/game-server/datapacks/original/data/items/materials/bio/bio_pulp.json deleted file mode 100644 index 28759d7..0000000 --- a/game-server/datapacks/original/data/items/materials/bio/bio_pulp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:bio_pulp", - "texture": "original/assets/textures/materials/bio/bio_pulp.png", - "displayName": "items.materials.original.bio.bio_pulp", - "description": "items.materials.original.bio.bio_pulp.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/circuits/advanced_circuit.json b/game-server/datapacks/original/data/items/materials/circuits/advanced_circuit.json deleted file mode 100644 index 5209ec7..0000000 --- a/game-server/datapacks/original/data/items/materials/circuits/advanced_circuit.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "materials": { - "id": "original:circuit_advanced", - "texture": "original/assets/textures/materials/circuits/advanced_circuit.png", - "displayName": "items.materials.original.circuits.advanced", - "description": "items.materials.original.circuits.advanced.desc", - "meta": { - "storeCategory": "original:materials", - "storePrice": 50, - "storeSellValue": 10, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/materials/circuits/ai_core.json b/game-server/datapacks/original/data/items/materials/circuits/ai_core.json deleted file mode 100644 index 1010f84..0000000 --- a/game-server/datapacks/original/data/items/materials/circuits/ai_core.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "materials": { - "id": "original:circuit_ai_core", - "texture": "original/assets/textures/materials/circuits/ai_core.gif", - "displayName": "items.materials.original.circuits.ai_core", - "description": "items.materials.original.circuits.ai_core.desc", - "meta": { - "storeCategory": "original:materials", - "storePrice": 50, - "storeSellValue": 10, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/materials/circuits/basic_circuit.json b/game-server/datapacks/original/data/items/materials/circuits/basic_circuit.json deleted file mode 100644 index a03d810..0000000 --- a/game-server/datapacks/original/data/items/materials/circuits/basic_circuit.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "materials": { - "id": "original:circuit_basic", - "texture": "original/assets/textures/materials/circuits/basic_circuit.png", - "displayName": "items.materials.original.circuits.basic", - "description": "items.materials.original.circuits.basic.desc", - "meta": { - "storeCategory": "original:materials", - "storePrice": 50, - "storeSellValue": 10, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/materials/circuits/processing_unit.json b/game-server/datapacks/original/data/items/materials/circuits/processing_unit.json deleted file mode 100644 index d4ab629..0000000 --- a/game-server/datapacks/original/data/items/materials/circuits/processing_unit.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "materials": { - "id": "original:circuit_processing_unit", - "texture": "original/assets/textures/materials/circuits/processing_unit.png", - "displayName": "items.materials.original.circuits.processing_unit", - "description": "items.materials.original.circuits.processing_unit.desc", - "meta": { - "storeCategory": "original:materials", - "storePrice": 50, - "storeSellValue": 10, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/materials/circuits/quantum_processor.json b/game-server/datapacks/original/data/items/materials/circuits/quantum_processor.json deleted file mode 100644 index a3e7377..0000000 --- a/game-server/datapacks/original/data/items/materials/circuits/quantum_processor.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "materials": { - "id": "original:circuit_quantum_processor", - "texture": "original/assets/textures/materials/circuits/quantum_processor.png", - "displayName": "items.materials.original.circuits.quantum_processor", - "description": "items.materials.original.circuits.quantum_processor.desc", - "meta": { - "storeCategory": "original:materials", - "storePrice": 50, - "storeSellValue": 10, - "storeShowWeight": 10, - "storeFeaturedDiscountPercentage": 0, - "storeFeaturedShowWeight": 10 - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/items/materials/crystals/core_flux.json b/game-server/datapacks/original/data/items/materials/crystals/core_flux.json deleted file mode 100644 index b3b2cf2..0000000 --- a/game-server/datapacks/original/data/items/materials/crystals/core_flux.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:crystal_flux_core", - "texture": "original/assets/textures/materials/crystal/fluxcore.gif", - "displayName": "items.materials.original.crystal.flux_core", - "description": "items.materials.original.crystal.flux_core.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/crystals/crystal_dimentional.json b/game-server/datapacks/original/data/items/materials/crystals/crystal_dimentional.json deleted file mode 100644 index a0b84eb..0000000 --- a/game-server/datapacks/original/data/items/materials/crystals/crystal_dimentional.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:crystal_dimentional", - "texture": "original/assets/textures/materials/crystal/dimentionalcrystal.gif", - "displayName": "items.materials.original.crystal.dimentional", - "description": "items.materials.original.crystal.dimentional.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/crystals/crystal_flux.json b/game-server/datapacks/original/data/items/materials/crystals/crystal_flux.json deleted file mode 100644 index 504f1b2..0000000 --- a/game-server/datapacks/original/data/items/materials/crystals/crystal_flux.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:crystal_flux", - "texture": "original/assets/textures/materials/crystal/fluxcrystal.png", - "displayName": "items.materials.original.crystal.flux", - "description": "items.materials.original.crystal.flux.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/crystals/crystal_void.json b/game-server/datapacks/original/data/items/materials/crystals/crystal_void.json deleted file mode 100644 index 782553d..0000000 --- a/game-server/datapacks/original/data/items/materials/crystals/crystal_void.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:crystal_void", - "texture": "original/assets/textures/materials/crystal/voidcrystal.png", - "displayName": "items.materials.original.crystal.void", - "description": "items.materials.original.crystal.void.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/crystals/neutronium.json b/game-server/datapacks/original/data/items/materials/crystals/neutronium.json deleted file mode 100644 index 4b51eb2..0000000 --- a/game-server/datapacks/original/data/items/materials/crystals/neutronium.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:crystal_neutronium", - "texture": "original/assets/textures/materials/crystal/neutronium.png", - "displayName": "items.materials.original.crystal.neutronium", - "description": "items.materials.original.crystal.neutronium.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/aluminum.json b/game-server/datapacks/original/data/items/materials/ingots/aluminum.json deleted file mode 100644 index c8cbcce..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/aluminum.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_aluminum", - "texture": "original/assets/textures/materials/ingot/aluminum.png", - "displayName": "items.materials.original.ingots.aluminum", - "description": "items.materials.original.ingots.aluminum.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/carbon.json b/game-server/datapacks/original/data/items/materials/ingots/carbon.json deleted file mode 100644 index 26cc59e..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/carbon.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_carbon", - "texture": "original/assets/textures/materials/ingot/carbon.png", - "displayName": "items.materials.original.ingots.carbon", - "description": "items.materials.original.ingots.carbon.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/chronite.json b/game-server/datapacks/original/data/items/materials/ingots/chronite.json deleted file mode 100644 index ae151f7..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/chronite.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_chronite", - "texture": "original/assets/textures/materials/ingot/chronite.png", - "displayName": "items.materials.original.ingots.chronite", - "description": "items.materials.original.ingots.chronite.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/copper.json b/game-server/datapacks/original/data/items/materials/ingots/copper.json deleted file mode 100644 index ecd22ad..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/copper.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_copper", - "texture": "original/assets/textures/materials/ingot/copper.png", - "displayName": "items.materials.original.ingots.copper", - "description": "items.materials.original.ingots.copper.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/gold.json b/game-server/datapacks/original/data/items/materials/ingots/gold.json deleted file mode 100644 index 417b2d1..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/gold.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_gold", - "texture": "original/assets/textures/materials/ingot/gold.png", - "displayName": "items.materials.original.ingots.gold", - "description": "items.materials.original.ingots.gold.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/iron.json b/game-server/datapacks/original/data/items/materials/ingots/iron.json deleted file mode 100644 index 3f8adf0..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/iron.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_iron", - "texture": "original/assets/textures/materials/ingot/iron.png", - "displayName": "items.materials.original.ingots.iron", - "description": "items.materials.original.ingots.iron.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/titanium.json b/game-server/datapacks/original/data/items/materials/ingots/titanium.json deleted file mode 100644 index 1dc59ea..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/titanium.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_titanium", - "texture": "original/assets/textures/materials/ingot/titanium.png", - "displayName": "items.materials.original.ingots.titanium", - "description": "items.materials.original.ingots.titanium.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ingots/tungsten.json b/game-server/datapacks/original/data/items/materials/ingots/tungsten.json deleted file mode 100644 index cbf4183..0000000 --- a/game-server/datapacks/original/data/items/materials/ingots/tungsten.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ingot_tungsten", - "texture": "original/assets/textures/materials/ingot/tungsten.png", - "displayName": "items.materials.original.ingots.tungsten", - "description": "items.materials.original.ingots.tungsten.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/bauxite.json b/game-server/datapacks/original/data/items/materials/ores/bauxite.json deleted file mode 100644 index 7c95cd8..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/bauxite.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_bauxite", - "texture": "original/assets/textures/materials/ore/bauxite.png", - "displayName": "items.materials.original.ores.bauxite", - "description": "items.materials.original.ores.bauxite.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/chronite.json b/game-server/datapacks/original/data/items/materials/ores/chronite.json deleted file mode 100644 index 1ddd25b..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/chronite.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_chronite", - "texture": "original/assets/textures/materials/ore/chronite.png", - "displayName": "items.materials.original.ores.chronite", - "description": "items.materials.original.ores.chronite.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/coal.json b/game-server/datapacks/original/data/items/materials/ores/coal.json deleted file mode 100644 index caa4e1c..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/coal.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_coal", - "texture": "original/assets/textures/materials/ore/coal.png", - "displayName": "items.materials.original.ores.coal", - "description": "items.materials.original.ores.coal.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/copper.json b/game-server/datapacks/original/data/items/materials/ores/copper.json deleted file mode 100644 index 78803af..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/copper.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_copper", - "texture": "original/assets/textures/materials/ore/copper.png", - "displayName": "items.materials.original.ores.copper", - "description": "items.materials.original.ores.copper.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/gold.json b/game-server/datapacks/original/data/items/materials/ores/gold.json deleted file mode 100644 index 95746ca..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/gold.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_gold", - "texture": "original/assets/textures/materials/ore/gold.png", - "displayName": "items.materials.original.ores.gold", - "description": "items.materials.original.ores.gold.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/ilunite.json b/game-server/datapacks/original/data/items/materials/ores/ilunite.json deleted file mode 100644 index 5a2ae44..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/ilunite.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_ilunite", - "texture": "original/assets/textures/materials/ore/ilunite.png", - "displayName": "items.materials.original.ores.ilunite", - "description": "items.materials.original.ores.ilunite.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/iron.json b/game-server/datapacks/original/data/items/materials/ores/iron.json deleted file mode 100644 index d423bd2..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/iron.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_iron", - "texture": "original/assets/textures/materials/ore/iron.png", - "displayName": "items.materials.original.ores.iron", - "description": "items.materials.original.ores.iron.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/items/materials/ores/wolframite.json b/game-server/datapacks/original/data/items/materials/ores/wolframite.json deleted file mode 100644 index 2a465a3..0000000 --- a/game-server/datapacks/original/data/items/materials/ores/wolframite.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "original:ore_wolframite", - "texture": "original/assets/textures/materials/ore/wolframite.png", - "displayName": "items.materials.original.ores.wolframite", - "description": "items.materials.original.ores.wolframite.desc", - "meta": { - "storeCategory": "original:materials" - } - } -} diff --git a/game-server/datapacks/original/data/quests/starter_kit.json b/game-server/datapacks/original/data/quests/starter_kit.json deleted file mode 100644 index 55133af..0000000 --- a/game-server/datapacks/original/data/quests/starter_kit.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "quest": { - "id": "original:tutorial/starter_kit", - "displayName": "quests.original.tutorial.starter_kit", - "description": "Welcome, Commander. Your neural link is active. Initial equipment has been authorized.", - "category": "STORY", - "minLevel": 1, - - "objectives": [ - { - "type": "LOGIN", - "requiredAmount": 1, - "currentAmount": 0, - "description": "Initialize system uplink" - } - ], - - "rewards": { - "xp": 50, - "credits": 500, - "items": [ - { - "id": "original:basic_personal_accessory", - "count": 1 - }, - { - "id": "original:basic_personal_backpack", - "count": 1 - }, - { - "id": "original:basic_personal_boots", - "count": 1 - }, - { - "id": "original:basic_personal_gloves", - "count": 1 - }, - { - "id": "original:basic_personal_suit", - "count": 1 - }, - { - "id": "original:basic_personal_weapon", - "count": 1 - } - ] - }, - - "meta": { - "autoAccept": true, - "autoComplete": false, - "priority": 100 - } - } -} diff --git a/game-server/datapacks/original/data/quests/tutorial_boss.json b/game-server/datapacks/original/data/quests/tutorial_boss.json deleted file mode 100644 index c77016f..0000000 --- a/game-server/datapacks/original/data/quests/tutorial_boss.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "quest": { - "id": "original:tutorial/slay_tutorial_boss", - "displayName": "quests.tutorial.slay_boss.name", - "description": "quests.tutorial.slay_boss.desc", - "category": "STORY", - "meta": { - "autoAccept": true, - "priority": 10 - }, - "objectives": [ - { - "type": "KILL_ENEMY", - "targetId": "original:tutorial/tutorial_boss_hostile", - "requiredAmount": 1, - "description": "quests.tutorial.slay_boss.obj1" - } - ], - "rewards": { - "credits": 500, - "xp": 1000, - "items": [ - { - "id": "original:materials/data_core", - "count": 1 - } - ] - } - } -} diff --git a/game-server/datapacks/original/data/recipes/Crystals/dimentional_crystal.json b/game-server/datapacks/original/data/recipes/Crystals/dimentional_crystal.json deleted file mode 100644 index 1be19c3..0000000 --- a/game-server/datapacks/original/data/recipes/Crystals/dimentional_crystal.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:alloy_neutronium_composite": 1 }, - { "original:crystal_flux": 1 }, - { "original:crystal_void": 1 } - ], - "output": { - "original:crystal_dimentional": 2 - }, - "time_seconds": 1200, - "requires": { - "original:alloying": 10 - } - }, - "craft": { - "type": "original:crystal", - "id": "original:crystal_dimentional" - } -} diff --git a/game-server/datapacks/original/data/recipes/Crystals/flux_core.json b/game-server/datapacks/original/data/recipes/Crystals/flux_core.json deleted file mode 100644 index 0741c34..0000000 --- a/game-server/datapacks/original/data/recipes/Crystals/flux_core.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ingot_steel": 2 }, - { "original:crystal_flux": 2 }, - { "original:ingot_chronite": 1 } - ], - "output": { - "original:crystal_flux_core": 1 - }, - "time_seconds": 1200, - "requires": { - "original:alloying": 6 - } - }, - "craft": { - "type": "original:crystal", - "id": "original:crystal_flux_core" - } -} diff --git a/game-server/datapacks/original/data/recipes/alloys/chronotanium.json b/game-server/datapacks/original/data/recipes/alloys/chronotanium.json deleted file mode 100644 index aed84b4..0000000 --- a/game-server/datapacks/original/data/recipes/alloys/chronotanium.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ingot_titanium": 2 }, - { "original:ingot_chronite": 1 }, - { "original:ingot_aluminum": 1 } - ], - "output": { - "original:alloy_chronotanium": 1 - }, - "time_seconds": 1200, - "requires": { - "original:alloying": 8 - } - }, - "craft": { - "type": "original:alloys", - "id": "original:alloy_chronotanium" - } -} diff --git a/game-server/datapacks/original/data/recipes/alloys/neutronium_composite.json b/game-server/datapacks/original/data/recipes/alloys/neutronium_composite.json deleted file mode 100644 index c5768c5..0000000 --- a/game-server/datapacks/original/data/recipes/alloys/neutronium_composite.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:crystal_neutronium": 1 }, - { "original:alloy_titanium_weave": 1 } - ], - "output": { - "original:alloy_neutronium_composite": 1 - }, - "time_seconds": 1200, - "requires": { - "original:alloying": 8 - } - }, - "craft": { - "type": "original:alloys", - "id": "original:alloy_neutronium_composite" - } -} diff --git a/game-server/datapacks/original/data/recipes/alloys/steel.json b/game-server/datapacks/original/data/recipes/alloys/steel.json deleted file mode 100644 index e06e283..0000000 --- a/game-server/datapacks/original/data/recipes/alloys/steel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ingot_iron": 2 }, - { "original:ore_coal": 5 } - ], - "output": { - "original:alloy_steel": 1 - }, - "time_seconds": 10, - "requires": { - "original:alloying": 1 - } - }, - "craft": { - "type": "original:alloys", - "id": "original:alloy_steel" - } -} diff --git a/game-server/datapacks/original/data/recipes/alloys/superconductor.json b/game-server/datapacks/original/data/recipes/alloys/superconductor.json deleted file mode 100644 index a803ed7..0000000 --- a/game-server/datapacks/original/data/recipes/alloys/superconductor.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ingot_gold": 1 }, - { "original:ingot_copper": 3 }, - { "original:crystal_flux": 1 } - ], - "output": { - "original:alloy_superconductor": 1 - }, - "time_seconds": 200, - "requires": { - "original:alloying": 1 - } - }, - "craft": { - "type": "original:alloys", - "id": "original:alloy_superconductor" - } -} diff --git a/game-server/datapacks/original/data/recipes/alloys/titanium_weave.json b/game-server/datapacks/original/data/recipes/alloys/titanium_weave.json deleted file mode 100644 index 5e70494..0000000 --- a/game-server/datapacks/original/data/recipes/alloys/titanium_weave.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ingot_titanium": 1 }, - { "original:ingot_carbon": 5 } - ], - "output": { - "original:alloy_titanium_weave": 1 - }, - "time_seconds": 300, - "requires": { - "original:alloying": 4 - } - }, - "craft": { - "type": "original:alloys", - "id": "original:alloy_titanium_weave" - } -} diff --git a/game-server/datapacks/original/data/recipes/alloys/void_steel.json b/game-server/datapacks/original/data/recipes/alloys/void_steel.json deleted file mode 100644 index b701a7a..0000000 --- a/game-server/datapacks/original/data/recipes/alloys/void_steel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:alloy_steel": 2 }, - { "original:crystal_void": 1 } - ], - "output": { - "original:alloy_void_steel": 2 - }, - "time_seconds": 100, - "requires": { - "original:alloying": 3 - } - }, - "craft": { - "type": "original:alloys", - "id": "original:alloy_void_steel" - } -} diff --git a/game-server/datapacks/original/data/recipes/circuits/advanced_circuit.json b/game-server/datapacks/original/data/recipes/circuits/advanced_circuit.json deleted file mode 100644 index e60cce8..0000000 --- a/game-server/datapacks/original/data/recipes/circuits/advanced_circuit.json +++ /dev/null @@ -1,21 +0,0 @@ - -{ - "recipe": { - "inputs": [ - {"original:circuit_basic": 2}, - {"original:ingot_gold": 1}, - {"original:ingot_carbon": 2} - ], - "output": { - "original:circuit_advanced": 1 - }, - "time_seconds": 20, - "requires": { - "original:circuit_assembly": 2 - } - }, - "craft": { - "type": "original:circuits", - "id": "original:circuit_advanced" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/circuits/ai_core.json b/game-server/datapacks/original/data/recipes/circuits/ai_core.json deleted file mode 100644 index 715267e..0000000 --- a/game-server/datapacks/original/data/recipes/circuits/ai_core.json +++ /dev/null @@ -1,20 +0,0 @@ - -{ - "recipe": { - "inputs": [ - {"original:circuit_quantum_processor": 2}, - {"original:dimentional_crystal": 1} - ], - "output": { - "original:circuit_ai_core": 1 - }, - "time_seconds": 1200, - "requires": { - "original:circuit_assembly": 8 - } - }, - "craft": { - "type": "original:circuits", - "id": "original:circuit_ai_core" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/circuits/basic_circuit.json b/game-server/datapacks/original/data/recipes/circuits/basic_circuit.json deleted file mode 100644 index edf4093..0000000 --- a/game-server/datapacks/original/data/recipes/circuits/basic_circuit.json +++ /dev/null @@ -1,20 +0,0 @@ - -{ - "recipe": { - "inputs": [ - {"original:ingot_copper": 1 }, - {"original:ingot_iron": 1 } - ], - "output": { - "original:circuit_basic": 1 - }, - "time_seconds": 10, - "requires": { - "original:circuit_assembly": 1 - } - }, - "craft": { - "type": "original:circuits", - "id": "original:circuit_basic" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/circuits/processing_circuit.json b/game-server/datapacks/original/data/recipes/circuits/processing_circuit.json deleted file mode 100644 index 3ca7358..0000000 --- a/game-server/datapacks/original/data/recipes/circuits/processing_circuit.json +++ /dev/null @@ -1,21 +0,0 @@ - -{ - "recipe": { - "inputs": [ - {"original:circuit_advanced": 1}, - {"original:flux_crystal": 1}, - {"original:ingot_gold": 2} - ], - "output": { - "original:circuit_processing_unit": 1 - }, - "time_seconds": 60, - "requires": { - "original:circuit_assembly": 4 - } - }, - "craft": { - "type": "original:circuits", - "id": "original:circuit_processing_unit" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/circuits/quantum_processor.json b/game-server/datapacks/original/data/recipes/circuits/quantum_processor.json deleted file mode 100644 index cd76d37..0000000 --- a/game-server/datapacks/original/data/recipes/circuits/quantum_processor.json +++ /dev/null @@ -1,21 +0,0 @@ - -{ - "recipe": { - "inputs": [ - {"original:circuit_processing_unit": 1}, - {"original:flux_core": 1}, - {"original:superconductor": 2} - ], - "output": { - "original:circuit_quantum_processor": 1 - }, - "time_seconds": 120, - "requires": { - "original:circuit_assembly": 6 - } - }, - "craft": { - "type": "original:circuits", - "id": "original:circuit_processing" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/ingots/aluminum.json b/game-server/datapacks/original/data/recipes/ingots/aluminum.json deleted file mode 100644 index 809e5be..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/aluminum.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_bauxite": 1 }, - { "original:ore_coal": 2 } - ], - "output": { - "original:ingot_aluminum": 1 - }, - "time_seconds": 180, - "requires": { - "original:forging": 2 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_aluminum" - } -} diff --git a/game-server/datapacks/original/data/recipes/ingots/carbon.json b/game-server/datapacks/original/data/recipes/ingots/carbon.json deleted file mode 100644 index e898ff9..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/carbon.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_coal": 5 } - ], - "output": { - "original:ingot_carbon": 1 - }, - "time_seconds": 30, - "requires": { - "original:forging": 2 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_carbon" - } -} diff --git a/game-server/datapacks/original/data/recipes/ingots/chronite.json b/game-server/datapacks/original/data/recipes/ingots/chronite.json deleted file mode 100644 index d4749ed..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/chronite.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_chronite": 1 }, - { "original:ore_coal": 10 } - ], - "output": { - "original:ingot_chronite": 1 - }, - "time_seconds": 1200, - "requires": { - "original:forging": 6 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_chronite" - } -} diff --git a/game-server/datapacks/original/data/recipes/ingots/copper.json b/game-server/datapacks/original/data/recipes/ingots/copper.json deleted file mode 100644 index 2f1a286..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/copper.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_copper": 1 }, - { "original:ore_coal": 1 } - ], - "output": { - "original:ingot_copper": 1 - }, - "time_seconds": 5, - "requires": { - "original:forging": 0 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_copper" - } -} diff --git a/game-server/datapacks/original/data/recipes/ingots/gold.json b/game-server/datapacks/original/data/recipes/ingots/gold.json deleted file mode 100644 index df0bebb..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/gold.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_gold": 1 }, - { "original:ore_coal": 2 } - ], - "output": { - "original:ingot_gold": 1 - }, - "time_seconds": 30, - "requires": { - "original:forging": 0 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_gold" - } -} diff --git a/game-server/datapacks/original/data/recipes/ingots/iron.json b/game-server/datapacks/original/data/recipes/ingots/iron.json deleted file mode 100644 index 6738f62..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/iron.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_iron": 1 }, - { "original:ore_coal": 2 } - ], - "output": { - "original:ingot_iron": 1 - }, - "time_seconds": 5, - "requires": { - "original:forging": 0 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_iron" - } -} diff --git a/game-server/datapacks/original/data/recipes/ingots/titanium.json b/game-server/datapacks/original/data/recipes/ingots/titanium.json deleted file mode 100644 index 82aca6a..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/titanium.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_ilmenite": 1 }, - { "original:ore_coal": 10 } - ], - "output": { - "original:ingot_titanium": 1 - }, - "time_seconds": 300, - "requires": { - "original:forging": 4 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_titanium" - } -} diff --git a/game-server/datapacks/original/data/recipes/ingots/tungsten.json b/game-server/datapacks/original/data/recipes/ingots/tungsten.json deleted file mode 100644 index ed9cccb..0000000 --- a/game-server/datapacks/original/data/recipes/ingots/tungsten.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "recipe": { - "inputs": [ - { "original:ore_wolframite": 1 }, - { "original:ore_coal": 10 } - ], - "output": { - "original:ingot_tungsten": 1 - }, - "time_seconds": 600, - "requires": { - "original:forging": 5 - } - }, - "craft": { - "type": "original:forging", - "id": "original:ingot_tungsten" - } -} diff --git a/game-server/datapacks/original/data/recipes/ship_equipment/basic_shield.json b/game-server/datapacks/original/data/recipes/ship_equipment/basic_shield.json deleted file mode 100644 index f5d0e18..0000000 --- a/game-server/datapacks/original/data/recipes/ship_equipment/basic_shield.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "recipe": { - "inputs": [ - { - "original:crystal_flux": 2 - }, - { - "original:ingot_iron": 1 - }, - { - "original:circuit_basic": 2 - }, - { - "original:ingot_carbon": 2 - }, - { - "original:ingot_copper": 1 - } - ], - "output": { - "original:basic_shield": 1 - }, - "time_seconds": 60, - "requires": { - "original:high_energetics": 2 - } - }, - "craft": { - "type": "original:ship_equipment", - "id": "original:basic_shield" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/ship_equipment/gen1_fission_reactor.json b/game-server/datapacks/original/data/recipes/ship_equipment/gen1_fission_reactor.json deleted file mode 100644 index 134b44d..0000000 --- a/game-server/datapacks/original/data/recipes/ship_equipment/gen1_fission_reactor.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "recipe": { - "inputs": [ - { - "original:crystal_flux": 2 - }, - { - "original:alloy_steel": 5 - }, - { - "original:circuit_basic": 2 - }, - { - "original:ingot_copper": 5 - }, - { - "original:ingot_carbon": 2 - } - ], - "output": { - "original:gen1_fission_reactor": 1 - }, - "time_seconds": 60, - "requires": { - "original:high_energetics": 2 - } - }, - "craft": { - "type": "original:ship_equipment", - "id": "original:gen1_fission_reactor" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/ship_equipment/gen2_fission_reactor.json b/game-server/datapacks/original/data/recipes/ship_equipment/gen2_fission_reactor.json deleted file mode 100644 index f493978..0000000 --- a/game-server/datapacks/original/data/recipes/ship_equipment/gen2_fission_reactor.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "recipe": { - "inputs": [ - { - "original:crystal_flux": 5 - }, - { - "original:alloy_steel": 6 - }, - { - "original:circuit_advanced": 3 - }, - { - "original:ingot_aluminum": 1 - }, - { - "original:ingot_copper": 5 - }, - { - "original:ingot_gold": 3 - }, - { - "original:ingot_carbon": 5 - } - ], - "output": { - "original:gen2_fission_reactor": 1 - }, - "time_seconds": 60, - "requires": { - "original:high_energetics": 3 - } - }, - "craft": { - "type": "original:ship_equipment", - "id": "original:gen2_fission_reactor" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/ship_equipment/heavy_shield.json b/game-server/datapacks/original/data/recipes/ship_equipment/heavy_shield.json deleted file mode 100644 index f5f6b3a..0000000 --- a/game-server/datapacks/original/data/recipes/ship_equipment/heavy_shield.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "recipe": { - "inputs": [ - { - "original:crystal_flux": 2 - }, - { - "original:alloy_steel": 1 - }, - { - "original:circuit_advanced": 2 - }, - { - "original:ingot_gold": 1 - }, - { - "original:ingot_carbon": 2 - } - ], - "output": { - "original:heavy_shield": 1 - }, - "time_seconds": 60, - "requires": { - "original:high_energetics": 2 - } - }, - "craft": { - "type": "original:ship_equipment", - "id": "original:heavy_shield" - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/recipes/ship_equipment/manifest.json b/game-server/datapacks/original/data/recipes/ship_equipment/manifest.json deleted file mode 100644 index 4dd5b14..0000000 --- a/game-server/datapacks/original/data/recipes/ship_equipment/manifest.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "name": "original", - "version": "0.0.2", - "admin_item_list": { - "categories": { - "original:alloys": { - "displayName": "admin.category.original.item_list.alloys" - }, - "original:circuits": { - "displayName": "admin.category.original.item_list.circuits" - }, - "original:customizables": { - "displayName": "admin.category.original.item_list.customizables" - }, - "original:ingots": { - "displayName": "admin.category.original.item_list.ingots" - }, - "original:materials": { - "displayName": "admin.category.original.item_list.materials" - }, - "original:ores": { - "displayName": "admin.category.original.item_list.ores" - }, - "original:personal": { - "displayName": "admin.category.original.item_list.personal" - }, - "original:ships": { - "displayName": "admin.category.original.item_list.ships" - }, - "original:shields": { - "displayName": "admin.category.original.item_list.shields" - }, - "original:weapons": { - "displayName": "admin.category.original.item_list.weapons" - } - } - }, - "admin_hostiles_list": { - "categories": { - "original:ground": { - "displayName": "admin.category.original.hostile_list.ground" - }, - "original:ships": { - "displayName": "admin.category.original.hostile_list.ships" - } - } - }, - "admin_player_list": { - "categories": { - "original:members": { - "displayName": "admin.category.original.player_list.members" - }, - "original:moderators": { - "displayName": "admin.category.original.player_list.moderators" - }, - "original:admins": { - "displayName": "admin.category.original.player_list.admins" - } - } - }, - "admin_role": { - "categories": { - "original:members": { - "displayName": "admin.category.original.player_list.members" - }, - "original:moderators": { - "displayName": "admin.category.original.player_list.moderators" - }, - "original:admins": { - "displayName": "admin.category.original.player_list.admins" - } - } - }, - "core_systems": { - "categories": { - "original:personal_helmet": { - "displayName": "core_systems.category.original.person.helmet" - }, - "original:personal_suit": { - "displayName": "core_systems.category.original.person.suit" - }, - "original:personal_gloves": { - "displayName": "core_systems.category.original.person.gloves" - }, - "original:personal_backpack": { - "displayName": "core_systems.category.original.person.backpack" - }, - "original:personal_boots": { - "displayName": "core_systems.category.original.person.boots" - }, - "original:personal_accessory_1": { - "displayName": "core_systems.category.original.person.accessory_1" - }, - "original:personal_accessory_2": { - "displayName": "core_systems.category.original.person.accessory_2" - }, - "original:personal_accessory_3": { - "displayName": "core_systems.category.original.person.accessory_3" - }, - "original:personal_accessory_4": { - "displayName": "core_systems.category.original.person.accessory_4" - }, - "original:personal_weapons": { - "displayName": "core_systems.category.original.person.weapons" - }, - "original:ship_hull": { - "displayName": "core_systems.category.original.ship.hull" - }, - "original:ship_shields": { - "displayName": "core_systems.category.original.ship.shields" - }, - "original:ship_engines": { - "displayName": "core_systems.category.original.ship.engines" - }, - "original:ship_weapon_1": { - "displayName": "core_systems.category.original.ship.weapon_1" - }, - "original:ship_weapon_2": { - "displayName": "core_systems.category.original.ship.weapon_2" - }, - "original:ship_thruster_1": { - "displayName": "core_systems.category.original.ship.thruster_1" - }, - "original:ship_thruster_2": { - "displayName": "core_systems.category.original.ship.thruster_2" - }, - "original:ship_thruster_3": { - "displayName": "core_systems.category.original.ship.thruster_3" - }, - "original:ship_thruster_4": { - "displayName": "core_systems.category.original.ship.thruster_4" - } - } - }, - "quests": { - "categories": { - "original:story": { - "displayName": "quests.category.original.story" - }, - "original:daily": { - "displayName": "quests.category.original.daily" - }, - "original:weekly": { - "displayName": "quests.category.original.weekly" - }, - "original:monthly": { - "displayName": "quests.category.original.monthly" - }, - "original:seasonal": { - "displayName": "quests.category.original.seasonal" - } - } - }, - "recipes": { - "categories": { - "original:alloys": { - "displayName": "recipes.category.original.alloys" - }, - "original:circuits": { - "displayName": "recipes.category.original.circuits" - }, - "original:crystals": { - "displayName": "recipes.category.original.crystals" - }, - "original:food": { - "displayName": "recipes.category.original.food" - }, - "original:forging": { - "displayName": "recipes.category.original.forging" - }, - "original:hull_sections": { - "displayName": "recipes.category.original.hull_sections" - }, - "original:hulls": { - "displayName": "recipes.category.original.hulls" - }, - "original:organics": { - "displayName": "recipes.category.original.organics" - }, - "original:personal_equipment": { - "displayName": "recipes.category.original.personal_equipment" - }, - "original:ship_equipment": { - "displayName": "recipes.category.original.ship_equipment" - } - } - }, - "shop": { - "categories": { - "original:featured": { - "displayName": "shop.category.original.featured" - }, - "original:ships": { - "displayName": "shop.category.original.ships" - }, - "original:personal_equipment": { - "displayName": "shop.category.original.personal_equipment" - }, - "original:ship_equipment": { - "displayName": "shop.category.original.ship_equipment" - }, - "original:consumables": { - "displayName": "shop.category.original.consumables" - }, - "original:materials": { - "displayName": "shop.category.original.materials" - }, - "original:premium": { - "displayName": "shop.category.original.premium" - } - } - }, - "skills": { - "categories": { - "original:combat": { - "displayName": "skills.category.original.combat" - }, - "original:crafting": { - "displayName": "skills.category.original.crafting" - }, - "original:science": { - "displayName": "skills.category.original.science" - } - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/skills/combat/engine_effiency.json b/game-server/datapacks/original/data/skills/combat/engine_effiency.json deleted file mode 100644 index d036020..0000000 --- a/game-server/datapacks/original/data/skills/combat/engine_effiency.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:engine_effiency", - "displayName": "skills.category.original.combat.engine_effiency", - "description": "skills.category.original.combat.engine_effiency.desc", - "meta": { - "category": "original:combat", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/data/skills/combat/shield_effiency.json b/game-server/datapacks/original/data/skills/combat/shield_effiency.json deleted file mode 100644 index 1627747..0000000 --- a/game-server/datapacks/original/data/skills/combat/shield_effiency.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:shield_effiency", - "displayName": "skills.category.original.combat.shield_effiency", - "description": "skills.category.original.combat.shield_effiency.desc", - "meta": { - "category": "original:combat", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/data/skills/combat/thruster_speed.json b/game-server/datapacks/original/data/skills/combat/thruster_speed.json deleted file mode 100644 index 9ae9427..0000000 --- a/game-server/datapacks/original/data/skills/combat/thruster_speed.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:thruster_effiency", - "displayName": "skills.category.original.combat.thruster_effiency", - "description": "skills.category.original.combat.thruster_effiency.desc", - "meta": { - "category": "original:combat", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/data/skills/combat/weapon_effiency.json b/game-server/datapacks/original/data/skills/combat/weapon_effiency.json deleted file mode 100644 index e9c985f..0000000 --- a/game-server/datapacks/original/data/skills/combat/weapon_effiency.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:weapon_effiency", - "displayName": "skills.category.original.combat.weapon_effiency", - "description": "skills.category.original.combat.weapon_effiency.desc", - "meta": { - "category": "original:combat", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/data/skills/crafting/alloying.json b/game-server/datapacks/original/data/skills/crafting/alloying.json deleted file mode 100644 index 041a31d..0000000 --- a/game-server/datapacks/original/data/skills/crafting/alloying.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:alloying", - "displayName": "skills.category.original.crafting.alloying", - "description": "skills.category.original.crafting.alloying.desc", - "meta": { - "category": "crafting", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/skills/crafting/circuit_assembly.json b/game-server/datapacks/original/data/skills/crafting/circuit_assembly.json deleted file mode 100644 index 51f00c5..0000000 --- a/game-server/datapacks/original/data/skills/crafting/circuit_assembly.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:circuit_assembly", - "displayName": "skills.category.original.crafting.circuit_assembly", - "description": "skills.category.original.crafting.circuit_assembly.desc", - "meta": { - "category": "crafting", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/data/skills/crafting/forging.json b/game-server/datapacks/original/data/skills/crafting/forging.json deleted file mode 100644 index 18605f8..0000000 --- a/game-server/datapacks/original/data/skills/crafting/forging.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:forging", - "displayName": "skills.category.original.crafting.forging", - "description": "skills.category.original.crafting.forging.desc", - "meta": { - "category": "crafting", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/data/skills/crafting/high_energetics.json b/game-server/datapacks/original/data/skills/crafting/high_energetics.json deleted file mode 100644 index 4e62213..0000000 --- a/game-server/datapacks/original/data/skills/crafting/high_energetics.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:high_energetics", - "displayName": "skills.category.original.crafting.high_energetics", - "description": "skills.category.original.crafting.high_energetics.desc", - "meta": { - "category": "crafting", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/skills/crafting/ship_manufacturing.json b/game-server/datapacks/original/data/skills/crafting/ship_manufacturing.json deleted file mode 100644 index 601fe32..0000000 --- a/game-server/datapacks/original/data/skills/crafting/ship_manufacturing.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:ship_manufacturing", - "displayName": "skills.category.original.crafting.ship_manufacturing", - "description": "skills.category.original.crafting.ship_manufacturing.desc", - "meta": { - "category": "crafting", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} \ No newline at end of file diff --git a/game-server/datapacks/original/data/skills/science/alien_technology.json b/game-server/datapacks/original/data/skills/science/alien_technology.json deleted file mode 100644 index d4fd2a8..0000000 --- a/game-server/datapacks/original/data/skills/science/alien_technology.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:alien_technology", - "displayName": "skills.category.original.science.alien_technology", - "description": "skills.category.original.science.alien_technology.desc", - "meta": { - "category": "science", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/data/skills/science/biology_engineering.json b/game-server/datapacks/original/data/skills/science/biology_engineering.json deleted file mode 100644 index ae23983..0000000 --- a/game-server/datapacks/original/data/skills/science/biology_engineering.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "original:biology_engineering", - "displayName": "skills.category.original.science.biology_engineering", - "description": "skills.category.original.science.biology_engineering.desc", - "meta": { - "category": "science", - "topLevel": 10, - "math": { - "start": 500, - "progressionCurve": 1.7 - } - } - } -} diff --git a/game-server/datapacks/original/manifest.json b/game-server/datapacks/original/manifest.json deleted file mode 100644 index 4dd5b14..0000000 --- a/game-server/datapacks/original/manifest.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "name": "original", - "version": "0.0.2", - "admin_item_list": { - "categories": { - "original:alloys": { - "displayName": "admin.category.original.item_list.alloys" - }, - "original:circuits": { - "displayName": "admin.category.original.item_list.circuits" - }, - "original:customizables": { - "displayName": "admin.category.original.item_list.customizables" - }, - "original:ingots": { - "displayName": "admin.category.original.item_list.ingots" - }, - "original:materials": { - "displayName": "admin.category.original.item_list.materials" - }, - "original:ores": { - "displayName": "admin.category.original.item_list.ores" - }, - "original:personal": { - "displayName": "admin.category.original.item_list.personal" - }, - "original:ships": { - "displayName": "admin.category.original.item_list.ships" - }, - "original:shields": { - "displayName": "admin.category.original.item_list.shields" - }, - "original:weapons": { - "displayName": "admin.category.original.item_list.weapons" - } - } - }, - "admin_hostiles_list": { - "categories": { - "original:ground": { - "displayName": "admin.category.original.hostile_list.ground" - }, - "original:ships": { - "displayName": "admin.category.original.hostile_list.ships" - } - } - }, - "admin_player_list": { - "categories": { - "original:members": { - "displayName": "admin.category.original.player_list.members" - }, - "original:moderators": { - "displayName": "admin.category.original.player_list.moderators" - }, - "original:admins": { - "displayName": "admin.category.original.player_list.admins" - } - } - }, - "admin_role": { - "categories": { - "original:members": { - "displayName": "admin.category.original.player_list.members" - }, - "original:moderators": { - "displayName": "admin.category.original.player_list.moderators" - }, - "original:admins": { - "displayName": "admin.category.original.player_list.admins" - } - } - }, - "core_systems": { - "categories": { - "original:personal_helmet": { - "displayName": "core_systems.category.original.person.helmet" - }, - "original:personal_suit": { - "displayName": "core_systems.category.original.person.suit" - }, - "original:personal_gloves": { - "displayName": "core_systems.category.original.person.gloves" - }, - "original:personal_backpack": { - "displayName": "core_systems.category.original.person.backpack" - }, - "original:personal_boots": { - "displayName": "core_systems.category.original.person.boots" - }, - "original:personal_accessory_1": { - "displayName": "core_systems.category.original.person.accessory_1" - }, - "original:personal_accessory_2": { - "displayName": "core_systems.category.original.person.accessory_2" - }, - "original:personal_accessory_3": { - "displayName": "core_systems.category.original.person.accessory_3" - }, - "original:personal_accessory_4": { - "displayName": "core_systems.category.original.person.accessory_4" - }, - "original:personal_weapons": { - "displayName": "core_systems.category.original.person.weapons" - }, - "original:ship_hull": { - "displayName": "core_systems.category.original.ship.hull" - }, - "original:ship_shields": { - "displayName": "core_systems.category.original.ship.shields" - }, - "original:ship_engines": { - "displayName": "core_systems.category.original.ship.engines" - }, - "original:ship_weapon_1": { - "displayName": "core_systems.category.original.ship.weapon_1" - }, - "original:ship_weapon_2": { - "displayName": "core_systems.category.original.ship.weapon_2" - }, - "original:ship_thruster_1": { - "displayName": "core_systems.category.original.ship.thruster_1" - }, - "original:ship_thruster_2": { - "displayName": "core_systems.category.original.ship.thruster_2" - }, - "original:ship_thruster_3": { - "displayName": "core_systems.category.original.ship.thruster_3" - }, - "original:ship_thruster_4": { - "displayName": "core_systems.category.original.ship.thruster_4" - } - } - }, - "quests": { - "categories": { - "original:story": { - "displayName": "quests.category.original.story" - }, - "original:daily": { - "displayName": "quests.category.original.daily" - }, - "original:weekly": { - "displayName": "quests.category.original.weekly" - }, - "original:monthly": { - "displayName": "quests.category.original.monthly" - }, - "original:seasonal": { - "displayName": "quests.category.original.seasonal" - } - } - }, - "recipes": { - "categories": { - "original:alloys": { - "displayName": "recipes.category.original.alloys" - }, - "original:circuits": { - "displayName": "recipes.category.original.circuits" - }, - "original:crystals": { - "displayName": "recipes.category.original.crystals" - }, - "original:food": { - "displayName": "recipes.category.original.food" - }, - "original:forging": { - "displayName": "recipes.category.original.forging" - }, - "original:hull_sections": { - "displayName": "recipes.category.original.hull_sections" - }, - "original:hulls": { - "displayName": "recipes.category.original.hulls" - }, - "original:organics": { - "displayName": "recipes.category.original.organics" - }, - "original:personal_equipment": { - "displayName": "recipes.category.original.personal_equipment" - }, - "original:ship_equipment": { - "displayName": "recipes.category.original.ship_equipment" - } - } - }, - "shop": { - "categories": { - "original:featured": { - "displayName": "shop.category.original.featured" - }, - "original:ships": { - "displayName": "shop.category.original.ships" - }, - "original:personal_equipment": { - "displayName": "shop.category.original.personal_equipment" - }, - "original:ship_equipment": { - "displayName": "shop.category.original.ship_equipment" - }, - "original:consumables": { - "displayName": "shop.category.original.consumables" - }, - "original:materials": { - "displayName": "shop.category.original.materials" - }, - "original:premium": { - "displayName": "shop.category.original.premium" - } - } - }, - "skills": { - "categories": { - "original:combat": { - "displayName": "skills.category.original.combat" - }, - "original:crafting": { - "displayName": "skills.category.original.crafting" - }, - "original:science": { - "displayName": "skills.category.original.science" - } - } - } -} \ No newline at end of file diff --git a/game-server/package.json b/game-server/package.json deleted file mode 100644 index 0b55fcd..0000000 --- a/game-server/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "game-server", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node ./src/index.js" - }, - "keywords": [], - "author": "", - "license": "ISC", - "type": "commonjs", - "dependencies": { - "axios": "^1.13.6", - "chokidar": "^5.0.0", - "cors": "^2.8.6", - "dotenv": "^17.3.1", - "express": "^5.2.1", - "jsonwebtoken": "^9.0.3", - "pg": "^8.20.0", - "sequelize": "^6.37.8", - "socket.io": "^4.8.3", - "sqlite3": "^6.0.1" - }, - "devDependencies": { - "concurrently": "^9.2.1" - } -} diff --git a/game-server/src/config/config.js b/game-server/src/config/config.js deleted file mode 100644 index d946a57..0000000 --- a/game-server/src/config/config.js +++ /dev/null @@ -1,14 +0,0 @@ -require("dotenv").config(); - -const config = { - port: process.env.PORT || 4000, - apiBaseUrl: process.env.API_SERVER_URL, - serverName: process.env.SERVER_NAME, - serverSecret: process.env.SERVER_SECRET, - serverDescription: process.env.DESCRIPTION, - serverRegion: process.env.REGION, - dbUri: process.env.DB_URI || "local", - host: process.env.HOST, -}; - -module.exports = config; diff --git a/game-server/src/config/db.js b/game-server/src/config/db.js deleted file mode 100644 index 294bcda..0000000 --- a/game-server/src/config/db.js +++ /dev/null @@ -1,49 +0,0 @@ -const { Sequelize } = require("sequelize"); -const config = require("./config"); // Шлях до твого файлу з конфігом - -const isLocal = config.dbUri === "local"; - -const sequelize = isLocal - ? new Sequelize({ - dialect: "sqlite", - storage: "./database.sqlite", - logging: false, - dialectOptions: { timeout: 20000 }, - pool: { max: 1, min: 1, idle: 10000, acquire: 30000 }, - }) - : new Sequelize(config.dbUri, { - dialect: "postgres", - logging: false, - dialectOptions: { - ssl: { - require: true, - rejectUnauthorized: false, - }, - }, - pool: { max: 5, min: 0, idle: 10000, acquire: 30000 }, - }); - -sequelize.initDatabase = async () => { - try { - await sequelize.authenticate(); - - if (isLocal) { - await sequelize.query("PRAGMA journal_mode=WAL;"); - await sequelize.query("PRAGMA foreign_keys = OFF;"); - } - - await sequelize.sync(); - - if (isLocal) { - await sequelize.query("PRAGMA foreign_keys = ON;"); - } - - console.log(`✅ Database connected (${isLocal ? "SQLite" : "Postgres"})`); - return true; - } catch (error) { - console.error("❌ Database Init Error:", error); - throw error; - } -}; - -module.exports = sequelize; diff --git a/game-server/src/game/AdminManager.js b/game-server/src/game/AdminManager.js deleted file mode 100644 index 452112d..0000000 --- a/game-server/src/game/AdminManager.js +++ /dev/null @@ -1,91 +0,0 @@ -const { Player, Inventory } = require("../models"); -const DatapackLoader = require("../game/DatapackLoader"); -const notificationManager = require("./NotificationManager"); - -class AdminManager { - constructor() { - this.io = null; - } - - init(io) { - this.io = io; - } - - async giveItem(targetName, itemId, amount) { - const targetPlayer = await Player.findOne({ - where: { username: targetName }, - }); - if (!targetPlayer) throw new Error(`Player '${targetName}' not found.`); - - const itemData = DatapackLoader.getItem(itemId); - if (!itemData) throw new Error(`Item ID '${itemId}' does not exist.`); - - const [inventoryItem, created] = await Inventory.findOrCreate({ - where: { playerId: targetPlayer.id, itemId: itemId }, - defaults: { quantity: amount }, - }); - - if (!created) { - await inventoryItem.increment("quantity", { by: amount }); - } - - await notificationManager.send({ - playerId: targetPlayer.id, - type: "item_received", - title: "Items Received", - message: `Admin granted you ${amount}x ${itemData.name || itemId}.`, - data: { itemId, amount }, - priority: "normal", - }); - - this._updatePlayerInventory(targetPlayer.id); - return { targetName, itemId, amount }; - } - - async clearInventory(targetName) { - const targetPlayer = await Player.findOne({ - where: { username: targetName }, - }); - if (!targetPlayer) throw new Error(`Player '${targetName}' not found.`); - - await Inventory.destroy({ where: { playerId: targetPlayer.id } }); - - await notificationManager.send({ - playerId: targetPlayer.id, - type: "inventory_clear", - title: "Inventory Wiped", - message: "Your inventory has been cleared by an administrator.", - priority: "high", - }); - - this._updatePlayerInventory(targetPlayer.id, true); - return targetName; - } - - async reloadData() { - DatapackLoader.loadAll(); - if (this.io) { - this.io.emit("admin:log", "System: Datapacks reloaded by admin."); - } - } - - async _updatePlayerInventory(playerId, isEmpty = false) { - if (!this.io) return; - - const targetSocket = [...this.io.sockets.sockets.values()].find( - (s) => s.user?.id === playerId, - ); - - if (targetSocket) { - const items = isEmpty - ? [] - : await Inventory.findAll({ - where: { playerId }, - attributes: ["itemId", "quantity"], - }); - targetSocket.emit("player:inventory_data", items); - } - } -} - -module.exports = new AdminManager(); diff --git a/game-server/src/game/ChatManager.js b/game-server/src/game/ChatManager.js deleted file mode 100644 index 7e168e9..0000000 --- a/game-server/src/game/ChatManager.js +++ /dev/null @@ -1,94 +0,0 @@ -const Player = require("../models/Player"); -const { Op } = require("sequelize"); -const Message = require("../models/Message.js"); - -class ChatManager { - async getGlobalHistory(limit = 50) { - try { - return await Message.findAll({ - where: { type: "global" }, - limit, - order: [["createdAt", "ASC"]], - include: [ - { - model: Player, - as: "sender", - attributes: ["username"], - }, - ], - }); - } catch (error) { - console.error("History Error:", error); - return []; - } - } - - async saveMessage({ content, type, senderId, receiverId = null }) { - try { - const newMessage = await Message.create({ - content, - type, - senderId, - receiverId, - }); - const sender = await Player.findByPk(senderId, { - attributes: ["username"], - }); - - return { - id: newMessage.id, - content: newMessage.content, - type: newMessage.type, - senderId: newMessage.senderId, - senderName: sender ? sender.username : "Unknown", - receiverId: newMessage.receiverId, - createdAt: newMessage.createdAt, - }; - } catch (error) { - console.error("Save Message Error:", error); - throw error; - } - } - async getPrivateHistory(myId, friendId, limit = 50) { - try { - return await Message.findAll({ - where: { - type: "private", - [Op.or]: [ - { senderId: myId, receiverId: friendId }, - { senderId: friendId, receiverId: myId }, - ], - }, - limit, - order: [["createdAt", "ASC"]], - include: [ - { - model: Player, - as: "sender", - attributes: ["username"], - }, - ], - }); - } catch (error) { - console.error("Private History Error:", error); - return []; - } - } - async searchPlayers(query, excludeId) { - try { - return await Player.findAll({ - where: { - username: { [Op.like]: `%${query}%` }, - id: { [Op.ne]: excludeId }, - }, - attributes: ["id", "username", "level"], - limit: 10, - }); - } catch (error) { - console.error("Search Error:", error); - return []; - } - } -} - -module.exports = new ChatManager(); diff --git a/game-server/src/game/CombatService.js b/game-server/src/game/CombatService.js deleted file mode 100644 index 5b37840..0000000 --- a/game-server/src/game/CombatService.js +++ /dev/null @@ -1,115 +0,0 @@ -const DatapackLoader = require("./DatapackLoader"); - -class CombatService { - initializeBattle(player, hostiles) { - const equipmentStats = this.calculateEquipmentStats(player.equipment); - - const playerMaxHp = 100 + (equipmentStats.health || 0); - const playerAtk = 25 + (equipmentStats.attack || 0); - const playerDef = equipmentStats.defence || 0; - const playerRes = equipmentStats.resistance || 0; - - const battle = { - player: { - id: player.id, - name: player.username || "Commander", - hp: playerMaxHp, - maxHp: playerMaxHp, - atk: playerAtk, - def: playerDef, - res: playerRes, - stats: equipmentStats, - }, - enemies: hostiles.map((h, index) => { - const hHp = h.stats?.health || 50; - return { - ...h, - instanceId: `mob_${index}`, - id: h.id, - name: h.displayName || h.name || `Hostile ${index + 1}`, - hp: hHp, - maxHp: hHp, - atk: h.stats?.attack || 10, - def: h.stats?.defence || 0, - res: h.stats?.resistance || 0, - isDead: false, - rewardGiven: false, - gainXp: h.gainXp || 0, - credits: h.credits || 0, - loot: h.loot || [], - }; - }), - turnOrder: ["player", ...hostiles.map((_, i) => `mob_${i}`)], - currentTurnIndex: 0, - turnStartTime: Date.now(), - isOver: false, - }; - - return battle; - } - - calculateEquipmentStats(equipment) { - const totals = { health: 0, attack: 0, defence: 0, resistance: 0 }; - if (!equipment) return totals; - - Object.values(equipment).forEach((itemId) => { - if (!itemId) return; - const itemData = DatapackLoader.getItem(itemId); - if (itemData && itemData.stats) { - Object.entries(itemData.stats).forEach(([key, value]) => { - const lowerKey = key.toLowerCase(); - if (lowerKey.includes("health") || lowerKey === "hp") - totals.health += value; - else if (lowerKey.includes("attack") || lowerKey.includes("atk")) - totals.attack += value; - else if (lowerKey.includes("def")) totals.defence += value; - else if (lowerKey.includes("res")) totals.resistance += value; - }); - } - }); - return totals; - } - - handleAttack(battle, targetInstanceId) { - const attackerId = battle.turnOrder[battle.currentTurnIndex]; - const log = []; - - if (attackerId === "player") { - const target = battle.enemies.find( - (e) => e.instanceId === targetInstanceId, - ); - if (target && !target.isDead) { - const dmg = Math.max( - 1, - Math.round(battle.player.atk - target.def * 0.5), - ); - target.hp = Math.max(0, target.hp - dmg); - log.push(`Commander dealt ${dmg} damage to ${target.name}`); - if (target.hp === 0) { - target.isDead = true; - log.push(`${target.name} neutralized.`); - } - } - } else { - const enemy = battle.enemies.find((e) => e.instanceId === attackerId); - if (enemy && !enemy.isDead && battle.player.hp > 0) { - const dmg = Math.max( - 1, - Math.round(enemy.atk - battle.player.def * 0.5), - ); - battle.player.hp = Math.max(0, battle.player.hp - dmg); - log.push(`${enemy.name} deals ${dmg} damage to Commander`); - if (battle.player.hp === 0) battle.isOver = true; - } - } - return log; - } - - handleSkip(battle) { - return [ - `Sequence timeout: ${battle.turnOrder[battle.currentTurnIndex]} skipped turn.`, - ]; - } -} - -module.exports = new CombatService(); diff --git a/game-server/src/game/CraftManager.js b/game-server/src/game/CraftManager.js deleted file mode 100644 index 2364a5c..0000000 --- a/game-server/src/game/CraftManager.js +++ /dev/null @@ -1,71 +0,0 @@ -const datapackLoader = require("../game/DatapackLoader"); -const { Inventory } = require("../models"); - -class CraftManager { - constructor() { - this.activeCrafts = new Map(); - } - - async startCraft(userId, recipeId, socket) { - if (this.activeCrafts.has(userId)) return { error: "Already crafting" }; - - const recipe = datapackLoader.getRecipe(recipeId); - if (!recipe) return { error: "Recipe not found" }; - - const craftTimeMs = (recipe.time_seconds || 0) * 1000; - const finishAt = Date.now() + craftTimeMs; - - const craftData = { - recipeId, - finishAt, - totalTime: recipe.time_seconds, - timer: setTimeout( - () => this.completeCraft(userId, recipeId, socket), - craftTimeMs, - ), - }; - - this.activeCrafts.set(userId, craftData); - return { recipeId, finishAt, totalTime: recipe.time_seconds }; - } - - async completeCraft(userId, recipeId, socket) { - try { - const recipe = datapackLoader.getRecipe(recipeId); - const outputItemId = Object.keys(recipe.output)[0]; - const outputQuantity = recipe.output[outputItemId]; - - const [newItem, created] = await Inventory.findOrCreate({ - where: { playerId: userId, itemId: outputItemId }, - defaults: { quantity: outputQuantity }, - }); - - if (!created) { - await newItem.increment("quantity", { by: outputQuantity }); - } - - this.activeCrafts.delete(userId); - - if (socket && socket.connected) { - socket.emit("player:craft_success", { recipeId }); - socket.emit("player:get_inventory"); - } - } catch (err) { - console.error("Complete craft error:", err); - } - } - - getExistingCraft(userId) { - const craft = this.activeCrafts.get(userId); - if (craft && craft.finishAt > Date.now()) { - return { - recipeId: craft.recipeId, - finishAt: craft.finishAt, - totalTime: craft.totalTime, - }; - } - return null; - } -} - -module.exports = new CraftManager(); diff --git a/game-server/src/game/DatapackLoader.js b/game-server/src/game/DatapackLoader.js deleted file mode 100644 index ffb1eec..0000000 --- a/game-server/src/game/DatapackLoader.js +++ /dev/null @@ -1,233 +0,0 @@ -const fs = require("fs"); -const path = require("path"); -const chokidar = require("chokidar"); - -class DatapackLoader { - constructor() { - this.registry = { - items: new Map(), - recipes: new Map(), - skills: new Map(), - dungeons: new Map(), - enemies: new Map(), - rooms: new Map(), - quests: new Map(), - languages: new Map(), - manifest: {}, - }; - this.rootPath = null; - } - - init(datapacksRoot, io = null) { - this.rootPath = datapacksRoot || path.join(__dirname, "../../datapacks"); - if (!fs.existsSync(this.rootPath)) return; - this.loadAll(); - if (io) this.watch(io); - } - - deepMerge(target, source) { - for (const key in source) { - if (source[key] instanceof Object && key in target) { - Object.assign(source[key], this.deepMerge(target[key], source[key])); - } - } - Object.assign(target || {}, source); - return target; - } - - loadAll() { - Object.values(this.registry).forEach((val) => { - if (val instanceof Map) val.clear(); - }); - this.registry.manifest = {}; - let manifestCount = 0; - - const packs = fs - .readdirSync(this.rootPath, { withFileTypes: true }) - .filter((d) => d.isDirectory()) - .map((d) => d.name) - .sort((a, b) => (a === "original" ? -1 : 1)); - - packs.forEach((packName) => { - const packPath = path.join(this.rootPath, packName); - const dataPath = path.join(packPath, "data"); - const langPath = path.join(packPath, "assets/languages"); - const manifestPath = path.join(packPath, "manifest.json"); - - if (fs.existsSync(manifestPath)) { - try { - const manifestContent = JSON.parse( - fs.readFileSync(manifestPath, "utf8"), - ); - this.deepMerge(this.registry.manifest, manifestContent); - manifestCount++; - } catch (err) { - console.error(`❌ Manifest Error [${packName}]:`, err.message); - } - } - - if (fs.existsSync(dataPath)) this.loadRecursive(dataPath, packName); - if (fs.existsSync(langPath)) this.loadLanguages(langPath); - }); - - console.log( - `🚀 Registry Ready: ${this.registry.items.size} Items, ${this.registry.dungeons.size} Dungeons, ${this.registry.quests.size} Quests, ${this.registry.languages.size} Langs, ${manifestCount} Manifests ${this.registry.rooms.size} Rooms`, - ); - } - - getRecipe(id) { - return this.registry.recipes.get(id); - } - - getRecipesByCategory(category) { - const allRecipes = Array.from(this.registry.recipes.values()); - return allRecipes.filter((r) => r.category === category); - } - - getRecipeCategories() { - const allRecipes = Array.from(this.registry.recipes.values()); - const categories = new Set( - allRecipes.map((r) => r.category).filter(Boolean), - ); - return Array.from(categories); - } - - loadLanguages(langPath) { - try { - const files = fs.readdirSync(langPath).filter((f) => f.endsWith(".json")); - files.forEach((file) => { - const langCode = path.basename(file, ".json"); - const fullPath = path.join(langPath, file); - const newContent = JSON.parse(fs.readFileSync(fullPath, "utf8")); - - if (!this.registry.languages.has(langCode)) { - this.registry.languages.set(langCode, {}); - } - - const currentDict = this.registry.languages.get(langCode); - this.deepMerge(currentDict, newContent); - }); - } catch (err) { - console.error(`❌ Language Load Error:`, err.message); - } - } - - watch(io) { - const watcher = chokidar.watch(this.rootPath, { - persistent: true, - ignoreInitial: true, - }); - watcher.on("all", (event, filePath) => { - if (filePath.endsWith(".json")) { - console.log(`🔄 Datapack change detected: ${path.basename(filePath)}`); - this.loadAll(); - io.emit( - "admin:log", - `System: Datapacks reloaded (${path.basename(filePath)})`, - ); - io.emit("system:data_updated", this.getStaticData()); - } - }); - } - - loadRecursive(dirPath, packName) { - const entries = fs.readdirSync(dirPath, { withFileTypes: true }); - for (const entry of entries) { - const fullPath = path.join(dirPath, entry.name); - if (entry.isDirectory()) { - this.loadRecursive(fullPath, packName); - } else if (entry.isFile() && entry.name.endsWith(".json")) { - this.parseFile(fullPath, packName); - } - } - } - - parseFile(filePath, packName) { - try { - const fileContent = fs.readFileSync(filePath, "utf8"); - const json = JSON.parse(fileContent); - const typeKey = Object.keys(json)[0]; - const data = json[typeKey]; - if (!data) return; - - const fullId = `${data.id}`; - - switch (typeKey) { - case "armour": - case "plating": - case "materials": - case "weapons": - data.type = typeKey; - this.registry.items.set(fullId, data); - break; - case "recipe": - const recipeId = json.craft?.id || data.id; - this.registry.recipes.set(recipeId, { ...json.craft, ...data }); - break; - case "skills": - this.registry.skills.set(fullId, data); - break; - case "dungeon": - this.registry.dungeons.set(fullId, data); - break; - case "hostile": - this.registry.enemies.set(fullId, data); - break; - case "rooms": - this.registry.rooms.set(fullId, data); - break; - case "quest": - this.registry.quests.set(fullId, data); - break; - } - } catch (err) { - console.error(`❌ Parse Error [${filePath}]:`, err.message); - } - } - - getItem(id) { - return this.registry.items.get(id); - } - - getEnemy(id) { - return this.registry.enemies.get(id); - } - - getDungeon(id) { - return this.registry.dungeons.get(id); - } - - getRoom(id) { - return this.registry.rooms.get(id); - } - - getQuest(id) { - return this.registry.quests.get(id); - } - - getAutoStartQuests() { - return Array.from(this.registry.quests.values()).filter( - (q) => q.meta?.autoAccept, - ); - } - - getRecipes() { - return Array.from(this.registry.recipes.values()); - } - - getStaticData() { - return { - items: Array.from(this.registry.items.values()), - recipes: Array.from(this.registry.recipes.values()), - skills: Array.from(this.registry.skills.values()), - dungeons: Array.from(this.registry.dungeons.values()), - enemies: Array.from(this.registry.enemies.values()), - rooms: Array.from(this.registry.rooms.values()), - quests: Array.from(this.registry.quests.values()), - languages: Object.fromEntries(this.registry.languages), - manifest: this.registry.manifest, - }; - } -} - -module.exports = new DatapackLoader(); diff --git a/game-server/src/game/DungeonManager.js b/game-server/src/game/DungeonManager.js deleted file mode 100644 index e9e6226..0000000 --- a/game-server/src/game/DungeonManager.js +++ /dev/null @@ -1,224 +0,0 @@ -const DatapackLoaderRef = require("./DatapackLoader"); -const CombatServiceRef = require("./CombatService"); -const QuestsManager = require("./QuestsManager"); -const { Player } = require("../models"); - -class DungeonManager { - constructor() { - this.activeSessions = new Map(); - } - - async startDungeon(playerId, dungeonId) { - const dungeon = DatapackLoaderRef.getDungeon(dungeonId); - if (!dungeon || !dungeon.rooms?.length) return null; - - const player = await Player.findByPk(playerId); - const session = { - playerId, - dungeonId, - currentRoomIndex: 0, - isFinished: false, - battle: null, - rewards: { xp: 0, credits: 0, items: [] }, - }; - - this.activeSessions.set(playerId, session); - return this.initRoom(playerId, player); - } - - async initRoom(playerId, playerInstance = null) { - const session = this.activeSessions.get(playerId); - if (!session) return null; - const roomData = this.getCurrentRoomData(playerId); - const player = playerInstance || (await Player.findByPk(playerId)); - - if (roomData.hostiles.length > 0) { - session.battle = CombatServiceRef.initializeBattle( - player, - roomData.hostiles, - ); - } else { - session.battle = null; - } - return { ...roomData, battle: session.battle }; - } - - getCurrentRoomData(playerId) { - const session = this.activeSessions.get(playerId); - const dungeon = DatapackLoaderRef.getDungeon(session.dungeonId); - const roomRef = dungeon.rooms[session.currentRoomIndex]; - const rawRoom = DatapackLoaderRef.getRoom(roomRef.id); - const hostiles = (rawRoom.hostiles || []) - .map((hId) => DatapackLoaderRef.getEnemy(hId)) - .filter(Boolean); - - return { - roomIndex: session.currentRoomIndex, - totalRooms: dungeon.rooms.length, - config: rawRoom, - hostiles, - }; - } - - processCombatAction(playerId, targetInstanceId, socket = null) { - const session = this.activeSessions.get(playerId); - if (!session || !session.battle || session.battle.isOver) return null; - - const battle = session.battle; - if (battle.turnOrder[battle.currentTurnIndex] !== "player") return null; - - let logMessages; - if (!targetInstanceId) { - logMessages = CombatServiceRef.handleSkip(battle); - } else { - logMessages = CombatServiceRef.handleAttack(battle, targetInstanceId); - } - - const playerAction = { - attackerId: "player", - messages: logMessages, - hpState: this._captureHpState(battle), - }; - - return this._afterAction(session, [playerAction], socket); - } - - _captureHpState(battle) { - return { - playerHp: battle.player.hp, - enemies: battle.enemies.map((e) => ({ - id: e.instanceId, - hp: e.hp, - isDead: e.isDead, - })), - }; - } - - _afterAction(session, actionLogs, socket) { - const battle = session.battle; - - battle.enemies.forEach((enemy) => { - if (enemy.isDead && !enemy.rewardGiven) { - enemy.rewardGiven = true; - session.rewards.xp += enemy.gainXp || 0; - session.rewards.credits += enemy.credits || 0; - - if (enemy.loot && Array.isArray(enemy.loot)) { - const lootMessages = this._distributeLoot(session, enemy.loot); - actionLogs.push(...lootMessages); - } - - QuestsManager.trackProgress( - session.playerId, - "KILL_ENEMY", - enemy.id, - 1, - socket, - ); - } - }); - - const allEnemiesDead = battle.enemies.every((e) => e.isDead); - - if (allEnemiesDead) { - battle.isOver = true; - const roomConfig = this.getCurrentRoomData(session.playerId).config; - if (roomConfig && !roomConfig.rewardGiven) { - roomConfig.rewardGiven = true; - session.rewards.xp += roomConfig.gainXp || 0; - session.rewards.credits += roomConfig.credits || 0; - if (roomConfig.loot) this._distributeLoot(session, roomConfig.loot); - } - return { battle, log: actionLogs, status: "victory" }; - } - - if (battle.player.hp <= 0) { - battle.isOver = true; - return { battle, log: actionLogs, status: "defeat" }; - } - - return this._nextTurn(session, actionLogs); - } - - _distributeLoot(session, lootTable) { - const rewardsLog = []; - lootTable.forEach((item) => { - if (Math.random() <= (item.chance || 1)) { - let finalCount = 0; - if (typeof item.count === "object" && item.count !== null) { - const min = item.count.min || 0; - const max = item.count.max || 1; - finalCount = Math.floor(Math.random() * (max - min + 1)) + min; - } else { - finalCount = Number(item.count) || 1; - } - - if (finalCount > 0) { - const existing = session.rewards.items.find((i) => i.id === item.id); - if (existing) { - existing.count += finalCount; - } else { - session.rewards.items.push({ id: item.id, count: finalCount }); - } - const shortName = item.id.split(":").pop().replace("_", " "); - rewardsLog.push( - `RECOVERED: ${finalCount}x ${shortName.toUpperCase()}`, - ); - } - } - }); - return rewardsLog; - } - - _nextTurn(session, accumulatedLogs = []) { - const battle = session.battle; - battle.currentTurnIndex = - (battle.currentTurnIndex + 1) % battle.turnOrder.length; - battle.turnStartTime = Date.now(); - - const currentId = battle.turnOrder[battle.currentTurnIndex]; - if (currentId === "player") return { battle, log: accumulatedLogs }; - - const enemy = battle.enemies.find((e) => e.instanceId === currentId); - if (!enemy || enemy.isDead) return this._nextTurn(session, accumulatedLogs); - - const enemyMessages = CombatServiceRef.handleAttack(battle, null); - accumulatedLogs.push({ - attackerId: currentId, - messages: enemyMessages, - hpState: this._captureHpState(battle), - }); - - if (battle.player.hp <= 0 || battle.enemies.every((e) => e.isDead)) { - return this._afterAction(session, accumulatedLogs); - } - - return this._nextTurn(session, accumulatedLogs); - } - - async moveToNextRoom(playerId) { - const session = this.activeSessions.get(playerId); - if (!session) return { error: "Session not found" }; - - if (session.isFinished) { - return { status: "completed", rewards: session.rewards }; - } - - const dungeon = DatapackLoaderRef.getDungeon(session.dungeonId); - - if (session.currentRoomIndex < dungeon.rooms.length - 1) { - session.currentRoomIndex++; - const newRoomData = await this.initRoom(playerId); - return { status: "next_room", ...newRoomData }; - } else { - session.isFinished = true; - return { status: "completed", rewards: session.rewards }; - } - } - - leaveDungeon(playerId) { - this.activeSessions.delete(playerId); - } -} - -module.exports = new DungeonManager(); diff --git a/game-server/src/game/EconomyService.js b/game-server/src/game/EconomyService.js deleted file mode 100644 index d2d4adb..0000000 --- a/game-server/src/game/EconomyService.js +++ /dev/null @@ -1,71 +0,0 @@ -const Player = require("../models/Player"); -const { Op } = require("sequelize"); - -class EconomyService { - constructor() { - this.onlinePlayers = new Set(); - } - - init(io) { - setInterval(async () => { - if (this.onlinePlayers.size === 0) return; - - const ids = Array.from(this.onlinePlayers); - try { - await Player.increment("credits", { - by: 1, - where: { id: { [Op.in]: ids } }, - }); - - await Player.update( - { lastCreditUpdate: new Date() }, - { where: { id: { [Op.in]: ids } } }, - ); - - const updatedPlayers = await Player.findAll({ - where: { id: { [Op.in]: ids } }, - attributes: ["id", "credits"], - }); - - updatedPlayers.forEach((p) => { - const targetSocket = Array.from(io.sockets.sockets.values()).find( - (s) => s.playerId === p.id, - ); - - if (targetSocket) { - targetSocket.emit("player:credits_update", { - totalCredits: p.credits, - }); - } - }); - } catch (err) { - console.error("Economy online error:", err); - } - }, 10000); - } - - addPlayer(id) { - this.onlinePlayers.add(id); - } - removePlayer(id) { - this.onlinePlayers.delete(id); - } - - async handleOfflineEarnings(player) { - const now = new Date(); - const lastUpdate = new Date(player.lastCreditUpdate || player.updatedAt); - const secondsPassed = Math.floor((now - lastUpdate) / 1000); - - const offlineCredits = Math.floor(secondsPassed / 20); - - if (offlineCredits > 0) { - await player.increment("credits", { by: offlineCredits }); - await player.reload(); - await player.update({ lastCreditUpdate: now }); - return offlineCredits; - } - return 0; - } -} - -module.exports = new EconomyService(); diff --git a/game-server/src/game/InventoryManager.js b/game-server/src/game/InventoryManager.js deleted file mode 100644 index 5fa74cb..0000000 --- a/game-server/src/game/InventoryManager.js +++ /dev/null @@ -1,58 +0,0 @@ -const { Player, Inventory } = require("../models"); -const DatapackLoader = require("./DatapackLoader"); - -class InventoryManager { - async getInventory(playerId) { - return await Inventory.findAll({ - where: { playerId }, - attributes: ["itemId", "quantity"], - }); - } - - async getEquipment(playerId) { - const player = await Player.findByPk(playerId); - return player ? player.equipment : {}; - } - - async equipItem(playerId, itemId, slot) { - const hasItem = await Inventory.findOne({ where: { playerId, itemId } }); - if (!hasItem) throw new Error("ITEM_NOT_FOUND"); - - const itemInfo = DatapackLoader.getItem(itemId); - if (!itemInfo) throw new Error("INVALID_ITEM_DATA"); - - const allowedSlot = itemInfo.meta?.equipmentSlot; - if (allowedSlot !== slot) { - throw new Error("INVALID_SLOT_FOR_ITEM"); - } - - const player = await Player.findByPk(playerId); - if (!player) throw new Error("PLAYER_NOT_FOUND"); - - const currentEquip = player.equipment; - currentEquip[slot] = itemId; - - player.equipment = currentEquip; - player.changed("equipment", true); - await player.save(); - - return itemInfo; - } - - async unequipItem(playerId, slot) { - const player = await Player.findByPk(playerId); - if (!player) throw new Error("PLAYER_NOT_FOUND"); - - const currentEquip = player.equipment; - if (currentEquip[slot]) { - delete currentEquip[slot]; - player.equipment = currentEquip; - player.changed("equipment", true); - await player.save(); - } - - return true; - } -} - -module.exports = new InventoryManager(); diff --git a/game-server/src/game/NotificationManager.js b/game-server/src/game/NotificationManager.js deleted file mode 100644 index 9a97e09..0000000 --- a/game-server/src/game/NotificationManager.js +++ /dev/null @@ -1,94 +0,0 @@ -const Notification = require("../models/Notification"); - -class NotificationManager { - constructor() { - this.io = null; - } - - init(io) { - this.io = io; - console.log("[NotificationManager] Initialized with Socket.io"); - } - - async send({ - playerId, - type = "info", - title, - message, - data = {}, - priority = "normal", - }) { - try { - const notification = await Notification.create({ - playerId, - type, - title, - message, - data, - priority, - isRead: false, - }); - - const targetSocket = this._getSocketByPlayerId(playerId); - - if (targetSocket) { - targetSocket.emit("notification:new", notification); - - const unreadCount = await this.getUnreadCount(playerId); - targetSocket.emit("notifications:unread_count", unreadCount); - } - - return notification; - } catch (error) { - console.error( - `[NotificationManager] Error sending to ${playerId}:`, - error, - ); - } - } - - _getSocketByPlayerId(playerId) { - if (!this.io) return null; - return [...this.io.sockets.sockets.values()].find( - (s) => s.user?.id === playerId, - ); - } - async getPlayerHistory(playerId, limit = 50) { - return await Notification.findAll({ - where: { playerId }, - order: [["createdAt", "DESC"]], - limit, - }); - } - - async getUnreadCount(playerId) { - return await Notification.count({ - where: { playerId, isRead: false }, - }); - } - - async markAsRead(notificationId, playerId) { - await Notification.update( - { isRead: true }, - { where: { id: notificationId, playerId } }, - ); - return await this.getUnreadCount(playerId); - } - - async markAllAsRead(playerId) { - await Notification.update( - { isRead: true }, - { where: { playerId, isRead: false } }, - ); - return 0; - } - - async delete(notificationId, playerId) { - await Notification.destroy({ - where: { id: notificationId, playerId }, - }); - return await this.getUnreadCount(playerId); - } -} - -module.exports = new NotificationManager(); diff --git a/game-server/src/game/QuestsManager.js b/game-server/src/game/QuestsManager.js deleted file mode 100644 index b5f2909..0000000 --- a/game-server/src/game/QuestsManager.js +++ /dev/null @@ -1,163 +0,0 @@ -const DatapackLoader = require("./DatapackLoader"); -const { PlayerQuest, Player, Inventory, sequelize } = require("../models"); - -class QuestsManager { - async onPlayerLogin(playerId, socket = null) { - try { - await this.checkAutoQuests(playerId, socket); - await this.trackProgress(playerId, "LOGIN", null, 1, socket); - } catch (err) { - console.error(err); - } - } - - async checkAutoQuests(playerId, socket = null) { - const allQuests = Array.from(DatapackLoader.registry.quests); - const player = await Player.findByPk(playerId); - - for (const quest of allQuests) { - if (quest.meta?.autoAccept && player.level >= (quest.minLevel || 0)) { - const [pq, created] = await PlayerQuest.findOrCreate({ - where: { playerId, questId: quest.id }, - defaults: { - status: "active", - progress: quest.objectives.map((obj) => ({ - ...obj, - currentAmount: 0, - })), - }, - }); - - if (created && socket) { - socket.emit("quest:new", { - id: pq.questId, - status: pq.status, - objectives: pq.progress, - }); - } - } - } - } - - async trackProgress(playerId, type, targetId, amount = 1, socket = null) { - try { - const activeQuests = await PlayerQuest.findAll({ - where: { playerId, status: "active" }, - }); - - for (const pq of activeQuests) { - const staticData = DatapackLoader.getQuest(pq.questId); - if (!staticData) continue; - - let isChanged = false; - const currentProgress = pq.progress; - - const updatedProgress = currentProgress.map((obj) => { - if ( - obj.type === type && - (obj.targetId === targetId || type === "LOGIN") - ) { - if (obj.currentAmount < obj.requiredAmount) { - obj.currentAmount = Math.min( - obj.currentAmount + amount, - obj.requiredAmount, - ); - isChanged = true; - } - } - return obj; - }); - - if (isChanged) { - const isReady = updatedProgress.every( - (obj) => obj.currentAmount >= obj.requiredAmount, - ); - - await pq.update({ - progress: updatedProgress, - status: isReady ? "ready" : "active", - }); - - if (socket) { - socket.emit("quest:update", { - id: pq.questId, - status: isReady ? "ready" : "active", - objectives: updatedProgress, - }); - } - - if (isReady && staticData.meta?.autoComplete) { - await this.claimRewards(playerId, pq.questId); - } - } - } - } catch (err) { - console.error(err); - } - } - - async claimRewards(playerId, questId) { - const t = await sequelize.transaction(); - - try { - const pq = await PlayerQuest.findOne({ - where: { playerId, questId, status: "ready" }, - transaction: t, - lock: t.LOCK.UPDATE, - }); - - if (!pq) { - await t.rollback(); - throw new Error("QUEST_NOT_READY_OR_CLAIMED"); - } - - const staticData = DatapackLoader.getQuest(questId); - const player = await Player.findByPk(playerId, { transaction: t }); - const rewards = staticData.rewards; - - await pq.update({ status: "completed" }, { transaction: t }); - - if (rewards.credits) { - await player.increment("credits", { - by: rewards.credits, - transaction: t, - }); - } - - if (rewards.xp) { - await player.increment("experience", { - by: rewards.xp, - transaction: t, - }); - } - - if (rewards.items?.length > 0) { - for (const item of rewards.items) { - const [invItem] = await Inventory.findOrCreate({ - where: { playerId, itemId: item.id }, - defaults: { quantity: 0 }, - transaction: t, - }); - await invItem.increment("quantity", { - by: item.count, - transaction: t, - }); - } - } - - await t.commit(); - const updatedPlayer = await player.reload(); - - return { - success: true, - rewards, - newTotalCredits: updatedPlayer.credits, - }; - } catch (err) { - if (t) await t.rollback(); - throw err; - } - } -} - -module.exports = new QuestsManager(); diff --git a/game-server/src/game/SessionManager.js b/game-server/src/game/SessionManager.js deleted file mode 100644 index 9ed8b67..0000000 --- a/game-server/src/game/SessionManager.js +++ /dev/null @@ -1,71 +0,0 @@ -class SessionManager { - constructor() { - this.sessions = new Map(); - } - - addPlayer(socketId, playerRaw) { - this.sessions.set(socketId, { - id: playerRaw.id, - username: playerRaw.username, - level: playerRaw.level, - energy: playerRaw.energy, - maxEnergy: playerRaw.maxEnergy, - status: "docked", - currentLocation: "Home_Base", - scene: "world", - sceneData: null, - joinedAt: Date.now(), - equipment: playerRaw.equipment || {}, - }); - } - - updateEquipment(socketId, slot, itemId) { - const session = this.sessions.get(socketId); - if (session) { - if (itemId === null) { - delete session.equipment[slot]; - } else { - session.equipment[slot] = itemId; - } - } - } - - setPlayerScene(socketId, sceneName, data = null) { - const session = this.sessions.get(socketId); - if (session) { - session.scene = sceneName; - session.sceneData = data; - session.status = sceneName === "dungeon" ? "in_mission" : "active"; - } - } - - getPlayerSession(socketId) { - return this.sessions.get(socketId); - } - - updateStatus(socketId, newStatus, location = null) { - const session = this.sessions.get(socketId); - if (session) { - session.status = newStatus; - if (location) session.currentLocation = location; - } - } - - removePlayer(socketId) { - this.sessions.delete(socketId); - } - - getPlayer(socketId) { - return this.sessions.get(socketId); - } - - getPlayerByUserId(userId) { - return Array.from(this.sessions.values()).find((s) => s.id === userId); - } - - getAllOnline() { - return Array.from(this.sessions.values()); - } -} - -module.exports = new SessionManager(); diff --git a/game-server/src/game/SocialManager.js b/game-server/src/game/SocialManager.js deleted file mode 100644 index a5e718a..0000000 --- a/game-server/src/game/SocialManager.js +++ /dev/null @@ -1,95 +0,0 @@ -const { Player, Friend } = require("../models"); -const notificationManager = require("./NotificationManager"); -const { Op } = require("sequelize"); - -class SocialManager { - constructor() { - this.io = null; - } - - init(io) { - this.io = io; - } - - async searchPlayers(query, excludeId) { - return await Player.findAll({ - where: { - username: { [Op.like]: `%${query}%` }, - id: { [Op.ne]: excludeId }, - }, - limit: 5, - attributes: ["id", "username", "level"], - }); - } - async removeFriend(myId, friendId) { - await Friend.destroy({ - where: { - [Op.or]: [ - { playerId: myId, friendId: friendId }, - { playerId: friendId, friendId: myId }, - ], - }, - }); - - await this.broadcastFriendListUpdate(myId); - await this.broadcastFriendListUpdate(friendId); - } - async sendFriendRequest(sender, targetId) { - await notificationManager.send({ - playerId: targetId, - type: "friend_request", - title: "NEW FRIEND REQUEST", - message: `${sender.username} wants to add you as a friend.`, - data: { fromId: sender.id }, - priority: "normal", - }); - } - - async acceptFriendRequest(myId, friendId, notificationId) { - const exists = await Friend.findOne({ - where: { playerId: myId, friendId: friendId }, - }); - - if (!exists) { - await Friend.bulkCreate([ - { playerId: myId, friendId: friendId }, - { playerId: friendId, friendId: myId }, - ]); - await notificationManager.delete(notificationId, myId); - - await this.broadcastFriendListUpdate(myId); - await this.broadcastFriendListUpdate(friendId); - - return true; - } - return false; - } - - async getFriendList(playerId) { - const player = await Player.findByPk(playerId, { - include: [ - { - model: Player, - as: "Friends", - attributes: ["id", "username", "level"], - }, - ], - }); - return player?.Friends || []; - } - - async broadcastFriendListUpdate(playerId) { - if (!this.io) return; - - const list = await this.getFriendList(playerId); - const targetSocket = [...this.io.sockets.sockets.values()].find( - (s) => s.user?.id === playerId, - ); - - if (targetSocket) { - targetSocket.emit("friend:list", list); - } - } -} - -module.exports = new SocialManager(); diff --git a/game-server/src/index.js b/game-server/src/index.js deleted file mode 100644 index da54b17..0000000 --- a/game-server/src/index.js +++ /dev/null @@ -1,97 +0,0 @@ -const express = require("express"); -const cors = require("cors"); -const axios = require("axios"); -const config = require("./config/config.js"); -const initSockets = require("./sockets/socket.js"); -const { Server } = require("socket.io"); -const http = require("http"); -const sequelize = require("./config/db.js"); -const DatapackLoader = require("./game/DatapackLoader.js"); -const path = require("path"); -const app = express(); -const economyService = require("./game/EconomyService.js"); -const NotificationManager = require("./game/NotificationManager.js"); -const AdminManager = require("./game/AdminManager.js"); -const SocialManager = require("./game/SocialManager.js"); - -app.use( - cors({ - origin: "*", - methods: ["GET", "POST"], - credentials: true, - }), -); -app.use("/static", express.static(path.join(__dirname, "../datapacks"))); -app.use(express.json()); - -const server = http.createServer(app); - -const io = new Server(server, { - cors: { - origin: "*", - methods: ["GET", "POST"], - credentials: true, - }, - transports: ["websocket", "polling"], - allowEIO3: true, -}); - -app.get("/api/game-metadata", (req, res) => { - try { - const gameData = DatapackLoader.getStaticData(); - res.json(gameData); - } catch (error) { - res.status(500).json({ error: "Failed to load game metadata" }); - } -}); - -app.get("/status", (req, res) => { - res.json({ status: "online", players: io.engine.clientsCount }); -}); - -const registerInApi = async () => { - try { - await axios.post(`${config.apiBaseUrl}/servers/register`, { - name: config.serverName, - url: config.host, - secret: config.serverSecret, - isModded: false, - description: config.serverDescription, - region: config.serverRegion, - }); - } catch (error) { - console.log(`Error: API server not found at ${config.apiBaseUrl}`); - console.log("Please configure API_SERVER_URL= in your .env file"); - process.exit(1); - } -}; - -const HEARTBEAT_INTERVAL = 1000; -const sendHeartbeat = async () => { - try { - await axios.post(`${config.apiBaseUrl}/servers/heartbeat`, { - name: config.serverName, - secret: config.serverSecret, - playersOnline: io.engine.clientsCount, - }); - } catch (error) {} -}; - -server.listen(config.port, async () => { - try { - const datapacksPath = path.join(__dirname, "../datapacks"); - DatapackLoader.init(datapacksPath, io); - await sequelize.initDatabase(); - initSockets(io); - NotificationManager.init(io); - AdminManager.init(io); - economyService.init(io); - SocialManager.init(io); - await registerInApi(); - setInterval(sendHeartbeat, HEARTBEAT_INTERVAL); - console.log(`Server running on ${config.host}. PORT: ${config.port}`); - } catch (error) { - console.log(error); - process.exit(1); - } -}); diff --git a/game-server/src/models/Friend.js b/game-server/src/models/Friend.js deleted file mode 100644 index c4a698b..0000000 --- a/game-server/src/models/Friend.js +++ /dev/null @@ -1,16 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); - -const Friend = sequelize.define("Friend", { - id: { - type: DataTypes.UUID, - defaultValue: DataTypes.UUIDV4, - primaryKey: true, - }, - status: { - type: DataTypes.ENUM("pending", "accepted"), - defaultValue: "pending", - }, -}); - -module.exports = Friend; diff --git a/game-server/src/models/Inventory.js b/game-server/src/models/Inventory.js deleted file mode 100644 index 9eca928..0000000 --- a/game-server/src/models/Inventory.js +++ /dev/null @@ -1,28 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); - -const Inventory = sequelize.define( - "Inventory", - { - id: { - type: DataTypes.INTEGER, - primaryKey: true, - autoIncrement: true, - }, - playerId: { - type: DataTypes.STRING, - allowNull: false, - }, - itemId: { - type: DataTypes.STRING, - allowNull: false, - }, - quantity: { - type: DataTypes.INTEGER, - defaultValue: 1, - }, - }, - { timestamps: false, tableName: "inventory" }, -); - -module.exports = Inventory; diff --git a/game-server/src/models/Item.js b/game-server/src/models/Item.js deleted file mode 100644 index cabfc89..0000000 --- a/game-server/src/models/Item.js +++ /dev/null @@ -1,26 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); - -const Item = sequelize.define( - "Item", - { - id: { - type: DataTypes.STRING, - primaryKey: true, - }, - name: { - type: DataTypes.STRING, - allowNull: false, - }, - texturePath: { - type: DataTypes.STRING, - }, - rarity: { - type: DataTypes.STRING, - defaultValue: "common", - }, - }, - { tableName: "items" }, -); - -module.exports = Item; diff --git a/game-server/src/models/Message.js b/game-server/src/models/Message.js deleted file mode 100644 index e205621..0000000 --- a/game-server/src/models/Message.js +++ /dev/null @@ -1,23 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); - -const Message = sequelize.define("Message", { - content: { - type: DataTypes.TEXT, - allowNull: false, - }, - type: { - type: DataTypes.ENUM("global", "private"), - defaultValue: "global", - }, - senderId: { - type: DataTypes.STRING, - allowNull: false, - }, - receiverId: { - type: DataTypes.STRING, - allowNull: true, - }, -}); - -module.exports = Message; diff --git a/game-server/src/models/Notification.js b/game-server/src/models/Notification.js deleted file mode 100644 index 47e1ba9..0000000 --- a/game-server/src/models/Notification.js +++ /dev/null @@ -1,29 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); - -const Notification = sequelize.define("Notification", { - playerId: { - type: DataTypes.STRING, - allowNull: false, - }, - type: { - type: DataTypes.ENUM("friend_request", "crafting", "system", "trade"), - allowNull: false, - }, - title: { - type: DataTypes.STRING, - allowNull: false, - }, - message: { - type: DataTypes.TEXT, - }, - data: { - type: DataTypes.JSON, - }, - isRead: { - type: DataTypes.BOOLEAN, - defaultValue: false, - }, -}); - -module.exports = Notification; diff --git a/game-server/src/models/Player.js b/game-server/src/models/Player.js deleted file mode 100644 index 3a0d908..0000000 --- a/game-server/src/models/Player.js +++ /dev/null @@ -1,58 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); - -const Player = sequelize.define("Player", { - id: { - type: DataTypes.STRING, - primaryKey: true, - }, - username: { - type: DataTypes.STRING, - allowNull: false, - }, - level: { - type: DataTypes.INTEGER, - defaultValue: 1, - }, - experience: { - type: DataTypes.INTEGER, - defaultValue: 0, - }, - credits: { - type: DataTypes.INTEGER, - defaultValue: 500, - }, - lastCreditUpdate: { - type: DataTypes.DATE, - defaultValue: DataTypes.NOW, - }, - energy: { - type: DataTypes.INTEGER, - defaultValue: 100, - }, - maxEnergy: { - type: DataTypes.INTEGER, - defaultValue: 100, - }, - lastEnergyRegen: { - type: DataTypes.DATE, - defaultValue: DataTypes.NOW, - }, - lastLogin: { - type: DataTypes.DATE, - defaultValue: DataTypes.NOW, - }, - equipment: { - type: DataTypes.TEXT, - defaultValue: "{}", - get() { - const val = this.getDataValue("equipment"); - return val ? JSON.parse(val) : {}; - }, - set(val) { - this.setDataValue("equipment", JSON.stringify(val)); - }, - }, -}); - -module.exports = Player; diff --git a/game-server/src/models/PlayerQuest.js b/game-server/src/models/PlayerQuest.js deleted file mode 100644 index 27e1b91..0000000 --- a/game-server/src/models/PlayerQuest.js +++ /dev/null @@ -1,41 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); - -const PlayerQuest = sequelize.define( - "PlayerQuest", - { - id: { - type: DataTypes.INTEGER, - primaryKey: true, - autoIncrement: true, - }, - playerId: { - type: DataTypes.STRING, - allowNull: false, - }, - questId: { - type: DataTypes.STRING, - allowNull: false, - }, - status: { - type: DataTypes.ENUM("active", "ready", "completed"), - defaultValue: "active", - }, - progress: { - type: DataTypes.JSON, - defaultValue: [], - }, - }, - { - timestamps: true, - tableName: "player_quests", - indexes: [ - { - unique: true, - fields: ["playerId", "questId"], - }, - ], - }, -); - -module.exports = PlayerQuest; diff --git a/game-server/src/models/SubItems.js b/game-server/src/models/SubItems.js deleted file mode 100644 index 4b2c9d2..0000000 --- a/game-server/src/models/SubItems.js +++ /dev/null @@ -1,61 +0,0 @@ -const { DataTypes } = require("sequelize"); -const sequelize = require("../config/db"); -const Item = require("./Item"); - -const Weapon = sequelize.define( - "Weapon", - { - itemId: { - type: DataTypes.STRING, - primaryKey: true, - references: { model: Item, key: "id" }, - }, - damage: { type: DataTypes.INTEGER }, - criticalChance: { type: DataTypes.FLOAT }, - attackRate: { type: DataTypes.INTEGER }, - }, - { timestamps: false }, -); - -const Armour = sequelize.define( - "Armour", - { - itemId: { - type: DataTypes.STRING, - primaryKey: true, - references: { model: Item, key: "id" }, - }, - health: { type: DataTypes.INTEGER }, - resistance: { type: DataTypes.FLOAT }, - defenceRating: { type: DataTypes.INTEGER }, - reflectChance: { type: DataTypes.FLOAT }, - category: { - type: DataTypes.ENUM( - "BACKPACK", - "BODY", - "BOOTS", - "HANDS", - "HELMET", - "PANTS", - ), - }, - }, - { timestamps: false }, -); - -const Material = sequelize.define( - "Material", - { - itemId: { - type: DataTypes.STRING, - primaryKey: true, - references: { model: Item, key: "id" }, - }, - category: { - type: DataTypes.ENUM("ELECTRONICS", "BIO", "CHEMICAL"), - }, - }, - { timestamps: false }, -); - -module.exports = { Weapon, Armour, Material }; diff --git a/game-server/src/models/associations.js b/game-server/src/models/associations.js deleted file mode 100644 index a5addd5..0000000 --- a/game-server/src/models/associations.js +++ /dev/null @@ -1,27 +0,0 @@ -const Player = require("./Player"); -const Message = require("./Message.js"); -const Friend = require("./Friend"); -const setupAssociations = () => { - Message.belongsTo(Player, { - as: "sender", - foreignKey: "senderId", - }); - - Message.belongsTo(Player, { - as: "receiver", - foreignKey: "receiverId", - }); - - Player.hasMany(Message, { - foreignKey: "senderId", - }); - - Player.belongsToMany(Player, { - through: Friend, - as: "Friends", - foreignKey: "playerId", - otherKey: "friendId", - }); -}; - -module.exports = setupAssociations; diff --git a/game-server/src/models/index.js b/game-server/src/models/index.js deleted file mode 100644 index 8d26a81..0000000 --- a/game-server/src/models/index.js +++ /dev/null @@ -1,24 +0,0 @@ -const sequelize = require("../config/db"); -const Player = require("./Player"); -const Inventory = require("./Inventory"); -const setupAssociations = require("./associations"); -const Notification = require("./Notification"); -const Friend = require("./Friend.js"); -const PlayerQuest = require("./PlayerQuest.js"); - -Player.hasMany(Inventory, { foreignKey: "playerId", as: "inventory" }); -Inventory.belongsTo(Player, { foreignKey: "playerId" }); - -Player.hasMany(PlayerQuest, { foreignKey: "playerId", as: "quests" }); -PlayerQuest.belongsTo(Player, { foreignKey: "playerId" }); - -setupAssociations(); - -module.exports = { - sequelize, - Player, - Inventory, - Notification, - Friend, - PlayerQuest, -}; diff --git a/game-server/src/sockets/handlers/adminHandler.js b/game-server/src/sockets/handlers/adminHandler.js deleted file mode 100644 index 9ab1fbe..0000000 --- a/game-server/src/sockets/handlers/adminHandler.js +++ /dev/null @@ -1,56 +0,0 @@ -const adminManager = require("../../game/AdminManager"); - -module.exports = (io, socket) => { - if (!adminManager.io) adminManager.init(io); - - const handleAdminCommand = async ({ command }) => { - const args = command.trim().split(/\s+/); - const cmd = args[0].toLowerCase(); - - try { - switch (cmd) { - case "/give": { - const [_, targetName, itemId, amountStr] = args; - const amount = parseInt(amountStr) || 1; - - if (!targetName || !itemId) { - throw new Error("Usage: /give [player] [item] [amount]"); - } - - const result = await adminManager.giveItem( - targetName, - itemId, - amount, - ); - socket.emit( - "admin:log", - `Successfully gave ${result.amount}x [${result.itemId}] to ${result.targetName}.`, - ); - break; - } - - case "/clear": { - const [_, targetName] = args; - if (!targetName) throw new Error("Usage: /clear [player]"); - - const target = await adminManager.clearInventory(targetName); - socket.emit("admin:log", `Inventory for ${target} has been wiped.`); - break; - } - - case "/reload_data": { - socket.emit("admin:log", "Reloading all datapacks..."); - await adminManager.reloadData(); - break; - } - - default: - socket.emit("admin:log", `Unknown admin command: ${cmd}`); - } - } catch (err) { - socket.emit("admin:log", `Error: ${err.message}`); - } - }; - - socket.on("admin:command", handleAdminCommand); -}; diff --git a/game-server/src/sockets/handlers/chatHandler.js b/game-server/src/sockets/handlers/chatHandler.js deleted file mode 100644 index 6ceffda..0000000 --- a/game-server/src/sockets/handlers/chatHandler.js +++ /dev/null @@ -1,81 +0,0 @@ -const chatManager = require("../../game/ChatManager"); - -module.exports = (io, socket) => { - socket.on("chat:get_global_history", async () => { - const history = await chatManager.getGlobalHistory(); - const formattedHistory = history.map((m) => ({ - id: m.id, - content: m.content, - senderName: m.sender?.username || "Unknown", - senderId: m.senderId, - createdAt: m.createdAt, - type: m.type, - })); - socket.emit("chat:global_history", formattedHistory); - }); - socket.on("chat:get_global_history", async () => { - const history = await chatManager.getGlobalHistory(); - - const formattedHistory = history.map((m) => ({ - id: m.id, - content: m.content, - senderName: m.sender?.username || "Unknown", - senderId: m.senderId, - createdAt: m.createdAt, - type: m.type, - })); - - socket.emit("chat:global_history", formattedHistory); - }); - - socket.on("chat:send_message", async (payload) => { - try { - const senderId = socket.user?.id; - if (!senderId) return; - - const messageData = await chatManager.saveMessage({ - content: payload.content, - type: payload.type || "global", - senderId: senderId, - receiverId: payload.receiverId, - }); - - if (messageData.type === "global") { - io.emit("chat:new_message", messageData); - } else { - socket - .to(`user_${payload.receiverId}`) - .emit("chat:new_message", messageData); - socket.emit("chat:new_message", messageData); - } - } catch (err) { - console.error(err); - socket.emit("error", { message: "CHAT_SEND_ERROR" }); - } - }); - - socket.on("chat:get_private_history", async ({ friendId }) => { - const myId = socket.user?.id; - - if (!myId || !friendId) return; - - const history = await chatManager.getPrivateHistory(myId, friendId); - const formattedHistory = history.map((m) => ({ - id: m.id, - content: m.content, - senderName: m.sender?.username || "Unknown", - senderId: m.senderId, - receiverId: m.receiverId, - createdAt: m.createdAt, - type: m.type, - })); - socket.emit("chat:private_history", formattedHistory); - }); - socket.on("player:search", async ({ query }) => { - const senderId = socket.user?.id; - if (!query || !senderId) return; - - const results = await chatManager.searchPlayers(query, senderId); - socket.emit("player:search_results", results); - }); -}; diff --git a/game-server/src/sockets/handlers/connectionHandler.js b/game-server/src/sockets/handlers/connectionHandler.js deleted file mode 100644 index 32dba92..0000000 --- a/game-server/src/sockets/handlers/connectionHandler.js +++ /dev/null @@ -1,97 +0,0 @@ -const { Op } = require("sequelize"); -const Player = require("../../models/Player"); -const sessionManager = require("../../game/SessionManager"); -const economyService = require("../../game/EconomyService.js"); -const QuestsManager = require("../../game/QuestsManager"); - -module.exports = async (io, socket) => { - const userId = socket.user?.id; - const username = socket.user?.username; - const sid = socket.id.substring(0, 5); - - if (!userId) { - return socket.disconnect(); - } - - try { - let player = await Player.findByPk(userId); - - if (!player) { - try { - player = await Player.create({ - id: userId, - username: username, - }); - } catch (createErr) { - player = await Player.findByPk(userId); - } - } - - await QuestsManager.onPlayerLogin(userId, socket); - await player.reload(); - - const offlineCredits = await economyService.handleOfflineEarnings(player); - - socket.playerId = userId; - socket.join("online_room"); - economyService.addPlayer(userId); - - const playerRaw = player.get({ plain: true }); - sessionManager.addPlayer(socket.id, playerRaw); - - const onlinePlayersData = sessionManager.getAllOnline(); - const onlineUsernames = onlinePlayersData.map((p) => p.username); - const onlineIds = onlinePlayersData.map((p) => p.id); - - const offlinePlayersModels = await Player.findAll({ - where: { - id: { [Op.notIn]: onlineIds }, - }, - attributes: ["username"], - raw: true, - }); - - const offlineUsernames = offlinePlayersModels.map((p) => p.username); - - socket.emit("session:ready", { - player: { - id: playerRaw.id, - username: playerRaw.username, - level: playerRaw.level, - credits: playerRaw.credits, - experience: playerRaw.experience, - }, - offlineEarned: offlineCredits, - onlinePlayers: onlineUsernames, - offlinePlayers: offlineUsernames, - }); - - socket.broadcast.emit("player:joined", { username: playerRaw.username }); - socket.join(`user_${socket.user.id}`); - - socket.on("player:get_dashboard", async () => { - try { - const p = await Player.findByPk(userId); - if (p) socket.emit("player:dashboard_data", p.toJSON()); - } catch (err) { - console.error(`❌ [${sid}] Dashboard error:`, err.message); - } - }); - - socket.on("disconnect", async () => { - try { - await Player.update( - { lastCreditUpdate: new Date() }, - { where: { id: userId } }, - ); - } catch (e) {} - - economyService.removePlayer(userId); - sessionManager.removePlayer(socket.id); - socket.broadcast.emit("player:left", { username: playerRaw.username }); - }); - } catch (err) { - console.error(`❌ [${sid}] Connection Error:`, err.message); - socket.disconnect(); - } -}; diff --git a/game-server/src/sockets/handlers/craftingHandler.js b/game-server/src/sockets/handlers/craftingHandler.js deleted file mode 100644 index 5582ca3..0000000 --- a/game-server/src/sockets/handlers/craftingHandler.js +++ /dev/null @@ -1,89 +0,0 @@ -const datapackLoader = require("../../game/DatapackLoader"); -const { Inventory } = require("../../models"); -const craftManager = require("../../game/CraftManager"); - -module.exports = (io, socket) => { - const userId = socket.user?.id; - - const sendStatus = () => { - const existing = craftManager.getExistingCraft(userId); - if (existing) { - socket.emit("player:craft_started", existing); - } - }; - - socket.on("player:check_active_craft", () => { - sendStatus(); - }); - - socket.on("player:get_recipe_categories", () => { - try { - const categories = datapackLoader.getRecipeCategories(); - socket.emit("player:recipe_categories_data", categories); - } catch (err) { - console.error(err.message); - } - }); - - socket.on("player:get_recipes", ({ category }) => { - try { - if (!category) return; - const rawRecipes = datapackLoader.getRecipesByCategory(category); - const recipeIds = rawRecipes.map((r) => r.id); - socket.emit("player:recipes_data", { category, recipeIds }); - } catch (err) { - console.error(err.message); - } - }); - - socket.on("player:craft_item", async ({ recipeId }) => { - try { - if (craftManager.getExistingCraft(userId)) { - return socket.emit("error", { message: "Already crafting" }); - } - - const recipe = datapackLoader.getRecipe(recipeId); - if (!recipe) return socket.emit("error", { message: "Recipe not found" }); - - for (const ing of recipe.inputs) { - const itemId = Object.keys(ing)[0]; - const quantity = ing[itemId]; - const invItem = await Inventory.findOne({ - where: { playerId: userId, itemId: itemId }, - }); - - if (!invItem || invItem.quantity < quantity) { - return socket.emit("error", { message: `Not enough resources` }); - } - } - - for (const ing of recipe.inputs) { - const itemId = Object.keys(ing)[0]; - const quantity = ing[itemId]; - const invItem = await Inventory.findOne({ - where: { playerId: userId, itemId: itemId }, - }); - - if (invItem.quantity === quantity) { - await invItem.destroy(); - } else { - await invItem.decrement("quantity", { by: quantity }); - } - } - - const result = await craftManager.startCraft(userId, recipeId, socket); - - if (result.error) { - return socket.emit("error", { message: result.error }); - } - - socket.emit("player:craft_started", result); - socket.emit("player:get_inventory"); - } catch (err) { - console.error(err.message); - socket.emit("error", { message: "Internal Crafting Error" }); - } - }); - - sendStatus(); -}; diff --git a/game-server/src/sockets/handlers/dungeonHandler.js b/game-server/src/sockets/handlers/dungeonHandler.js deleted file mode 100644 index 6126d75..0000000 --- a/game-server/src/sockets/handlers/dungeonHandler.js +++ /dev/null @@ -1,121 +0,0 @@ -const { Player, Inventory } = require("../../models"); -const DatapackLoader = require("../../game/DatapackLoader"); -const dungeonManager = require("../../game/DungeonManager"); - -module.exports = (io, socket) => { - const userId = socket.user?.id; - - socket.on("dungeon:start", async ({ dungeonId }) => { - try { - if (!userId) return; - const dungeon = DatapackLoader.getDungeon(dungeonId); - const player = await Player.findByPk(userId); - const energyCost = dungeon?.meta?.energyCost || 0; - - if (!dungeon) - return socket.emit("error", { message: "Dungeon not found" }); - if (player.energy < energyCost) - return socket.emit("error", { message: "Insufficient energy" }); - - await player.decrement("energy", { by: energyCost }); - const startData = await dungeonManager.startDungeon(userId, dungeonId); - socket.emit("dungeon:started", { - dungeonId: dungeon.id, - room: startData.config, - hostiles: startData.hostiles, - battle: startData.battle, - roomIndex: startData.roomIndex, - totalRooms: startData.totalRooms, - remainingEnergy: player.energy - energyCost, - }); - } catch (err) { - console.log(err); - socket.emit("error", { message: "Deployment failure" }); - } - }); - - socket.on("dungeon:combat_action", async ({ targetInstanceId }) => { - try { - if (!userId) return; - const result = dungeonManager.processCombatAction( - userId, - targetInstanceId, - ); - if (!result) return; - - socket.emit("dungeon:battle_update", { - battle: result.battle, - log: result.log, - status: result.status, - }); - - if (result.status === "defeat") { - dungeonManager.leaveDungeon(userId); - socket.emit("dungeon:failed", { message: "Neural link severed." }); - } - } catch (err) { - socket.emit("error", { message: "Synchronization error" }); - } - }); - - socket.on("dungeon:next_room", async () => { - try { - if (!userId) return; - const nextRoom = await dungeonManager.moveToNextRoom(userId); - if (!nextRoom) - return socket.emit("error", { message: "Navigation error" }); - - if (nextRoom.status === "completed") { - await finalizeDungeon(socket, nextRoom.rewards); - } else { - socket.emit("dungeon:room_update", nextRoom); - } - } catch (err) { - socket.emit("error", { message: "Navigation error" }); - } - }); - - socket.on("dungeon:leave", () => { - if (userId) dungeonManager.leaveDungeon(userId); - }); -}; - -async function finalizeDungeon(socket, sessionRewards) { - const userId = socket.user.id; - try { - const player = await Player.findByPk(userId); - - if (sessionRewards.credits > 0) - await player.increment("credits", { by: sessionRewards.credits }); - if (sessionRewards.xp > 0) - await player.increment("experience", { by: sessionRewards.xp }); - - if (sessionRewards.items.length > 0) { - const consolidated = sessionRewards.items.reduce((acc, curr) => { - acc[curr.id] = (acc[curr.id] || 0) + curr.count; - return acc; - }, {}); - - for (const [itemId, totalCount] of Object.entries(consolidated)) { - const [invItem] = await Inventory.findOrCreate({ - where: { playerId: userId, itemId: itemId }, - defaults: { quantity: 0 }, - }); - await invItem.increment("quantity", { by: totalCount }); - } - - // Оновлюємо масив для фронтенда, щоб не було дублікатів у списку - sessionRewards.items = Object.entries(consolidated).map( - ([id, count]) => ({ id, count }), - ); - } - - console.log("FINAL REWARDS SAVED:", sessionRewards); - socket.emit("dungeon:completed", { rewards: sessionRewards }); - } catch (err) { - console.error(err); - socket.emit("error", { message: "Failed to save rewards" }); - } finally { - dungeonManager.leaveDungeon(userId); - } -} diff --git a/game-server/src/sockets/handlers/inventoryHandler.js b/game-server/src/sockets/handlers/inventoryHandler.js deleted file mode 100644 index 1c4fc0f..0000000 --- a/game-server/src/sockets/handlers/inventoryHandler.js +++ /dev/null @@ -1,47 +0,0 @@ -const inventoryManager = require("../../game/InventoryManager"); -const sessionManager = require("../../game/SessionManager"); - -module.exports = (io, socket) => { - const userId = socket.user?.id; - if (!userId) return; - - socket.on("player:get_inventory", async () => { - const items = await inventoryManager.getInventory(userId); - socket.emit("player:inventory_data", items); - }); - - socket.on("player:get_equipment", async () => { - const equipment = await inventoryManager.getEquipment(userId); - socket.emit("player:equipment_data", equipment); - }); - - socket.on("player:equip_item", async ({ itemId, slot }) => { - try { - const itemInfo = await inventoryManager.equipItem(userId, itemId, slot); - sessionManager.updateEquipment(socket.id, slot, itemId); - socket.emit("player:item_equipped", { slot, itemId }); - socket.broadcast.emit("player:visible_changed", { - playerId: userId, - slot, - texturePath: itemInfo.texture, - }); - } catch (err) { - socket.emit("error", { message: err.message }); - } - }); - - socket.on("player:unequip_item", async ({ slot }) => { - try { - await inventoryManager.unequipItem(userId, slot); - sessionManager.updateEquipment(socket.id, slot, null); - socket.emit("player:item_unequipped", { slot }); - socket.broadcast.emit("player:visible_changed", { - playerId: userId, - slot, - texturePath: null, - }); - } catch (err) { - socket.emit("error", { message: "UNEQUIP_FAILED" }); - } - }); -}; diff --git a/game-server/src/sockets/handlers/notificationHandler.js b/game-server/src/sockets/handlers/notificationHandler.js deleted file mode 100644 index d1d190f..0000000 --- a/game-server/src/sockets/handlers/notificationHandler.js +++ /dev/null @@ -1,51 +0,0 @@ -const Notification = require("../../models/Notification"); - -module.exports = (io, socket) => { - socket.on("notifications:get_all", async () => { - try { - const list = await Notification.findAll({ - where: { playerId: socket.user.id }, - order: [["createdAt", "DESC"]], - limit: 50, - }); - - socket.emit("notifications:list", list); - - const unreadCount = list.filter((n) => !n.isRead).length; - socket.emit("notifications:unread_count", unreadCount); - } catch (e) { - console.error("Fetch notifications error:", e); - } - }); - - socket.on("notification:read", async ({ id }) => { - try { - await Notification.update( - { isRead: true }, - { where: { id, playerId: socket.user.id } }, - ); - - const unreadCount = await Notification.count({ - where: { playerId: socket.user.id, isRead: false }, - }); - socket.emit("notifications:unread_count", unreadCount); - } catch (e) { - console.error("Read notification error:", e); - } - }); - - socket.on("notification:dismiss", async ({ id }) => { - try { - await Notification.destroy({ - where: { id, playerId: socket.user.id }, - }); - - const unreadCount = await Notification.count({ - where: { playerId: socket.user.id, isRead: false }, - }); - socket.emit("notifications:unread_count", unreadCount); - } catch (e) { - console.error("Dismiss notification error:", e); - } - }); -}; diff --git a/game-server/src/sockets/handlers/questsHandler.js b/game-server/src/sockets/handlers/questsHandler.js deleted file mode 100644 index e57fc46..0000000 --- a/game-server/src/sockets/handlers/questsHandler.js +++ /dev/null @@ -1,89 +0,0 @@ -const questsManager = require("../../game/QuestsManager"); -const DatapackLoader = require("../../game/DatapackLoader"); -const { PlayerQuest } = require("../../models"); - -module.exports = (io, socket) => { - const playerId = socket.user?.id; - - socket.on("quest:get_list", async () => { - if (!playerId) return; - - try { - const autoQuests = DatapackLoader.getAutoStartQuests(); - const existingQuests = await PlayerQuest.findAll({ - where: { playerId }, - attributes: ["questId"], - raw: true, - }); - - const existingIds = existingQuests.map((q) => q.questId); - const missingQuests = autoQuests.filter( - (aq) => !existingIds.includes(aq.id), - ); - - if (missingQuests.length > 0) { - const toCreate = missingQuests.map((aq) => ({ - playerId, - questId: aq.id, - status: "active", - progress: aq.objectives.map((obj) => ({ ...obj, currentAmount: 0 })), - })); - - await PlayerQuest.bulkCreate(toCreate, { ignoreDuplicates: true }); - } - - const all = await PlayerQuest.findAll({ - where: { playerId }, - order: [["updatedAt", "DESC"]], - }); - - socket.emit( - "quest:list_data", - all.map((q) => ({ - id: q.questId, - status: q.status, - objectives: q.progress, - rewards: DatapackLoader.getQuest(q.questId)?.rewards, - })), - ); - } catch (err) { - console.error("Quest sync error:", err); - } - }); - - socket.on("quest:claim_reward", async ({ questId }) => { - try { - const result = await questsManager.claimRewards(playerId, questId); - - socket.emit("player:credits_update", { - totalCredits: result.newTotalCredits, - }); - - socket.emit("quest:reward_claimed", { - questId, - rewards: result.rewards, - }); - - const all = await PlayerQuest.findAll({ - where: { playerId }, - order: [["updatedAt", "DESC"]], - }); - - socket.emit( - "quest:list_data", - all.map((q) => ({ - id: q.questId, - status: q.status, - objectives: q.progress, - rewards: DatapackLoader.getQuest(q.questId)?.rewards, - })), - ); - } catch (err) { - const msg = - err.message === "QUEST_NOT_READY_OR_CLAIMED" - ? "Reward already claimed or objective not met." - : "Failed to claim reward."; - socket.emit("error", { message: msg }); - } - }); -}; diff --git a/game-server/src/sockets/handlers/socialHandler.js b/game-server/src/sockets/handlers/socialHandler.js deleted file mode 100644 index f0eca54..0000000 --- a/game-server/src/sockets/handlers/socialHandler.js +++ /dev/null @@ -1,48 +0,0 @@ -const socialManager = require("../../game/SocialManager"); - -module.exports = (io, socket) => { - if (!socialManager.io) socialManager.init(io); - - socket.on("player:search", async ({ query }) => { - try { - const players = await socialManager.searchPlayers(query, socket.user.id); - socket.emit("player:search_results", players); - } catch (e) { - console.error(e); - } - }); - - socket.on("friend:add", async ({ friendId }) => { - try { - await socialManager.sendFriendRequest(socket.user, friendId); - } catch (e) { - socket.emit("error", { message: "FAILED_TO_SEND_REQUEST" }); - } - }); - - socket.on("friend:remove", async ({ friendId }) => { - try { - await socialManager.removeFriend(socket.user.id, friendId); - } catch (e) { - console.error(e); - socket.emit("error", { message: "FAILED_TO_REMOVE_FRIEND" }); - } - }); - socket.on("friend:accept", async ({ friendId, id }) => { - try { - await socialManager.acceptFriendRequest(socket.user.id, friendId, id); - } catch (e) { - console.error(e); - socket.emit("error", { message: "FAILED_TO_ACCEPT_FRIEND" }); - } - }); - - socket.on("friend:get_list", async () => { - try { - const list = await socialManager.getFriendList(socket.user.id); - socket.emit("friend:list", list); - } catch (e) { - console.error(e); - } - }); -}; diff --git a/game-server/src/sockets/middleware/authMiddleware.js b/game-server/src/sockets/middleware/authMiddleware.js deleted file mode 100644 index bc55c6e..0000000 --- a/game-server/src/sockets/middleware/authMiddleware.js +++ /dev/null @@ -1,20 +0,0 @@ -const jwt = require("jsonwebtoken"); - -const socketAuth = (socket, next) => { - const token = socket.handshake.auth.token; - const username = socket.handshake.auth.username; - - if (!token || !username) { - return next(new Error("Authentication error: No token provided")); - } - - try { - const decoded = jwt.verify(token, process.env.JWT_SECRET || "secret_key"); - socket.user = { username, ...decoded }; - next(); - } catch (err) { - next(new Error("Authentication error: Invalid token")); - } -}; - -module.exports = socketAuth; diff --git a/game-server/src/sockets/socket.js b/game-server/src/sockets/socket.js deleted file mode 100644 index df6804b..0000000 --- a/game-server/src/sockets/socket.js +++ /dev/null @@ -1,28 +0,0 @@ -const socketAuth = require("./middleware/authMiddleware"); -const connectionHandler = require("./handlers/connectionHandler"); -const inventoryHandler = require("./handlers/inventoryHandler"); -const craftingHandler = require("./handlers/craftingHandler"); -const adminHandler = require("./handlers/adminHandler"); -const dungeonHandler = require("./handlers/dungeonHandler"); -const chatHandler = require("./handlers/chatHandler"); -const notificationHandler = require("./handlers/notificationHandler"); -const socialHandler = require("./handlers/socialHandler"); -const questsHandler = require("./handlers/questsHandler"); - -const initSockets = (io) => { - io.use(socketAuth); - - io.on("connection", (socket) => { - connectionHandler(io, socket); - inventoryHandler(io, socket); - craftingHandler(io, socket); - adminHandler(io, socket); - dungeonHandler(io, socket); - chatHandler(io, socket); - socialHandler(io, socket); - notificationHandler(io, socket); - questsHandler(io, socket); - }); -}; - -module.exports = initSockets; diff --git a/client/index.html b/index.html similarity index 100% rename from client/index.html rename to index.html diff --git a/package.json b/package.json index f075989..85d51c2 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,29 @@ { - "name": "gso-project-manager", - "version": "1.0.0", + "name": "client", + "private": true, + "version": "0.0.0", + "type": "module", "scripts": { - "install-all": "cd api && npm install && cd ../game-server && npm install && cd ../client && npm install", - "dev": "npx concurrently \"npm run dev-api\" \"npm run dev-server\" \"npm run dev-client\"", - "dev-api": "cd api && npm run start", - "dev-server": "cd game-server && npm run start", - "dev-server-extras": "npx concurrently \"npm run dev-server-extra-proxima-centauri\" \"npm run dev-server-extra-ran\" \"npm run dev-server-extra-sol\" \"npm run dev-server-extra-tau-ceti\"", - "dev-server-extra-proxima-centauri": "cd game-server-proxima-centauri && npm run start", - "dev-server-extra-ran": "cd game-server-ran && npm run start", - "dev-server-extra-sol": "cd game-server-sol && npm run start", - "dev-server-extra-tau-ceti": "cd game-server-tau-ceti && npm run start", - "dev-client": "cd client && npm run dev" + "dev": "vite --host 0.0.0.0", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" }, "dependencies": { - "concurrently": "^8.2.2" + "axios": "^1.13.6", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "socket.io-client": "^4.8.3" + }, + "devDependencies": { + "@eslint/js": "^9.39.1", + "@types/react": "^19.2.5", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^5.1.1", + "eslint": "^9.39.1", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "vite": "^7.2.4" } } diff --git a/client/public/vite.svg b/public/vite.svg similarity index 100% rename from client/public/vite.svg rename to public/vite.svg diff --git a/readme.md b/readme.md deleted file mode 100644 index 49a5cf5..0000000 --- a/readme.md +++ /dev/null @@ -1,50 +0,0 @@ -# GSO Project - -Multiplayer space-themed game built with React, Socket.io. - -## ⚠️ Requirements - -- **Node.js**: Version **22.x** or higher is strictly required (recommended for ESM support and optimal performance). -- **npm**: Included with Node.js. - -> **Note**: You can check your currently installed version by running `node -v` in your terminal. - -## 🚀 Getting Started - -### 1. Unified Dependencies Installation - -To automatically install all dependencies in the correct sub-projects (`api`, `game-server`, `client`) at once, run: - -### 1. API Server (api/.env) - -```env -MONGODB_URI=mongodb://localhost:27017 -PORT=PORT -GAME_SERVER_SECRET=game_server_pass_123 -JWT_SECRET=secret_123 -``` - -### 2. GameServer (game-server/.env) - -```env -PORT=5003 -HOST=http://localhost:5003 -API_SERVER_URL=http://localhost:3000/api -SERVER_NAME=Alpha-Centauri-3 -SERVER_SECRET=game_server_pass_123 -JWT_SECRET=secret_123 -DESCRIPTION="Welcome to Alpha-Centauri-3, a high-tech frontier station drifting on the edge of the known galaxy." -REGION=UK -channel_binding=require -``` - -### 3. Client (client/.env) - -```env -VITE_API_URL=http://localhost:3000/api -``` - -```bash -npm run install-all -npm run dev -``` diff --git a/client/src/App.jsx b/src/App.jsx similarity index 100% rename from client/src/App.jsx rename to src/App.jsx diff --git a/client/src/assets/react.svg b/src/assets/react.svg similarity index 100% rename from client/src/assets/react.svg rename to src/assets/react.svg diff --git a/client/src/components/Console/Console.css b/src/components/Console/Console.css similarity index 100% rename from client/src/components/Console/Console.css rename to src/components/Console/Console.css diff --git a/client/src/components/Console/Console.jsx b/src/components/Console/Console.jsx similarity index 100% rename from client/src/components/Console/Console.jsx rename to src/components/Console/Console.jsx diff --git a/client/src/components/Meteor/MeteorRegion.css b/src/components/Meteor/MeteorRegion.css similarity index 100% rename from client/src/components/Meteor/MeteorRegion.css rename to src/components/Meteor/MeteorRegion.css diff --git a/client/src/components/Meteor/MeteorRegion.jsx b/src/components/Meteor/MeteorRegion.jsx similarity index 100% rename from client/src/components/Meteor/MeteorRegion.jsx rename to src/components/Meteor/MeteorRegion.jsx diff --git a/client/src/components/ui/Button.jsx b/src/components/ui/Button.jsx similarity index 100% rename from client/src/components/ui/Button.jsx rename to src/components/ui/Button.jsx diff --git a/client/src/components/ui/Card.jsx b/src/components/ui/Card.jsx similarity index 100% rename from client/src/components/ui/Card.jsx rename to src/components/ui/Card.jsx diff --git a/client/src/components/ui/Input.jsx b/src/components/ui/Input.jsx similarity index 100% rename from client/src/components/ui/Input.jsx rename to src/components/ui/Input.jsx diff --git a/client/src/components/ui/styles/Button.css b/src/components/ui/styles/Button.css similarity index 100% rename from client/src/components/ui/styles/Button.css rename to src/components/ui/styles/Button.css diff --git a/client/src/config/api.js b/src/config/api.js similarity index 100% rename from client/src/config/api.js rename to src/config/api.js diff --git a/client/src/context/AuthContext.jsx b/src/context/AuthContext.jsx similarity index 100% rename from client/src/context/AuthContext.jsx rename to src/context/AuthContext.jsx diff --git a/client/src/context/SocketContext.jsx b/src/context/SocketContext.jsx similarity index 100% rename from client/src/context/SocketContext.jsx rename to src/context/SocketContext.jsx diff --git a/client/src/hooks/useAuth.js b/src/hooks/useAuth.js similarity index 100% rename from client/src/hooks/useAuth.js rename to src/hooks/useAuth.js diff --git a/client/src/hooks/useSocket.js b/src/hooks/useSocket.js similarity index 100% rename from client/src/hooks/useSocket.js rename to src/hooks/useSocket.js diff --git a/client/src/main.jsx b/src/main.jsx similarity index 100% rename from client/src/main.jsx rename to src/main.jsx diff --git a/client/src/services/ConsoleManager.js b/src/services/ConsoleManager.js similarity index 100% rename from client/src/services/ConsoleManager.js rename to src/services/ConsoleManager.js diff --git a/client/src/services/GameDataManager.js b/src/services/GameDataManager.js similarity index 100% rename from client/src/services/GameDataManager.js rename to src/services/GameDataManager.js diff --git a/client/src/services/PlayerManager.js b/src/services/PlayerManager.js similarity index 100% rename from client/src/services/PlayerManager.js rename to src/services/PlayerManager.js diff --git a/client/src/services/socket.js b/src/services/socket.js similarity index 100% rename from client/src/services/socket.js rename to src/services/socket.js diff --git a/client/src/styles/App.css b/src/styles/App.css similarity index 100% rename from client/src/styles/App.css rename to src/styles/App.css diff --git a/client/src/styles/components.css b/src/styles/components.css similarity index 100% rename from client/src/styles/components.css rename to src/styles/components.css diff --git a/client/src/styles/index.css b/src/styles/index.css similarity index 100% rename from client/src/styles/index.css rename to src/styles/index.css diff --git a/client/src/styles/main.css b/src/styles/main.css similarity index 100% rename from client/src/styles/main.css rename to src/styles/main.css diff --git a/client/src/styles/tables.css b/src/styles/tables.css similarity index 100% rename from client/src/styles/tables.css rename to src/styles/tables.css diff --git a/client/src/views/GameHUD.jsx b/src/views/GameHUD.jsx similarity index 100% rename from client/src/views/GameHUD.jsx rename to src/views/GameHUD.jsx diff --git a/client/src/views/GameInterface/GameInterface.css b/src/views/GameInterface/GameInterface.css similarity index 100% rename from client/src/views/GameInterface/GameInterface.css rename to src/views/GameInterface/GameInterface.css diff --git a/client/src/views/GameInterface/GameInterface.jsx b/src/views/GameInterface/GameInterface.jsx similarity index 100% rename from client/src/views/GameInterface/GameInterface.jsx rename to src/views/GameInterface/GameInterface.jsx diff --git a/client/src/views/GameInterface/components/CategorySelector.css b/src/views/GameInterface/components/CategorySelector.css similarity index 100% rename from client/src/views/GameInterface/components/CategorySelector.css rename to src/views/GameInterface/components/CategorySelector.css diff --git a/client/src/views/GameInterface/components/CategorySelector.jsx b/src/views/GameInterface/components/CategorySelector.jsx similarity index 100% rename from client/src/views/GameInterface/components/CategorySelector.jsx rename to src/views/GameInterface/components/CategorySelector.jsx diff --git a/client/src/views/GameInterface/components/DungeonScreen.css b/src/views/GameInterface/components/DungeonScreen.css similarity index 100% rename from client/src/views/GameInterface/components/DungeonScreen.css rename to src/views/GameInterface/components/DungeonScreen.css diff --git a/client/src/views/GameInterface/components/DungeonScreen.jsx b/src/views/GameInterface/components/DungeonScreen.jsx similarity index 100% rename from client/src/views/GameInterface/components/DungeonScreen.jsx rename to src/views/GameInterface/components/DungeonScreen.jsx diff --git a/client/src/views/GameInterface/components/GameHeader.css b/src/views/GameInterface/components/GameHeader.css similarity index 100% rename from client/src/views/GameInterface/components/GameHeader.css rename to src/views/GameInterface/components/GameHeader.css diff --git a/client/src/views/GameInterface/components/GameHeader.jsx b/src/views/GameInterface/components/GameHeader.jsx similarity index 100% rename from client/src/views/GameInterface/components/GameHeader.jsx rename to src/views/GameInterface/components/GameHeader.jsx diff --git a/client/src/views/GameInterface/components/Navigation.css b/src/views/GameInterface/components/Navigation.css similarity index 100% rename from client/src/views/GameInterface/components/Navigation.css rename to src/views/GameInterface/components/Navigation.css diff --git a/client/src/views/GameInterface/components/Navigation.jsx b/src/views/GameInterface/components/Navigation.jsx similarity index 100% rename from client/src/views/GameInterface/components/Navigation.jsx rename to src/views/GameInterface/components/Navigation.jsx diff --git a/client/src/views/GameInterface/components/SettingsModal.css b/src/views/GameInterface/components/SettingsModal.css similarity index 100% rename from client/src/views/GameInterface/components/SettingsModal.css rename to src/views/GameInterface/components/SettingsModal.css diff --git a/client/src/views/GameInterface/components/SettingsModal.jsx b/src/views/GameInterface/components/SettingsModal.jsx similarity index 100% rename from client/src/views/GameInterface/components/SettingsModal.jsx rename to src/views/GameInterface/components/SettingsModal.jsx diff --git a/client/src/views/GameInterface/tabs/BaseTab.jsx b/src/views/GameInterface/tabs/BaseTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/BaseTab.jsx rename to src/views/GameInterface/tabs/BaseTab.jsx diff --git a/client/src/views/GameInterface/tabs/ChatTab.jsx b/src/views/GameInterface/tabs/ChatTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/ChatTab.jsx rename to src/views/GameInterface/tabs/ChatTab.jsx diff --git a/client/src/views/GameInterface/tabs/CraftingTab.jsx b/src/views/GameInterface/tabs/CraftingTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/CraftingTab.jsx rename to src/views/GameInterface/tabs/CraftingTab.jsx diff --git a/client/src/views/GameInterface/tabs/DashboardTab.jsx b/src/views/GameInterface/tabs/DashboardTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/DashboardTab.jsx rename to src/views/GameInterface/tabs/DashboardTab.jsx diff --git a/client/src/views/GameInterface/tabs/DatapackTab.jsx b/src/views/GameInterface/tabs/DatapackTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/DatapackTab.jsx rename to src/views/GameInterface/tabs/DatapackTab.jsx diff --git a/client/src/views/GameInterface/tabs/DungeonsTab.jsx b/src/views/GameInterface/tabs/DungeonsTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/DungeonsTab.jsx rename to src/views/GameInterface/tabs/DungeonsTab.jsx diff --git a/client/src/views/GameInterface/tabs/InventoryTab.jsx b/src/views/GameInterface/tabs/InventoryTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/InventoryTab.jsx rename to src/views/GameInterface/tabs/InventoryTab.jsx diff --git a/client/src/views/GameInterface/tabs/NotificationTab.jsx b/src/views/GameInterface/tabs/NotificationTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/NotificationTab.jsx rename to src/views/GameInterface/tabs/NotificationTab.jsx diff --git a/client/src/views/GameInterface/tabs/QuestsTab.jsx b/src/views/GameInterface/tabs/QuestsTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/QuestsTab.jsx rename to src/views/GameInterface/tabs/QuestsTab.jsx diff --git a/client/src/views/GameInterface/tabs/ShopTab.jsx b/src/views/GameInterface/tabs/ShopTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/ShopTab.jsx rename to src/views/GameInterface/tabs/ShopTab.jsx diff --git a/client/src/views/GameInterface/tabs/SkillsTab.jsx b/src/views/GameInterface/tabs/SkillsTab.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/SkillsTab.jsx rename to src/views/GameInterface/tabs/SkillsTab.jsx diff --git a/client/src/views/GameInterface/tabs/components/CraftModal.css b/src/views/GameInterface/tabs/components/CraftModal.css similarity index 100% rename from client/src/views/GameInterface/tabs/components/CraftModal.css rename to src/views/GameInterface/tabs/components/CraftModal.css diff --git a/client/src/views/GameInterface/tabs/components/CraftModal.jsx b/src/views/GameInterface/tabs/components/CraftModal.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/components/CraftModal.jsx rename to src/views/GameInterface/tabs/components/CraftModal.jsx diff --git a/client/src/views/GameInterface/tabs/components/DatapackDetailsModal.css b/src/views/GameInterface/tabs/components/DatapackDetailsModal.css similarity index 100% rename from client/src/views/GameInterface/tabs/components/DatapackDetailsModal.css rename to src/views/GameInterface/tabs/components/DatapackDetailsModal.css diff --git a/client/src/views/GameInterface/tabs/components/DatapackDetailsModal.jsx b/src/views/GameInterface/tabs/components/DatapackDetailsModal.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/components/DatapackDetailsModal.jsx rename to src/views/GameInterface/tabs/components/DatapackDetailsModal.jsx diff --git a/client/src/views/GameInterface/tabs/components/DungeonFinish.css b/src/views/GameInterface/tabs/components/DungeonFinish.css similarity index 100% rename from client/src/views/GameInterface/tabs/components/DungeonFinish.css rename to src/views/GameInterface/tabs/components/DungeonFinish.css diff --git a/client/src/views/GameInterface/tabs/components/DungeonFinish.jsx b/src/views/GameInterface/tabs/components/DungeonFinish.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/components/DungeonFinish.jsx rename to src/views/GameInterface/tabs/components/DungeonFinish.jsx diff --git a/client/src/views/GameInterface/tabs/components/ItemModal.css b/src/views/GameInterface/tabs/components/ItemModal.css similarity index 100% rename from client/src/views/GameInterface/tabs/components/ItemModal.css rename to src/views/GameInterface/tabs/components/ItemModal.css diff --git a/client/src/views/GameInterface/tabs/components/ItemModal.jsx b/src/views/GameInterface/tabs/components/ItemModal.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/components/ItemModal.jsx rename to src/views/GameInterface/tabs/components/ItemModal.jsx diff --git a/client/src/views/GameInterface/tabs/components/SkillsCard.css b/src/views/GameInterface/tabs/components/SkillsCard.css similarity index 100% rename from client/src/views/GameInterface/tabs/components/SkillsCard.css rename to src/views/GameInterface/tabs/components/SkillsCard.css diff --git a/client/src/views/GameInterface/tabs/components/SkillsCard.jsx b/src/views/GameInterface/tabs/components/SkillsCard.jsx similarity index 100% rename from client/src/views/GameInterface/tabs/components/SkillsCard.jsx rename to src/views/GameInterface/tabs/components/SkillsCard.jsx diff --git a/client/src/views/GameInterface/tabs/styles/BaseTab.css b/src/views/GameInterface/tabs/styles/BaseTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/BaseTab.css rename to src/views/GameInterface/tabs/styles/BaseTab.css diff --git a/client/src/views/GameInterface/tabs/styles/ChatTab.css b/src/views/GameInterface/tabs/styles/ChatTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/ChatTab.css rename to src/views/GameInterface/tabs/styles/ChatTab.css diff --git a/client/src/views/GameInterface/tabs/styles/CraftingTab.css b/src/views/GameInterface/tabs/styles/CraftingTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/CraftingTab.css rename to src/views/GameInterface/tabs/styles/CraftingTab.css diff --git a/client/src/views/GameInterface/tabs/styles/DashboardTab.css b/src/views/GameInterface/tabs/styles/DashboardTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/DashboardTab.css rename to src/views/GameInterface/tabs/styles/DashboardTab.css diff --git a/client/src/views/GameInterface/tabs/styles/DatapackTab.css b/src/views/GameInterface/tabs/styles/DatapackTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/DatapackTab.css rename to src/views/GameInterface/tabs/styles/DatapackTab.css diff --git a/client/src/views/GameInterface/tabs/styles/DungeonsTab.css b/src/views/GameInterface/tabs/styles/DungeonsTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/DungeonsTab.css rename to src/views/GameInterface/tabs/styles/DungeonsTab.css diff --git a/client/src/views/GameInterface/tabs/styles/InventoryTab.css b/src/views/GameInterface/tabs/styles/InventoryTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/InventoryTab.css rename to src/views/GameInterface/tabs/styles/InventoryTab.css diff --git a/client/src/views/GameInterface/tabs/styles/NotificationsTab.css b/src/views/GameInterface/tabs/styles/NotificationsTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/NotificationsTab.css rename to src/views/GameInterface/tabs/styles/NotificationsTab.css diff --git a/client/src/views/GameInterface/tabs/styles/QuestsTab.css b/src/views/GameInterface/tabs/styles/QuestsTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/QuestsTab.css rename to src/views/GameInterface/tabs/styles/QuestsTab.css diff --git a/client/src/views/GameInterface/tabs/styles/ShopTab.css b/src/views/GameInterface/tabs/styles/ShopTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/ShopTab.css rename to src/views/GameInterface/tabs/styles/ShopTab.css diff --git a/client/src/views/GameInterface/tabs/styles/SkillsTab.css b/src/views/GameInterface/tabs/styles/SkillsTab.css similarity index 100% rename from client/src/views/GameInterface/tabs/styles/SkillsTab.css rename to src/views/GameInterface/tabs/styles/SkillsTab.css diff --git a/client/src/views/LoadingScreen.jsx b/src/views/LoadingScreen.jsx similarity index 100% rename from client/src/views/LoadingScreen.jsx rename to src/views/LoadingScreen.jsx diff --git a/client/src/views/LoadingScreen/LoadingScreen.css b/src/views/LoadingScreen/LoadingScreen.css similarity index 100% rename from client/src/views/LoadingScreen/LoadingScreen.css rename to src/views/LoadingScreen/LoadingScreen.css diff --git a/client/src/views/LoadingScreen/LoadingScreen.jsx b/src/views/LoadingScreen/LoadingScreen.jsx similarity index 100% rename from client/src/views/LoadingScreen/LoadingScreen.jsx rename to src/views/LoadingScreen/LoadingScreen.jsx diff --git a/client/src/views/MainMenu/MainMenu.css b/src/views/MainMenu/MainMenu.css similarity index 100% rename from client/src/views/MainMenu/MainMenu.css rename to src/views/MainMenu/MainMenu.css diff --git a/client/src/views/MainMenu/MainMenu.jsx b/src/views/MainMenu/MainMenu.jsx similarity index 100% rename from client/src/views/MainMenu/MainMenu.jsx rename to src/views/MainMenu/MainMenu.jsx diff --git a/client/src/views/MainMenu/sections/LoginSection.css b/src/views/MainMenu/sections/LoginSection.css similarity index 100% rename from client/src/views/MainMenu/sections/LoginSection.css rename to src/views/MainMenu/sections/LoginSection.css diff --git a/client/src/views/MainMenu/sections/LoginSection.jsx b/src/views/MainMenu/sections/LoginSection.jsx similarity index 100% rename from client/src/views/MainMenu/sections/LoginSection.jsx rename to src/views/MainMenu/sections/LoginSection.jsx diff --git a/client/src/views/MainMenu/sections/OptionsSection.css b/src/views/MainMenu/sections/OptionsSection.css similarity index 100% rename from client/src/views/MainMenu/sections/OptionsSection.css rename to src/views/MainMenu/sections/OptionsSection.css diff --git a/client/src/views/MainMenu/sections/OptionsSection.jsx b/src/views/MainMenu/sections/OptionsSection.jsx similarity index 100% rename from client/src/views/MainMenu/sections/OptionsSection.jsx rename to src/views/MainMenu/sections/OptionsSection.jsx diff --git a/client/src/views/MainMenu/sections/ServerConfirmSection.jsx b/src/views/MainMenu/sections/ServerConfirmSection.jsx similarity index 100% rename from client/src/views/MainMenu/sections/ServerConfirmSection.jsx rename to src/views/MainMenu/sections/ServerConfirmSection.jsx diff --git a/client/src/views/MainMenu/sections/ServerConfirmationSection.css b/src/views/MainMenu/sections/ServerConfirmationSection.css similarity index 100% rename from client/src/views/MainMenu/sections/ServerConfirmationSection.css rename to src/views/MainMenu/sections/ServerConfirmationSection.css diff --git a/client/src/views/MainMenu/sections/ServerSection.css b/src/views/MainMenu/sections/ServerSection.css similarity index 100% rename from client/src/views/MainMenu/sections/ServerSection.css rename to src/views/MainMenu/sections/ServerSection.css diff --git a/client/src/views/MainMenu/sections/ServerSection.jsx b/src/views/MainMenu/sections/ServerSection.jsx similarity index 100% rename from client/src/views/MainMenu/sections/ServerSection.jsx rename to src/views/MainMenu/sections/ServerSection.jsx diff --git a/test/assets/languages/en_us.json b/test/assets/languages/en_us.json deleted file mode 100644 index 3408664..0000000 --- a/test/assets/languages/en_us.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "_comment_Dungeons": "", - "dungeons.test.pirates_outpost": "Test Pirate Outpost", - "dungeons.test.pirates_outpost.desc": "A hidden supply station belonging to the Black Mark syndicate.", - - "_comment_Enemies": "", - "enemies.test.black_mark_heavy_cruiser": "Test Black Mark Heavy Cruiser", - "enemies.test.raider_frigate": "Test Raider Frigate", - "enemies.test.scout_drone": "Test Scout Drone", - - "_comment_Equipment": "", - "items.materials.test.backpack_basic": "Test Basic Backpack", - "items.materials.test.backpack_basic.desc": "Test Just description.", - - "_comment_Materials": "", - "items.materials.test.bio_pulp": "Test Bio Pulp", - "items.materials.test.bio_pulp.desc": "Test Description.", - "items.materials.test.ship_plating": "Test Ship Plating", - "items.materials.test.ship_plating.desc": "Test Just description.", - - "_comment_Recipes": "", - "recipes.category.test.alloys": "Test Alloys", - "recipes.category.test.circuits": "Test Circuits", - "recipes.category.test.food": "Test Food", - "recipes.category.test.hull_sections": "Test Hull Sections", - "recipes.category.test.hulls": "Test Hulls", - "recipes.category.test.organics": "Test Organics", - "recipes.category.test.smelting": "Test Smelting", - "recipes.category.test.spacesuit_parts": "Test Spacesuit Parts", - - "_comment_Shop": "", - "shop.category.test.bio": "Test Bio", - - "_comment_Skills": "", - "skills.category.test.combat": "Test Combat", - "skills.category.test.crafting": "Test Crafting", - "skills.category.test.crafting.alien_tech": "Test Alien Tech", - "skills.category.test.crafting.alien_tech.desc": "Test Unknown Mysterious Tech", - "skills.category.test.science": "Test Science" -} - diff --git a/test/assets/textures/armour/backpack/backpack_basic.png b/test/assets/textures/armour/backpack/backpack_basic.png deleted file mode 100644 index 154d725..0000000 Binary files a/test/assets/textures/armour/backpack/backpack_basic.png and /dev/null differ diff --git a/test/assets/textures/hullPlating/ship/ship_plating.png b/test/assets/textures/hullPlating/ship/ship_plating.png deleted file mode 100644 index 6b57949..0000000 Binary files a/test/assets/textures/hullPlating/ship/ship_plating.png and /dev/null differ diff --git a/test/assets/textures/materials/bio/bio_pulp.png b/test/assets/textures/materials/bio/bio_pulp.png deleted file mode 100644 index 264ac22..0000000 Binary files a/test/assets/textures/materials/bio/bio_pulp.png and /dev/null differ diff --git a/test/data/dungeons/pirates/pirates_outpost.json b/test/data/dungeons/pirates/pirates_outpost.json deleted file mode 100644 index 24f3c7e..0000000 --- a/test/data/dungeons/pirates/pirates_outpost.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "dungeon": { - "id": "test:pirate/pirate_outpost", - "displayName": "dungeons.test.pirates_outpost", - "description": "dungeons.test.pirates_outpost.desc", - "energyCost": 10, - "repeatable": true, - "rooms": [ - { "id": "test:pirate/pirate_patrol_room" }, - { "id": "test:pirate/pirate_supply_bay" }, - { "id": "test:pirate/pirate_ambush_zone" }, - { "id": "original:pirate/pirate_patrol_room" }, - { "id": "original:pirate/pirate_supply_bay" }, - { "id": "original:pirate/pirate_ambush_zone" }, - { "id": "test:pirate/pirate_boss_bridge" } - ] - } -} diff --git a/test/data/enemies/hostiles/pirates/black_mark_cruiser.json b/test/data/enemies/hostiles/pirates/black_mark_cruiser.json deleted file mode 100644 index 1decf0f..0000000 --- a/test/data/enemies/hostiles/pirates/black_mark_cruiser.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "hostile": { - "id": "test:pirates/black_mark_cruiser", - "displayName": "enemies.test.black_mark_heavy_cruiserr", - "meta": { - "health": 1050, - "defense": 5.0, - "damage": 18.0, - "criticalChance": 0.15, - "attackRate": 0.6 - } - } -} diff --git a/test/data/enemies/hostiles/pirates/raider_frigate.json b/test/data/enemies/hostiles/pirates/raider_frigate.json deleted file mode 100644 index c3fd768..0000000 --- a/test/data/enemies/hostiles/pirates/raider_frigate.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "hostile": { - "id": "test:pirates/raider_frigate", - "displayName": "enemies.test.raider_frigate", - "meta": { - "health": 100, - "defense": 1.5, - "damage": 6.5, - "criticalChance": 0.2, - "attackRate": 1.0 - } - } -} diff --git a/test/data/enemies/hostiles/pirates/scout_drone.json b/test/data/enemies/hostiles/pirates/scout_drone.json deleted file mode 100644 index 3575ab1..0000000 --- a/test/data/enemies/hostiles/pirates/scout_drone.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "hostile": { - "id": "test:pirates/scout_drone", - "displayName": "enemies.test.scout_drone", - "meta": { - "health": 50, - "defense": 0.2, - "damage": 1.8, - "criticalChance": 0.1, - "attackRate": 3.0 - } - } -} diff --git a/test/data/enemies/rooms/pirates/pirate_ambush_zone.json b/test/data/enemies/rooms/pirates/pirate_ambush_zone.json deleted file mode 100644 index 72b7126..0000000 --- a/test/data/enemies/rooms/pirates/pirate_ambush_zone.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "rooms": { - "id": "test:pirate_ambush_zone", - "hostiles": [ - "original:pirates/scout_drone", - "test:pirates/raider_frigate", - "original:pirates/raider_frigate" - ], - "gainXp": 25, - "credits": 400 - } -} diff --git a/test/data/enemies/rooms/pirates/pirate_boss_bridge.json b/test/data/enemies/rooms/pirates/pirate_boss_bridge.json deleted file mode 100644 index 54c053b..0000000 --- a/test/data/enemies/rooms/pirates/pirate_boss_bridge.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "rooms": { - "id": "test:pirate_boss_bridge", - "hostiles": ["test:pirates/black_mark_cruiser"], - "gainXp": 100, - "credits": 2500 - } -} diff --git a/test/data/enemies/rooms/pirates/pirate_patrol_room.json b/test/data/enemies/rooms/pirates/pirate_patrol_room.json deleted file mode 100644 index d60b9c2..0000000 --- a/test/data/enemies/rooms/pirates/pirate_patrol_room.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "rooms": { - "id": "test:pirate_patrol_room", - "hostiles": [ - "original:pirates/scout_drone", - "original:pirates/scout_drone" - ], - "gainXp": 8, - "credits": 120 - } -} diff --git a/test/data/enemies/rooms/pirates/pirate_supply_bay.json b/test/data/enemies/rooms/pirates/pirate_supply_bay.json deleted file mode 100644 index a8f1122..0000000 --- a/test/data/enemies/rooms/pirates/pirate_supply_bay.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "rooms": { - "id": "test:pirate_supply_bay", - "hostiles": [], - "gainXp": 5, - "credits": 800, - "description": "You found a hidden cargo container filled with stolen tech." - } -} diff --git a/test/data/items/armour/backpack/backpack_basic.json b/test/data/items/armour/backpack/backpack_basic.json deleted file mode 100644 index 0ff1e40..0000000 --- a/test/data/items/armour/backpack/backpack_basic.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "armour": { - "id": "test:backpack_basic", - "displayName": "items.materials.test.backpack_basic", - "description": "items.materials.test.backpack_basic.desc", - "texture": "test/assets/textures/armour/backpack/backpack_basic.png", - "stats": { - "health": 190, - "resistance": 0.6, - "defenceRating": 0.5, - "reflectChance": 0.7 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "test:accessory", - "storeCategory": "test:bag" - } - } -} diff --git a/test/data/items/hullPlating/ship/ship_plating.json b/test/data/items/hullPlating/ship/ship_plating.json deleted file mode 100644 index 76d7197..0000000 --- a/test/data/items/hullPlating/ship/ship_plating.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "plating": { - "id": "test:ship_plating", - "displayName": "items.materials.test.ship_plating", - "description": "items.materials.test.ship_plating.desc", - "texture": "test/assets/textures/hullPlating/ship/ship_plating.png", - "stats": { - "health": 50, - "resistance": 0.6, - "defenceRating": 2.3, - "reflectChance": 5.3 - }, - "meta": { - "rarity": "common", - "equipmentSlot": "test:shipHull", - "storeCategory": "test:shipHull" - } - } -} diff --git a/test/data/items/materials/bio/bio_pulp.json b/test/data/items/materials/bio/bio_pulp.json deleted file mode 100644 index 84e7ce3..0000000 --- a/test/data/items/materials/bio/bio_pulp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "materials": { - "id": "test:bio_pulp", - "texture": "test/assets/textures/materials/bio/bio_pulp.png", - "displayName": "items.materials.test.bio_pulp", - "description": "items.materials.test.bio_pulp.desc", - "meta": { - "storeCategory": "test:bio" - } - } -} diff --git a/test/data/recipes/alloys/ablative_plating.json b/test/data/recipes/alloys/ablative_plating.json deleted file mode 100644 index f38ab04..0000000 --- a/test/data/recipes/alloys/ablative_plating.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "recipe": { - "id": "test:alloys_ablative_plating", - "displayName": "Ablative Plating", - "inputs": [ - { "original:ceramic_composite": 1 }, - { "original:carbon_ingot": 1 } - ], - "output": { - "original:ablative_plating": 1 - }, - "time_seconds": 40, - "requires": { - "original:alien_tech": 2 - } - }, - "craft": { - "type": "test:alloys", - "id": "alloys:alloys_ablative_plating" - } -} diff --git a/test/data/skills/crafting/alien_tech.json b/test/data/skills/crafting/alien_tech.json deleted file mode 100644 index 1b17b96..0000000 --- a/test/data/skills/crafting/alien_tech.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "skills": { - "id": "test:alien_tech", - "displayName": "skills.category.test.crafting.alien_tech", - "description": "skills.category.test.crafting.alien_tech.desc", - "meta": { - "category": "crafting", - "topLevel": 10, - "math": { - "start": 500, - "input": 1.7 - } - } - } -} diff --git a/test/manifest.json b/test/manifest.json deleted file mode 100644 index 13d0c20..0000000 --- a/test/manifest.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "test", - "version": "0.0.1", - "recipes": { - "categories": { - "test:alloys": { - "displayName": "recipes.category.test.alloys" - }, - "test:circuits": { - "displayName": "recipes.category.test.circuits" - }, - "test:food": { - "displayName": "recipes.category.test.food" - }, - "test:hull_sections": { - "displayName": "recipes.category.test.hull_sections" - }, - "test:hulls": { - "displayName": "recipes.category.test.hulls" - }, - "test:organics": { - "displayName": "recipes.category.test.organics" - }, - "test:smelting": { - "displayName": "recipes.category.test.smelting" - }, - "test:spacesuit_parts": { - "displayName": "recipes.category.test.spacesuit_parts" - } - } - }, - "shop": { - "categories": { - "test:bio": { - "displayName": "shop.category.test.bio" - } - } - }, - "skills": { - "categories": { - "test:combat": { - "displayName": "skills.category.test.combat" - }, - "test:crafting": { - "displayName": "skills.category.test.crafting" - }, - "test:science": { - "displayName": "skills.category.test.science" - } - } - } -} diff --git a/client/vite.config.js b/vite.config.js similarity index 100% rename from client/vite.config.js rename to vite.config.js