Okay, das soll dich jetzt nicht davon abhalten Switches zu benutzen, aber mir ist mittlerweile eingefallen wie es mit nur einer Variable pro Char funktionieren würde. Es ist in etwa so wie meine vorher beschriebene Methode, also das z.B. Gift die Einerstelle bekommt, Blind Zehner etc...
Also wenn kein Zustand vorliegt wäre es 0000000 und bei Blind und Gift eben 0000011. Somit könntest du aber nur 7 Zustände pro Char machen, außer du benutzt doch noch eine weitere Variable für zusätzliche Zustände.
Jedenfalls um dann herauszufinden ob ein Charakter an einem Zustand leidet packst du den Zustandswert in eine temporäre Variable und ziehst vom größten bis zum kleinsten Wert alles ab. Also du beginnst mit -1000000 und guckst dann, ob die Variable jetzt negativ ist. Wenn nicht, dann litt der Char unter dem 7.Zustand, ansonsten machst du wieder +1000000 um die entsprechende Stelle wieder auf 0 zu bringen. Und dann machst du halt weiter mit -100000, -10000 etc...und immer das selbe Spiel. So dürfte es auf jeden Fall funktionieren, aber ist natürlich wegen den Berechnungen länger als wenn du einfach einen Switch abfragst.