The new activities system makes it super easy to add/remove activities dynamically! Just call (activities:)
with your conditions and let the system handle the rest.
Basic Format
(activities: boolean_condition, "Activity Name", "time_slot")
The system will automatically:
- Add the activity when condition is true
- Remove it when false
- Handle all the cleanup (remove from lists, reset current activity if needed)
Simple Example
Here’s how to add “Go to the library” on weekdays:
(activities: (a:"Monday","Tuesday","Wednesday","Thursday","Friday") contains $day_of_week, "Go to the library", "daytime" )
Forcing Activities
You can force an activity by adding two more parameters:
(activities: $needs_to_study is true, "Go to the library", "daytime", true, "You have an important test coming up - better hit the books!" )
Time Slots
- “morning”
- “daytime”
- “evening”
Pro Tips:
- Call your activities code frequently enough (like in daily refresh passages) – the system handles cleanup automatically!
- No need to manually remove activities – just let the condition go false:
Bad (old way):
(if:not condition)[(set:$evening_activities to it - (a:"My Activity"))] (if:condition)[(set:$evening_activities to it + (a:"My Activity"))]
Good (new way):
(activities: condition, "My Activity", "evening")
- For forced activities that override player choice:
(activities: $doctor_appointment is true, "Doctor Visit", "daytime", true, "Can't skip this appointment!" )
Remember: The system handles all the complex stuff like:
- Deduplication
- Removing activities when conditions are false
- Managing forced activities
- Cleaning up activity lists
- Resetting to “Nothing” when needed
BUT, the old method will still work. This will just work better! At the moment, you can’t add additional emojis to the activity list. I plan to add the ability for you to add those.