This repository has been archived on 2026-05-04. You can view files and clone it, but cannot push or open issues or pull requests.
Galaxy-Strike-Online/GameServer/routes/base.js
2026-01-24 21:39:56 -04:00

244 lines
4.9 KiB
JavaScript

const express = require('express');
const BaseSystem = require('../systems/BaseSystem');
const router = express.Router();
// Initialize base system
const baseSystem = new BaseSystem();
// Get player base
router.get('/player/:userId', async (req, res) => {
try {
const { userId } = req.params;
const base = baseSystem.getPlayerBase(userId);
res.json({
success: true,
base
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Get base statistics
router.get('/stats/:userId', async (req, res) => {
try {
const { userId } = req.params;
const stats = baseSystem.getBaseStatistics(userId);
res.json({
success: true,
stats
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Add experience to base
router.post('/experience/:userId', async (req, res) => {
try {
const { userId } = req.params;
const { amount } = req.body;
if (!amount || amount <= 0) {
return res.status(400).json({
success: false,
error: 'Valid experience amount required'
});
}
const result = baseSystem.addExperience(userId, amount);
res.json({
success: true,
result
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Build room
router.post('/build/:userId', async (req, res) => {
try {
const { userId } = req.params;
const { roomType, level = 1 } = req.body;
if (!roomType) {
return res.status(400).json({
success: false,
error: 'Room type required'
});
}
const result = baseSystem.buildRoom(userId, roomType, level);
res.json({
success: true,
result
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Upgrade room
router.post('/upgrade/:userId', async (req, res) => {
try {
const { userId } = req.params;
const { roomType } = req.body;
if (!roomType) {
return res.status(400).json({
success: false,
error: 'Room type required'
});
}
const result = baseSystem.upgradeRoom(userId, roomType);
res.json({
success: true,
result
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Demolish room
router.post('/demolish/:userId', async (req, res) => {
try {
const { userId } = req.params;
const { roomType } = req.body;
if (!roomType) {
return res.status(400).json({
success: false,
error: 'Room type required'
});
}
const result = baseSystem.demolishRoom(userId, roomType);
res.json({
success: true,
result
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Add decoration
router.post('/decoration/add/:userId', async (req, res) => {
try {
const { userId } = req.params;
const { decorationType } = req.body;
if (!decorationType) {
return res.status(400).json({
success: false,
error: 'Decoration type required'
});
}
const result = baseSystem.addDecoration(userId, decorationType);
res.json({
success: true,
result
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Remove decoration
router.post('/decoration/remove/:userId', async (req, res) => {
try {
const { userId } = req.params;
const { decorationIndex } = req.body;
if (decorationIndex === undefined || decorationIndex === null) {
return res.status(400).json({
success: false,
error: 'Decoration index required'
});
}
const result = baseSystem.removeDecoration(userId, decorationIndex);
res.json({
success: true,
result
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Get available rooms
router.get('/rooms/available/:userId', async (req, res) => {
try {
const { userId } = req.params;
const rooms = baseSystem.getAvailableRooms(userId);
res.json({
success: true,
rooms
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Get room upgrades
router.get('/rooms/upgrades/:userId', async (req, res) => {
try {
const { userId } = req.params;
const upgrades = baseSystem.getRoomUpgrades(userId);
res.json({
success: true,
upgrades
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
module.exports = router;