только что чисто ради академического интереса реализовал все что написал в предыдущем сообщении (включая "З.Ы."). вся реализация, с тестированием получившегося, заняла дай бог минут 10-15
пара новых строк в парсере xml-ок с деревьями изучения скиллов, пара строк в классе определяющем данные об изучаемых скиллах и пяток строк в пакете изучения - вот и вся реализация.
к примеру задаем такие данные для изучения Power Shot
PHP код:
<skill id="56" level="1" cost="50" name="Power Shot" min_level="5" skills="3,1;226,0" />
т.е. изучить можно только если есть Power Strike (id 3) первого и выше уровня и нет Relax (id 226).
и получаем в результате в игре при попытке изучения, если не подходят условия по заданным скиллам: