Tails понял твою задумку. В общем у тебя просто используется json в котором забиты все рантаймовые состояния противника. Этот объект можно передавать куда угодно и совершать какие-либо действия над ним. А что если информация из json-а не будет соответствовать логике? Например подставили другой json в обработчик, который изменяет hp, но hp у данной даты нету? Или придется проводить проверки на все состояния?
Я о том, например

Код AS3:
private function damage(data:Object = {id:1,mp:56}):void
{
cur_damage = 4;
data.hp -= cur_damage;
}
Или я не совсем вкурил, как используется такой подход