drd-plus / skills
Skills for Drd+
Requires
- php: >=7.4
- drdplus/armourer: ^3.0
- drdplus/background: ~3.0
- drdplus/hunting-and-fishing: ~3.0
- drdplus/lighting: ~3.0
- drdplus/profession-levels: ~3.0
Requires (Dev)
- granam/exceptions-hierarchy: ~5.0
- granam/test-with-mockery: ^2.0
- mockery/mockery: ~1.2
- phpunit/phpunit: ~9.0
- rector/rector: ^0.11.53
- roave/security-advisories: dev-master
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Can you swim? How long you will read that book? Can you hold on horse?
Warning about distinction from PPH rules
The reading and writing skill gives a "bonus" to reading speed, despite PPH rules where reading and writing is impossible.
This library gives -164 as a "bonus" to reading speed, which means 100 years. The reason is mostly technical - because returning something is easier and more clear than nothing (by null or exception), and partly because its logical - after ten years you have a chance to decode that strange symbols, especially when they mean something in a language you already know.
Structure
Skills are all the person skills on one pile. -> SameTypeSkills are skills of same type, like physical, on one pile -> Skill is specific learned "ability", like horse riding -> SkillRank is a "level" of the skill => SkillPoint is the only but required price of a SkillRank
SkillPoint is the currency unit for a SkillRank, composed from specific values, in specific combinations -> BackgroundSkillPoints are standard value given by first level -> ProfessionLevel is a level increment, cary-ing a property increment, which provides a skill point -> two SkillPoint(s) of type(s)-different-than-paid-one can be used for trade of new SkillPoint
Checks if payments haven't been used more times elsewhere: (that should check at least Skills as the final aggregator, or better every aggregator on the way)
SkillPoint
- BackgroundSkillPoints - check their total usage against their availability by \DrdPlus\Background\BackgroundSkillPoints::getSkillPoints
- ProfessionLevel - there is nothing to check, on every level can be obtained plenty of skill points
- cross-type SkillPoint as a payment - has to be unique, therefore no one else can use it, for payment nor as standard skill point
SkillRank
- SkillPoint has to be unique in whole universe, see SkillPoint cross-type payment check
Skill
- can be used just as an arbiter due its aggregating meaning
can check if BackgroundSkillPoints are not overusedshould not check it, its too tricky, let it to Skills- can check if SkillPoint and SkillRank are unique locally
- can check if cross-type SkillPoint(s) as a payment are unique and not used as a standard point locally
SameTypeSkills (can sum all the first and next levels skill ranks)
- can be used just as an arbiter due its aggregating meaning
CombinedSkills + PhysicalSkills + PsychicalSkills (has ability to find out unused skill point values of same-type skills)
- all the same-type skills it aggregate have to be unique in whole universe
Skills
- CombinedSkills + PhysicalSkills + PsychicalSkills has to be unique in whole universe
- should be the final arbiter,
recommended way is to re-use existing checks of sub-aggregates