Difference between revisions of "User:AVS/Bonus system"
From VCMI Project Wiki
< User:AVS
(→Bonus type handler) |
(→Bonus type handler) |
||
(One intermediate revision by the same user not shown) | |||
Line 17: | Line 17: | ||
[[User:AVS/Bonus type format]] | [[User:AVS/Bonus type format]] | ||
− | * {{ | + | * {{done}} convert bonusnames.json to new config |
− | * {{ | + | * {{done}} implement macro substitution for name|description (will be reusable) |
** format ${XXX} | ** format ${XXX} | ||
− | * {{ | + | * {{done}} implement Bonus type handler itself |
− | * {{ | + | * {{done}} integrate to codebase |
* (*) {{todo}} implement "id-like class" for bonus type | * (*) {{todo}} implement "id-like class" for bonus type | ||
** {{todo}} refactor for new bonus type identifacation. | ** {{todo}} refactor for new bonus type identifacation. | ||
Line 31: | Line 31: | ||
** Each bearer has Level attribute (impl: virtual getter) | ** Each bearer has Level attribute (impl: virtual getter) | ||
** Bonus may have configuration for levels. | ** Bonus may have configuration for levels. | ||
+ | * (!) control leveling of propagated and inherited bonuses | ||
+ | ** avoid it for the first time | ||
+ | ** (*) make it configurable |
Latest revision as of 01:55, 9 March 2014
-> Bonus system is core part of mechanics and it`s interface should be independent of particular components.
- -> extract common interface
- Bonus (w/o BonusType, new bonus types can be added in future by mods, all hardcoded types should be used only internally by gamehandler)
- (*) abstract interface for Bonus.
- BonusList
- IBonusBearer
- ILimiter
- IPropagator
- Bonus (w/o BonusType, new bonus types can be added in future by mods, all hardcoded types should be used only internally by gamehandler)
- -> get rid of dependency from CCreature, CSpell
- (?) what to do with concrete selectors, limiters, propagators?
Bonus type handler
- [Done] convert bonusnames.json to new config
- [Done] implement macro substitution for name|description (will be reusable)
- format ${XXX}
- [Done] implement Bonus type handler itself
- [Done] integrate to codebase
- (*) [Todo] implement "id-like class" for bonus type
- [Todo] refactor for new bonus type identifacation.
- (**) [Todo] initial bonus configuration for mods.
Leveled bonuses
- Generalization of handling growing arts, creature exp, hero speciality.
- Each bearer has Level attribute (impl: virtual getter)
- Bonus may have configuration for levels.
- (!) control leveling of propagated and inherited bonuses
- avoid it for the first time
- (*) make it configurable