Tengo un personaje hechicero que tiene un amplio espectro de conjuros para luchar contra sus enemigos.
Evidentemente a ciertos enemigos les afectará más un hechizo que otro.
Por ejemplo, a un enemigo de madera no le hará tanto daño un ataque de hielo como uno de fuego.
¿Cuál sería la manera más eficaz de diseñar un sistema de tipos?
Por cierto, la cosa la voy a complicar, los enemigos tendrán su nivel, su ataque y su defensa, así que a ser posible también me gustaría saber cuál es la mejor manera de forjar esto.

Espero vuestras respuestas repletas de conocimiento que pagaré con otra rellena de agradecimiento :D
Me estoy montando un plataformas medieval bastante interesante. O eso creo.

Yo pondría todos los parámetros como variables locales de cada enemigo.

En el <Create> del enemigo pondría:

debilidad="fuego"

Y en el <Create> del ataque:

tipo="fuego"

Entonces en el objeto del fuego, cuando colisiona con el enemigo:

if other.debilidad=tipo { dolor=2; } else { dolor=1; }
other.vidas-=dolor;



Más adelante cuando hagas ataque, defensa, etc. y quieras hacer una fórmula para calcular el daño, teniendo en cuenta todas las variables puedes hacer algo tipo:

if other.debilidad=tipo { dolor=2; } else { dolor=1; }
other.vidas-=dolor/other.defensa;

Así cuanta más defensa tenga el enemigo menos daño le causará.
Recuerda declarar la variable defensa en el <Create> del enemigo.

Espero que te haya servido.
Un saludo!