Saltar al contenido principal

Sistema de tipos

El sistema de tipos es la columna vertebral de la estrategia de batalla en cualquier juego de captura de monstruos. MCE incluye una tabla de efectividad de tipos completamente configurable, soporte para tipos duales y herramientas de editor para personalizar las interacciones entre tipos.

Descripción general

Cada monstruo tiene uno o dos tipos. Cada movimiento tiene exactamente un tipo. Cuando un movimiento impacta a un objetivo, el juego calcula un multiplicador de efectividad de tipo basado en el tipo del movimiento vs. el/los tipo(s) del objetivo.

Los multiplicadores predeterminados son:

ResultadoMultiplicadorMensaje
Súper efectivo2.0x"¡Es súper efectivo!"
Poco efectivo0.5x"No es muy efectivo..."
Inmune0.0x"No afecta a [objetivo]..."
Neutral1.0x(sin mensaje)

Para monstruos de tipo dual, los multiplicadores se acumulan multiplicativamente. Un movimiento de Fuego contra un monstruo Planta/Hielo inflige 2.0 x 2.0 = 4.0x de daño.

Tabla de tipos predeterminada

MCE incluye 18 tipos que coinciden con el estándar del género de captura de monstruos:

Normal, Fire, Water, Grass, Electric, Ice, Fighting, Poison, Ground, Flying, Psychic, Bug, Rock, Ghost, Dragon, Dark, Steel, Fairy

Personalizar tipos

Estos 18 tipos son los predeterminados. Puede añadir, eliminar o renombrar tipos usando el Editor de Tabla de Tipos. Algunos juegos usan menos tipos (las primeras generaciones usaban 15), y algunos juegos originales crean tablas de tipos completamente personalizadas.

Tabla de efectividad de tipos

La tabla completa 18x18 se almacena como un ScriptableObject de base de datos. El método IMonsterDatabase.GetTypeEffectiveness() devuelve el multiplicador en tiempo de ejecución:

float multiplier = database.GetTypeEffectiveness(attackingType, defendingType);

Interacciones clave a recordar:

Tipo atacanteFuerte contra (2x)Débil contra (0.5x)Inmune (0x)
FireGrass, Ice, Bug, SteelFire, Water, Rock, Dragon--
WaterFire, Rock, GroundWater, Grass, Dragon--
GrassWater, Rock, GroundFire, Grass, Poison, Flying, Bug, Dragon, Steel--
ElectricWater, FlyingElectric, Grass, DragonGround
GroundFire, Electric, Poison, Rock, SteelGrass, BugFlying
GhostPsychic, GhostDarkNormal
Normal--Rock, SteelGhost

La tabla completa es visible y editable en el Editor de Tabla de Tipos.

Tipos duales

Cuando un monstruo tiene dos tipos, ambos tipos se verifican al recibir daño:

Multiplicador Final = Efectividad(tipo_movimiento vs tipo1) * Efectividad(tipo_movimiento vs tipo2)

Esto crea varios escenarios interesantes:

Tipo de movimientoTipos del objetivoCálculoResultado
IceDragon / Flying2.0 x 2.04.0x (doble súper efectivo)
ElectricWater / Ground2.0 x 0.00.0x (inmune, Ground absorbe)
FightingNormal / Ghost1.0 x 0.00.0x (inmune, Ghost absorbe)
WaterFire / Rock2.0 x 2.04.0x (doble súper efectivo)

STAB (Bonificación de Ataque del Mismo Tipo)

Cuando un monstruo usa un movimiento que coincide con uno de sus propios tipos, el movimiento obtiene una bonificación STAB de 1.5x. Esta bonificación se aplica después de la efectividad de tipo:

Daño Final = Daño Base * STAB * Efectividad de Tipo

Por ejemplo, un monstruo de tipo Agua usando un movimiento de Agua contra un objetivo de tipo Fuego:

Base * 1.5 (STAB) * 2.0 (súper efectivo) = 3.0x total

Uso del Editor de Tabla de Tipos

El Editor de Tabla de Tipos es una herramienta de cuadrícula interactiva para ver y modificar las interacciones de tipos:

MCE > Tools > Type Chart Editor

En el editor:

  1. Modo de vista -- La cuadrícula muestra la tabla completa NxN de tipos. Las filas son tipos atacantes, las columnas son tipos defensores.
  2. Codificación por colores -- Verde = súper efectivo (2x), Rojo = poco efectivo (0.5x), Negro = inmune (0x), Gris = neutral (1x).
  3. Modo de edición -- Haga clic en cualquier celda para cambiar entre valores de efectividad.
  4. Añadir tipo -- Añade una nueva fila y columna de tipo a la tabla.
  5. Eliminar tipo -- Elimina un tipo (advierte sobre monstruos y movimientos afectados).
Cambiar tipos afecta a todo

Modificar la tabla de tipos afecta todas las batallas de su juego. Pruebe exhaustivamente después de cualquier cambio. Añadir o eliminar tipos requiere actualizar las asignaciones de monstruos y movimientos.

Crear tipos personalizados

Si está construyendo un juego original, puede querer una tabla de tipos personalizada:

  1. Abra el Editor de Tabla de Tipos.
  2. Haga clic en Add Type y nombre su nuevo tipo (por ejemplo, Cosmic, Sound, Digital).
  3. Establezca los valores de efectividad para cada interacción con los tipos existentes.
  4. Cree monstruos y movimientos que usen su nuevo tipo.

Consejos de diseño para tipos personalizados

  • Equilibre ofensiva y defensivamente. Un tipo debe tener fortalezas y debilidades aproximadamente iguales.
  • Evite demasiadas inmunidades. Las inmunidades son poderosas y pueden crear jugabilidad frustrante si se abusa de ellas.
  • Mantenga el número total manejable. 15-20 tipos es el punto ideal. Más de 25 se vuelve difícil de memorizar para los jugadores.
  • Cree contrajuego interesante. Las mejores interacciones de tipos crean decisiones de riesgo/recompensa, no victorias automáticas.

Consultar tipos en código

Interfaz SDK (todos los niveles)

using OpenMon.MCE.SDK;

// Through the SDK interface
float effectiveness = engine.Database.GetTypeEffectiveness(
MonsterType.Fire,
MonsterType.Grass
);
// Returns 2.0

IReadOnlyList<MonsterType> allTypes = engine.Database.GetAllTypes();

Acceso directo (nivel Source)

Con acceso al código fuente, también puede trabajar con la tabla de tipos directamente a través de las clases MonsterDatabase y modificar los valores de efectividad en tiempo de ejecución para condiciones de batalla especiales.

Mejores prácticas

  1. Use el Editor de Tabla de Tipos para modificaciones; no edite el SO de la tabla directamente.
  2. Documente sus tipos personalizados si está creando un juego original. Los jugadores necesitan aprender las interacciones.
  3. Pruebe los casos extremos con tipos duales. Las debilidades 4x y las dobles inmunidades pueden sorprender a los jugadores.
  4. Considere la distribución de movimientos al equilibrar tipos. Un tipo que es defensivamente fuerte pero no tiene buenos movimientos disponibles es efectivamente débil.