๐Ÿ“ฆ sleepyfran / duets

๐Ÿ“„ Skill.fs ยท 60 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
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
60module Duets.Cli.Text.Skill

open Duets.Common
open Duets.Entities

let skillName id =
    match id with
    | SkillId.Composition -> "Composition"
    | SkillId.Cooking -> "Cooking"
    | SkillId.Genre genre -> $"{genre} (Genre)"
    | SkillId.Instrument instrument ->
        $"{Generic.instrumentName instrument} (Instrument)"
    | SkillId.MusicProduction -> "Music production"
    | SkillId.Fitness -> "Fitness"
    | SkillId.Speech -> "Speech"
    | SkillId.Barista -> "Barista"
    | SkillId.Bartending -> "Bartending"
    | SkillId.Presenting -> "Presenting"

let categoryName category =
    match category with
    | SkillCategory.Character -> "Character"
    | SkillCategory.Music -> "Music"
    | SkillCategory.Production -> "Production"
    | SkillCategory.Job -> "Job"

let skillDescription id =
    match id with
    | SkillId.Cooking ->
        "The cooking skill determines how good you are at cooking dishes. It impacts which dishes you can cook and is also useful if you're planning to work as a chef"
    | SkillId.Composition ->
        "The composition skill determines how good you are at making new music. It directly impacts how good your songs will be"
    | SkillId.Genre genre ->
        $"The genre skill determines how good you are at making {genre} music. It directly impacts how good your {genre} songs will be"
    | SkillId.Instrument instrument ->
        $"The instrument skills determine how good you are at playing {Generic.instrumentName instrument |> String.lowercase}. It directly impacts how good your songs will be when your main instrument is {Generic.instrumentName instrument |> String.lowercase}"
    | SkillId.MusicProduction ->
        "The music production skill determines how good you are at recording, producing and mastering songs. This skill is not that important if you don't produce your own songs and instead you use a studio with a producer"
    | SkillId.Fitness ->
        "The fitness skill determines how good you are at exercising"
    | SkillId.Speech ->
        "The speech skill determines how good you are at talking, which can be useful when giving speeches in concerts and during interviews"
    | SkillId.Barista ->
        "The barista skill determines how good you are at making coffee. This skill is not that important if you won't work as a barista"
    | SkillId.Bartending ->
        "The bartending skill determines how good you are at making drinks. This skill is not that important if you won't work as a bartender"
    | SkillId.Presenting ->
        "The presenting skill determines how good you are at presenting shows, whether on radio or TV. This skill is not that important if you won't work as radio host or TV presenter"
    |> Styles.faded

let skillImproved
    characterName
    characterGender
    (skill: Skill)
    previousLevel
    currentLevel
    =
    Styles.success
        $"""{characterName} improved {(Generic.possessiveAdjectiveForGender characterGender) |> String.lowercase} {skillName skill.Id |> String.lowercase} skill from {previousLevel} to {currentLevel}"""