Tower_Sentry/README.md

118 lines
4.3 KiB
Markdown

# Tower Sentry
**Tower Sentry** es un juego de estrategia y dominio vertical en 3D isométrica desarrollado en Python con **Pygame**.
El juego combina elementos de gestión de recursos, exploración de terreno procedural y táctica posicional.
![](imagenes/tower_sentry-0.png)
Tu objetivo es escalar el relieve hasta la cima del mapa, neutralizar a los centinelas guardianes y conquistar la estructura principal.
---
## 📋 Descripción del Juego
El juego te sitúa en un mapa tridimensional generado de forma procedimental mediante algoritmos de ruido (*noise*). El mapa consta de montañas, colinas, valles y masas de agua.
En la cima más alta se encuentra la **Cima Principal**, custodiada por un **Centinela Principal**.
![](imagenes/tower_sentry-1.png)
A medida que avanzas de nivel, la dificultad aumenta **añadiendo centinelas secundarios** en picos adyacentes.
Para superar cada nivel, debes usar tu energía con cabeza, crear estructuras, clonarte y dominar las alturas.
![](imagenes/tower_sentry-2.png)
---
## 🎮 Mecánica y Lógica del Juego
### 1. Sistema de Dominio Vertical e Interacción
* **Regla de Altura:** Para poder **absorber** y neutralizar a un Centinela, debes estar posicionado a una altura **igual o superior** a la de su casilla.
* **Línea de Visión y Alcance:** Solo puedes interactuar con casillas que estén dentro de tu rango máximo de alcance (`12.0` casillas) y no se encuentren bloqueadas por crestas de terreno elevado.
### 2. Recursos y Entidades
* 🔵 **Jugador (Avatar):** Tu presencia física en el mapa. Puedes cambiar tu posición teletransportándote a la ubicación de tus clones o subiendo a bloques construidos.
* 🌲 **Árboles:** Elementos de recursos básicos dispersos por el terreno. Absorberlos no cuesta nada y te otorga **+1 de energía**.
* 🧱 **Bloques (+1.2m):** Puedes colocar bloques de elevación sobre casillas para ganar altura o superar obstáculos.
* **Coste de creación:** 2 de energía.
* **Absorción:** Recuperas +2 de energía.
* 💜 **Clones:** Cuerpos sintéticos que puedes proyectar en el mapa para usarlos como puntos de teletransporte táctico.
* **Coste de creación:** 3 de energía.
* **Absorción:** Recuperas +3 de energía.
* 👁️ **Centinelas:** Guardianes de las alturas que bloquean el avance.
* **Requisito para absorber:** Altura del jugador `>=` Altura del Centinela.
* **Recompensa por absorción:** **+10 de energía**.
### 3. Condición de Victoria y Progresión
Para completar un nivel y pasar al siguiente:
1. Elimina a **todos los Centinelas** del mapa (absorbiéndolos desde una altura superior o igual).
2. Coloca un **Clon** en la peana de la **Cima Principal** (donde comenzó el Centinela Principal).
3. **Teletranspórtate** a dicho clon mediante la tecla `ESPACIO`.
---
## 🕹️ Controles
| Tecla / Control | Acción |
| :--- | :--- |
| **Flecha Izquierda / Derecha** | Rotar la cámara alrededor del terreno isométrica. |
| **Ratón** | Apuntar e inspeccionar casillas dentro de la línea de visión. |
| **Tecla `A`** | **Absorber** el elemento seleccionado (Árbol, Clon, Bloque o Centinela). |
| **Tecla `B`** | **Crear Bloque** de elevación en la casilla seleccionada (*Coste: 2 Energía*). |
| **Tecla `C`** | **Crear Clon** en la casilla seleccionada (*Coste: 3 Energía*). |
| **Tecla `ESPACIO`** | **Teletransportarse** a un Clon seleccionado o subir a un Bloque. |
---
## 💻 Requisitos del Sistema
* **Python:** Versión `3.8` o superior.
* **Biblioteca:** `pygame` (versión 2.0.0 o superior).
---
## 🚀 Instalación y Ejecución
### 1. Clonar o descargar el proyecto
Obtén el archivo del juego (`tower_sentry.py` dentro de una carpeta local.
### 2. Crear y activar un entorno virtual (Recomendado en Debian/Linux)
En distribuciones recientes de Linux como Debian, es recomendable utilizar un entorno virtual de Python:
```bash
# Navegar al directorio del proyecto
cd Tower_Sentry
# Crear entorno virtual
python3 -m venv venv
# Activar entorno virtual
source venv/bin/activate
```
### 3. Instalar dependencias
Instala Pygame usando pip:
```bash
pip install pygame
```
O directamente instalando las librerias Python:
```bash
sudo apt update
sudo apt -y install python3 python3-pip python3-pygame
```
### 4. Ejecutar el juego
Lanza el juego ejecutando el script principal:
```bash
python3 tower_sentry.py
```