Фабрика функций для калькулятора

 

Murkt

Pythoneer
★★★
Сабж сделан в коммите 2639.

Теперь можно просто создать нужную функцию на лету, и добавить её чару. Можно через яву, можно через форт.

Есть три способа создать функцию:
- обычный, передаётся тип функции (Add, Div, Mul, etc), стат (RUN_SPEED, POWER_ATTACK), порядок применения aka order, и аргумент для функции; Слово createFunc.base
- как предыдущий, различие только в том, что можно указывать владельца функции - чтобы было проще удалять функции из калькулятора (в обычном конструкторе владелец - фабрика); Слово createFunc.owner
- третий, нужно передать Форт-слово (к примеру, с помощью ['] word), которое и будет обсчитывать наш параметр, стат, order, и булевое значение - является слово владельцем функции или фабрика. Слово createFunc.word

Полученную функцию можно добавить чару - c.addFunc, можно удалить функцию из чара по её указателю - c.removeFunc, можно удалить все функции из чара по c.removeFuncOwner.

Саму фабрику можно получить по FuncFactory, для того, например, чтобы удалить из чара все нестандартные функции.

Все слова определены в словаре stats:.


Вся эта бодяга может понадобиться для того, чтобы делать территории с баффами/дебаффами - например кланхоллы, ловушки в замке, тень Mother Tree, болота разные там :)
[team Їжачки - сумні падлюки]  
Это сообщение редактировалось 21.05.2006 в 19:06
AD Реклама Google — средство выживания форумов :)

Murkt

Pythoneer
★★★
Например, добавить себе 1500 pAtk:


stats:
"Add" POWER_ATTACK 96 1500 createFunc.base
self c.addFunc


Удалить потом:

FuncFactory self c.removeFuncOwner


Что-то типа такого.

PS со словарями ещё не разобрался, мне приходилось писать stats: перед каждым вызовом слова из моего словаря :-?
[team Їжачки - сумні падлюки]  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru