# 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 ```