Difference between revisions of "User:AVS/Bonus system"
From VCMI Project Wiki
< User:AVS
(Created page with "-> Bonus system is core part of mechanics and it`s interface should be independent of particular components. * -> extract common interface ** LimiterDecorator ** Bonus (w/o B...") |
(→Bonus type handler) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
* -> extract common interface | * -> 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) | ** 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. | *** (*) abstract interface for Bonus. | ||
Line 13: | Line 12: | ||
* (?) what to do with concrete selectors, limiters, propagators? | * (?) what to do with concrete selectors, limiters, propagators? | ||
+ | |||
+ | == Bonus type handler == | ||
+ | |||
+ | [[User:AVS/Bonus type format]] | ||
+ | |||
+ | * {{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 |
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