Difference between revisions of "User:AVS/Bonus system"

From VCMI Project Wiki
Jump to: navigation, search
(Leveled bonuses)
(Bonus type handler)
 
Line 17: Line 17:
 
[[User:AVS/Bonus type format]]
 
[[User:AVS/Bonus type format]]
  
* {{wip}} convert bonusnames.json to new config
+
* {{done}} convert bonusnames.json to new config
* {{todo}} implement macro substitution for name|description (will be reusable)
+
* {{done}} implement macro substitution for name|description (will be reusable)
 
** format ${XXX}
 
** format ${XXX}
* {{wip}} implement Bonus type handler itself
+
* {{done}} implement Bonus type handler itself
* {{todo}} integrate to codebase
+
* {{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.

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
  • -> get rid of dependency from CCreature, CSpell
  • (?) 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