Das ist alles weitestgehend richtig. Zwei Fehler sind mir aufgefallen:
Code:
def inflicted?(state)
  return @actor.state?(state)
end
Die Methode state? erwartet die ID des States, nicht das State Objekt selbst. Und die RGSS ist an der Stelle leider sehr sparsam mit Fehlermeldungen. Also einfach state.id hinschreiben.

Code:
@status_window.refresh
Das soll vermutlich @state_window.refresh heißen.

Solche blöden Fehler findet man nur durch exzessives Einfügen von print Befehlen.