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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106[<RequireQualifiedAccess>]
module Duets.Cli.Text.Emoji
open Duets.Entities
/// Emoji for representing actions inside of a plane.
let flying = ":airplane_departure:"
/// Emoji for representing actions related to concerts. IMPORTANT: Do NOT remove
/// the space in the end since the emoji does not seem to render well without it.
let concert = ":admission_tickets: "
/// Emoji for representing actions related to socializing.
let socializing = ":mouth:"
/// Emoji for representing a notification.
let notification = ":bell:"
/// Emoji for representing a tip given to the player.
let tip = ":loudspeaker:"
/// Emoji for a clock in a random time.
let clock = ":eight_o_clock:"
/// Emoji for the Mastodon app.
let mastodon = ":elephant:"
/// Emoji for boosts in social network apps.
let boost = ":star:"
/// Emoji for showing the relationship level.
let relationshipLevel = ":bust_in_silhouette:"
/// Emoji for card games.
let cards = ":joker:"
/// Emoji for clubs.
let clubs = ":club_suit:"
/// Emoji for diamonds.
let diamonds = ":diamond_suit:"
/// Emoji for hearts.
let hearts = ":heart_suit:"
/// Emoji for spades.
let spades = ":spade_suit:"
/// Emoji for a green checkmark.
let checkmark = ":check_mark_button:"
/// Emoji for a red cross-mark.
let crossMark = ":cross_mark:"
/// Returns the correct emoji for showing the current day moment.
let dayMoment dayMoment =
match dayMoment with
| EarlyMorning -> ":six_o_clock:"
| Morning -> ":ten_o_clock:"
| Midday -> ":two_o_clock:"
| Afternoon -> ":six_o_clock:"
| Evening -> ":eight_o_clock:"
| Night -> ":ten_o_clock:"
| Midnight -> ":twelve_o_clock:"
let private mood m =
match m with
| m when m < 20 -> ":slightly_frowning_face:"
| m when m < 50 -> ":neutral_face:"
| m when m < 75 -> ":slightly_smiling_face:"
| _ -> ":beaming_face_with_smiling_eyes:"
/// Returns the correct emoji for showing an attribute.
let attribute attr amount =
match attr with
| CharacterAttribute.Drunkenness -> ":woozy_face:"
| CharacterAttribute.Energy -> ":battery:"
| CharacterAttribute.Fame -> ":glowing_star:"
| CharacterAttribute.Health ->
":anatomical_heart: " (* Do NOT remove the space in the end *)
| CharacterAttribute.Hunger -> ":pot_of_food:"
| CharacterAttribute.Mood -> mood amount
/// Returns the correct emoji for showing a moodlet.
let moodlet m =
match m with
| MoodletType.JetLagged -> ":sleepy_face:"
| MoodletType.NotInspired -> ":expressionless_face:"
| MoodletType.TiredOfTouring -> ":minibus:"
/// Returns the correct emoji for displaying a car.
let car = ":oncoming_automobile:"
/// Returns the correct emoji for a metro.
let metro = ":metro:"
/// Returns the correct emoji for the given weather.
let weather w =
match w with
| WeatherCondition.Sunny -> ":sun:"
| WeatherCondition.Cloudy -> ":cloud:"
| WeatherCondition.Rainy -> ":cloud_with_rain:"
| WeatherCondition.Stormy -> ":cloud_with_lightning_and_rain:"
| WeatherCondition.Snowy -> ":snowflake:"