๐Ÿ“ฆ sleepyfran / duets

๐Ÿ“„ Moodlet.Types.fs ยท 27 lines
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>