Zum Einen würde ich das gar nicht mit Switches machen, sondern mit Variablen - so kannst du eine Variable nehmen und die Elementaffinitäten als Parameter dort speichern (1=Wasser, 2 =Feuer, etc.) und sparst dir so, für jedes Element einen Switch erstellen zu müssen, bzw. für jeden Gegner Switches für alle Elemente. So isses eine Variable pro Gegner und eine pro spielbarer Charakter, die du dann nur gegeneinander abgleichen musst.

Zum Anderen würde ich grundsätzlich erst einmal nur mit dem Grundschaden arbeiten und denn einfach je nach Fall Multiplizieren - bspw. bei einem sehr effektiven Angriff mit x2 etwa. Der Sinn dahinter, erst den erhöhten Schaden zu berechnen und dann daraus den Grundschaden bekommen zu wollen, erschließt sich mir nicht - aber ehrlich gesagt bin ich generell nicht ganz sicher ob ich verstehe, was deine Frage ist. Du legst den Schaden doch selbst fest, warum musst du ihn dann hinterher irgendwie herausfinden? (Und warum rechnest du am Angriffs-Wert herum, wenn es dir um einen Situationsabhängig Schaden geht?)