Skills system: practice-grown abilities with passion (animals now, humans later)
Generic data-driven skills (SkillDef + skills.json: Foraging, Hunting, Evasion), mirroring the needs registry. Skills component (per-skill level [0..1] + passion) on every animal, built by AnimalFactory; passion is rolled deterministically from the genome (no RNG param threaded). Levels grow from PRACTICE (XP on the matching action, scaled by passion''s learn-rate) and slowly decay toward a floor when unused (AnimalSkillSystem), so animals specialize. Effects wired now: Foraging -> satiety from grazing, Hunting -> attack damage, Evasion -> flee speed. A missing skill def -> factor 1 (no effect), so it is safe to mod the set. Inspector gains a Skills tab (level% + passion stars); `skills` console command shows live mean levels; skills are saved/loaded (levels+passions). Same model will carry to future humans. Build + --check-content clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
cf2bc77882
commit
58380adc31
@@ -11,6 +11,7 @@
|
||||
"inspect.tab.genes": "Genes",
|
||||
"inspect.tab.products": "Products",
|
||||
"inspect.tab.needs": "Needs",
|
||||
"inspect.tab.skills": "Skills",
|
||||
"inspect.tab.health": "Health",
|
||||
"inspect.tab.mood": "Mood",
|
||||
"inspect.stage": "Stage: {0} ({1}/{2})",
|
||||
@@ -42,6 +43,10 @@
|
||||
"inspect.animal.sex": "Sex: {0} · generation {1}",
|
||||
"inspect.animal.pregnant": "Pregnant: {0:0.0} d to birth",
|
||||
"inspect.needline": "{0}: {1:0}%",
|
||||
"inspect.skillline": "{0}: {1:0}% {2}",
|
||||
"skill.foraging": "foraging",
|
||||
"skill.hunting": "hunting",
|
||||
"skill.evasion": "evasion",
|
||||
"inspect.health.blood": "Blood: {0:0}% · pain: {1:0}%",
|
||||
"inspect.health.caps": "— Capacities —",
|
||||
"inspect.health.cap": "{0}: {1:0}%",
|
||||
|
||||
Reference in New Issue
Block a user