|
Code no longer calls exercise() specifying skill and extent of
exercise, but instead calls practise() specifying what has
happened.
The exer_type enum values make explicit whether exercise occurs
before or after dealing damage -- that's a big current
difference between melee and spell training.
We can now safely add new practise() hooks without affecting
skill training, and moving to a different exercise model
should be mostly limited to exercise.cc and skills.cc.
Intended functional changes:
* Slouch now exercises after the action like other abilities.
If the original behaviour wa intentional, it'd be better to
lower the training degree instead.
* The dodging mass check no longer affects whether an attack
is considered "perceived". There's still a dubious
one_chance_in(3) regarding perception of dodged attacks.
For generic item evocation, the degree of training is just passed
through as parameter for now -- the evoked item should probably
be passed to practise() and the degree decision made there.
|