atk/matk + piso de daño 20%) centralizado en Stats_Manager. La ventana escala el mapa (0.75–1.50×) con el mapa anclado abajo. La Zona 1 tiene oleadas completamente balanceadas en waves_config.json con escalado de nivel corregido. Los mobs de 1-5 en adelante tienen multiplicadores de daño (×1.5→3.0) y defensa (×1.4→2.5). El Rey Ratón (mapa 1-10) tiene IA completa con ciclo avanzar/atacar/retroceder/invocar y fase furia al 30% HP. Los cofres escalan por mapa y oleada; los jefes finales X-10 sueltan cofre Glitch (LV6). Disponible build Alpha para Windows. Pendiente principal: animaciones de Maids, 6 enemigos placeholder, waves_config mundos 2–5, IA bosses 2–5 y equipo RPG completo en UI.
Maids Defenders.zip). También enlazada desde index.html.
CanvasLayer; redirige a Loading si se abre Main directo).maid_base.gd compensa la escala visual).Next_wave.png con fade in/out (WaveMessage).BANER_BOSS.png deslizándose, centrado en el mapa (BossBanner).Gestionado por Progression_Manager (autoload) y data/progression_config.json.
maid_pistola) en slot 0 de formación, sin menú de selección inicial.current_map), mapas desbloqueados y recompensas reclamadas se guardan.SeleccionMaidInicial_Menu existe en el proyecto pero no se usa en el flujo actual.progression_config.json (sección runes) → menú Progresión con árbol interactivo (RuneTreeCanvas, rune_icon_button.gd).nucleo_progresion) y ramas de daño, oro, vida, crítico, velocidad de ataque, revive, slots Maid y almacenes.obtener_motivo_bloqueo(); UI en Formación muestra “Comprar en Progresión” con tooltip de oro y nivel.progression.runes (nivel por runa) con migración desde upgrades_comprados; almacen por número (1–5).damage_min / damage_max en las 13 Maids; daño_base = redondeo del promedio del rango.resolver_dano_maid() aplica en orden base → bonus plano de arma → progresión % → estados → crítico → defensa enemigo.tipo_ataque: "melee"; se acerca, golpe directo sin Bala, cooldown; objetivos_melee preparado para multi-objetivo.bala_bazuka.gd con explosion_radius; daño en área.puede_moverse: false); Francotirador al borde izquierdo del mapa.estrella.tscn, anim Shuriken) en lugar de bala genérica.Formation_Manager, Formacion_Menu).Maid_Progression_Manager).Cada Maid tiene Nombre.png (combate), Nombre_Avatar.png (inventario) y Nombre_Icon.png (formación) en sprites/maids/. Datos en data/maids.json con nombre, kanji y significado.
| ID | Nombre | Tipo | Combate |
|---|---|---|---|
| maid_pistola | Akari 明莉 | Pistola | Distancia (starter) |
| maid_revolver | Rin 凛 | Revólver | Distancia |
| maid_escopeta | Ran 蘭 | Escopeta | Perdigones |
| maid_uzi | Hina 陽菜 | Uzi | Distancia |
| maid_minigun | Tsubaki 椿 | Minigun | Estacionaria |
| maid_rifle_asalto | Misaki 美咲 | Rifle de asalto | Distancia |
| maid_melee | Akane 茜 | Melee | Melee (sin anim) |
| maid_bazuka | Hibiki 響 | Bazuka | AOE explosivo |
| maid_ninja | Yoru 夜 | Ninja | Shuriken animado (estrella.tscn) |
| maid_francotirador | Shizuka 静香 | Francotirador | Estacionaria |
| maid_tanque | Mamori 守 | Tanque | Distancia (600 HP) |
| maid_arizaka | Chiyo 千代 | Arizaka | Distancia |
| maid_escopeta_especial | Kurumi 胡桃 | Escopeta esp. | Perdigones |
Animaciones de combate de Maids: pendientes (DISPARANDO / MOVIENDO). Excepción: proyectil shuriken de Yoru ya animado.
dex en mobs tempranos para conectar vs esquiva Maid; zombi con menos burst (str / growth reducidos).scenes/enemies/bosses/.Configurado en maps_config.json, waves_config.json y enemy_spawner.gd.
maps_config.calcular_nivel_cofre_progresivo en item_factory.gd); probabilidad escalada por mapa.is_boss_map: 1-10, 2-10, 3-10…): cofre Glitch (LV6) garantizado vía spawn_cofre_glitch_en_posicion().waves_config.json)daño_base 4).| Mapa | Mini Boss |
|---|---|
| 1-1 | Murciélago |
| 1-2 | Ratón Malulo |
| 1-3 | Slime |
| 1-4 | Sombra Veloz |
| 1-5 | Hongo Venenoso |
| 1-6 | Zombi Andrajoso |
| 1-7 | Mimic |
| 1-8 | Golem de Piedra |
| 1-9 | Caballero Oscuro |
Mundos 2–5: mismo patrón, configurable en JSON.
| Mapa | Boss | Escena |
|---|---|---|
| 1-10 | Rey Ratón | Rey_Raton.tscn |
| 2-10 | Señor del Polvo | Senor_del_Polvo.tscn |
| 3-10 | Reina Araña | Reina_Arana.tscn |
| 4-10 | Fantasma del Mayordomo | Fantasma_del_Mayordomo.tscn |
| 5-10 | Dragón de la Cocina | Dragon_de_la_Cocina.tscn |
Panel InventoryMenu (356×530 px, pixel art):
| Submenú | Función |
|---|---|
| Inventario | Grid 7×5, equipamiento de arma, stats Maid, oro |
| Formación | Slots con iconos; elegir Maid gratis; slots 2/3 vía Progresión (oro + nivel) |
| Progresión | 21 runas permanentes con Oro; árbol interactivo; requisitos de nivel en slots Maid |
| Almacén | 5 secciones (1 al inicio; resto en Progresión), tomar/guardar/ordenar/basura |
| Mansión | Zonas 1–5, mapas 1–10 con bloqueo por progresión |
| Ajustes / Mensajes / Ayuda / Salir / Stats | Submenús overlay |
menu_barra_superior.gd).user://save_game.json)Save_Manager.gd persiste:
current_map, desbloqueos, recompensas, maid_principal_id.progression.runes (nivel por runa); migración desde upgrades_comprados; almacen como dict {"1":[],…}.slots_maids_desbloqueados).| Archivo | Contenido |
|---|---|
| enemies.json | 9 enemigos normales |
| enemies_boss.json | 5 bosses principales |
| maps_config.json | 50 mapas, mini bosses, flags boss |
| waves_config.json | Oleadas Zona 1 (mapas 1-1 … 1-9) |
| progression_config.json | Recompensas por mapa (rebalanceadas 1-x), 21 runas con posiciones y nivel_principal en slots |
| maids.json | 13 Maids (nombre JP, stats, tipo ataque, escena, avatar) |
| items/*.json | 143 armas + 18 piezas de equipo |
| chests.json / rarities.json | Loot de cofres (7 rarezas; nivel por mapa/oleada; LV6 Glitch en jefes X-10) |
| Sistema | Archivo principal |
|---|---|
| Entrada | LoadingScreen.gd → Main.tscn |
| Progresión mapas + runas | progression_manager.gd, progression_config.json |
| Menú Progresión / árbol Runas | Progresion_Menu.tscn, rune_tree_canvas.gd, rune_icon_button.gd |
| Guardado | Save_Manager.gd |
| Maids | maids.json, Maid_Manager.gd |
| Formación | Formation_Manager.gd, Formacion_Menu.gd |
| Combate / oleadas | enemy_spawner.gd, maid_base.gd, waves_config.json |
| Stats y daño | Stats_Manager.gd (resolver_dano_maid, daño_base) |
| UI oleadas / jefe | WaveMessage.gd, BossBanner.gd |
| Cofres y loot | chest_manager.gd, item_factory.gd, chests.json |
| Ventana / input | window_controller.gd, main.gd, inventory_menu.gd |
| Proyectiles | bala.gd, perdigon.gd, bala_bazuka.gd, estrella.tscn (shuriken) |
| Mapas / Mansión | maps_config.json, mansion_menu.gd |
waves_config.json mundos 2–5 (misma estructura que Zona 1).damage_min–damage_max.slots_formacion, cost, SeleccionMaidInicial_Menu).resolver_dano_maid() ahora suma atk (físico) o matk (mágico) al daño de cada Maid. Piso de daño del 20% del daño bruto: nunca menos de ese umbral aunque la DEF enemiga sea enorme. Elimina el efecto “muro permanente” en mobs tánkeros de niveles altos.enemy_spawner.gd. Coeficientes: +0.40 lv/mapa, +0.25 lv/oleada. Enemigos en mapas tardíos escalan de nivel de forma visible.boss_rey_raton.gd implementa ciclo AVANZAR → ATACAR → RETROCEDER → INVOCAR. Invoca ratas (raton_malulo) con límite de vivas. Fase furia al 30% HP: sprite rosado, velocidad ×1.45, más ratas por invocación. Las ratas dan oro/EXP pero no cierran la oleada (es_invocado = true).atk/matk: ×1.5 base, +0.15/mapa, tope ×3.0. Se aplica en EnemyBase._aplicar_stats_secundarios_runtime().def/mdef: ×1.4 base, +0.12/mapa, tope ×2.5. Más suave que el de daño para no anular el piso del 20%.DEBUG_ENEMY := false en EnemyBase.gd controla todos los prints de frame.progression_config.json; menú Progresión con canvas interactivo (rune_tree_canvas.gd); guardado progression.runes con migración desde saves antiguos.maid_base.gd.estrella.tscn con animación Shuriken; MaidNinja.tscn usa estrella como proyectil.daño_base: pipeline unificado en Stats_Manager.gd; las 13 Maids con damage_min / damage_max en JSON.WaveMessage y BossBanner con sprites dedicados.