47 lines
1009 B
Plaintext
47 lines
1009 B
Plaintext
|
|
//! Life arc definitions for the Baker family
|
||
|
|
//!
|
||
|
|
//! Demonstrates v0.3.0 life arc features:
|
||
|
|
//! - Field requirements with type annotations (requires clause)
|
||
|
|
//! - State transitions with conditions
|
||
|
|
|
||
|
|
// Career progression for bakers
|
||
|
|
life_arc BakerCareer requires { baking_skill: Number, work_ethic: Number } {
|
||
|
|
state apprentice {
|
||
|
|
on enter {
|
||
|
|
specialty: "learning"
|
||
|
|
}
|
||
|
|
on baking_skill > 0.5 and work_ethic > 0.7 -> journeyman
|
||
|
|
}
|
||
|
|
|
||
|
|
state journeyman {
|
||
|
|
on enter {
|
||
|
|
specialty: "bread"
|
||
|
|
}
|
||
|
|
on baking_skill > 0.8 and work_ethic > 0.9 -> master
|
||
|
|
}
|
||
|
|
|
||
|
|
state master {
|
||
|
|
on enter {
|
||
|
|
specialty: "artisan"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Growth arc for children
|
||
|
|
life_arc Childhood requires { age: Number, curiosity: Number } {
|
||
|
|
state young_child {
|
||
|
|
on age > 5 -> school_age
|
||
|
|
}
|
||
|
|
|
||
|
|
state school_age {
|
||
|
|
on age > 12 -> teenager
|
||
|
|
}
|
||
|
|
|
||
|
|
state teenager {
|
||
|
|
on age > 18 -> adult
|
||
|
|
}
|
||
|
|
|
||
|
|
state adult {
|
||
|
|
}
|
||
|
|
}
|