1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27namespace Duets.Entities
[<AutoOpen>]
module MoodletTypes =
/// Defines the time it takes for a moodlet to expire.
[<RequireQualifiedAccess>]
type MoodletExpirationTime =
| Never
| AfterDayMoments of int<dayMoments>
| AfterDays of int<days>
/// Defines all types of moodlet that can be applied to a character.
[<RequireQualifiedAccess>]
type MoodletType =
| JetLagged
| NotInspired
| TiredOfTouring
/// Defines a moodlet that can be applied to a character.
type Moodlet =
{ MoodletType: MoodletType
StartedOn: Date
Expiration: MoodletExpirationTime }
/// Defines a list of moodlets that have been applied to a character.
type CharacterMoodlets = Set<Moodlet>