BREAKING CHANGES: - Relationship syntax now requires blocks for all participants - Removed self/other perspective blocks from relationships - Replaced 'guard' keyword with 'if' for behavior tree decorators Language Features: - Add tree-sitter grammar with improved if/condition disambiguation - Add comprehensive tutorial and reference documentation - Add SBIR v0.2.0 binary format specification - Add resource linking system for behaviors and schedules - Add year-long schedule patterns (day, season, recurrence) - Add behavior tree enhancements (named nodes, decorators) Documentation: - Complete tutorial series (9 chapters) with baker family examples - Complete reference documentation for all language features - SBIR v0.2.0 specification with binary format details - Added locations and institutions documentation Examples: - Convert all examples to baker family scenario - Add comprehensive working examples Tooling: - Zed extension with LSP integration - Tree-sitter grammar for syntax highlighting - Build scripts and development tools Version Updates: - Main package: 0.1.0 → 0.2.0 - Tree-sitter grammar: 0.1.0 → 0.2.0 - Zed extension: 0.1.0 → 0.2.0 - Storybook editor: 0.1.0 → 0.2.0
90 lines
2.3 KiB
Plaintext
90 lines
2.3 KiB
Plaintext
//! Schedules for Wonderland characters
|
|
//!
|
|
//! v0.2.0 upgrade: Adding year-long schedule composition features
|
|
//! - Schedule inheritance and composition
|
|
//! - Behavior tree references
|
|
//! - Recurrence patterns for special events
|
|
|
|
// Base schedule for court members
|
|
schedule CourtSchedule {
|
|
block morning_duties { 08:00 -> 12:00, action: CourtDuties }
|
|
block lunch { 12:00 -> 13:00, action: Eating }
|
|
block afternoon_duties { 13:00 -> 17:00, action: CourtDuties }
|
|
block evening_rest { 18:00 -> 22:00, action: Resting }
|
|
}
|
|
|
|
// Queen's schedule (extends court schedule with special blocks)
|
|
schedule QueenSchedule extends CourtSchedule {
|
|
override morning_duties {
|
|
08:00 -> 12:00
|
|
action: RuleWithTyranny
|
|
mood: "imperious"
|
|
}
|
|
|
|
override afternoon_duties {
|
|
13:00 -> 17:00
|
|
action: CroquetAndExecutions
|
|
}
|
|
|
|
// Croquet games on specific days
|
|
recurrence CroquetDay on Thursday {
|
|
block croquet {
|
|
14:00 -> 17:00
|
|
action: PlayCroquet
|
|
mallets: "flamingos"
|
|
balls: "hedgehogs"
|
|
}
|
|
}
|
|
}
|
|
|
|
// Mad Tea Party schedule (perpetually stuck at tea time)
|
|
schedule TeaPartySchedule {
|
|
block eternal_teatime {
|
|
18:00 -> 18:01
|
|
action: EndlessTeaParty
|
|
time_moves: false
|
|
}
|
|
|
|
recurrence MoveChairs on Daily {
|
|
block chair_rotation {
|
|
18:00 -> 18:00
|
|
action: MoveToNextSeat
|
|
}
|
|
}
|
|
}
|
|
|
|
// White Rabbit's frantic schedule
|
|
schedule RabbitSchedule {
|
|
block panic_mode {
|
|
00:00 -> 23:59
|
|
action: AlwaysLate
|
|
anxiety: "extreme"
|
|
}
|
|
|
|
recurrence ImportantDate on FirstOfMonth {
|
|
block extra_panic {
|
|
06:00 -> 06:30
|
|
action: CheckPocketWatch
|
|
repetitions: 1000
|
|
}
|
|
}
|
|
}
|
|
|
|
// Caterpillar's leisurely schedule
|
|
schedule CaterpillarSchedule {
|
|
block smoke_hookah { 10:00 -> 16:00, action: PhilosophizeOnMushroom }
|
|
block metamorphosis_rest { 16:00 -> 23:59, action: Sleeping }
|
|
}
|
|
|
|
// Cheshire Cat's schedule (mostly appearing and disappearing)
|
|
schedule CheshireSchedule {
|
|
block appear { 00:00 -> 23:59, action: AppearAtRandom }
|
|
|
|
recurrence GrinningTime on Daily {
|
|
block extra_grin {
|
|
12:00 -> 12:01
|
|
action: LeaveOnlyGrin
|
|
}
|
|
}
|
|
}
|