diff --git a/frontend/src/Cuckery/CuckList/AdamSinger.elm b/frontend/src/Cuckery/CuckList/AdamSinger.elm new file mode 100644 index 0000000..1ae4a70 --- /dev/null +++ b/frontend/src/Cuckery/CuckList/AdamSinger.elm @@ -0,0 +1,19 @@ +module Cuckery.CuckList.AdamSinger exposing (..) + +import Cuckery.Types exposing (..) + + +cuckAdamSinger : Cuck +cuckAdamSinger = + { cuckImage = "adamsinger" + , cuckName = "Adam Singer" + , cuckSocial = "https://twitter.com/AdamSinger" + , cuckDodges = + [ { dodgeLink = "https://twitter.com/The_Nutrivore/status/1447245484356108292?s=20" + , dodgeDescription = RanAway + , dodgeProposition = "diets humans thrived on in the wild, sans dentists and doctors, are correct.diets humans thrived on in the wild, sans dentists and doctors, are correct.diets humans thrived on in the wild, sans dentists and doctors, are correct.diets humans thrived on in the wild, sans dentists and doctors, are correct.diets humans thrived on in the wild, sans dentists and doctors, are correct." + , dodgeNicksDoxasticState = Nothing + , dodgeNicksDoxasticReason = NoProp + } + ] + } diff --git a/frontend/src/Cuckery/CuckList/AnthonyGustin.elm b/frontend/src/Cuckery/CuckList/AnthonyGustin.elm new file mode 100644 index 0000000..5827813 --- /dev/null +++ b/frontend/src/Cuckery/CuckList/AnthonyGustin.elm @@ -0,0 +1,19 @@ +module Cuckery.CuckList.AnthonyGustin exposing (..) + +import Cuckery.Types exposing (..) + + +cuckAnthonyGustin : Cuck +cuckAnthonyGustin = + { cuckImage = "adamsinger" + , cuckName = "Adam Singer" + , cuckSocial = "https://twitter.com/AdamSinger" + , cuckDodges = + [ { dodgeLink = "https://twitter.com/The_Nutrivore/status/1447245484356108292?s=20" + , dodgeDescription = RanAway + , dodgeProposition = "diets humans thrived on in the wild, sans dentists and doctors, are correct." + , dodgeNicksDoxasticState = Just Belief + , dodgeNicksDoxasticReason = NoProp + } + ] + } diff --git a/frontend/src/Cuckery/Helpers.elm b/frontend/src/Cuckery/Helpers.elm new file mode 100644 index 0000000..0060a67 --- /dev/null +++ b/frontend/src/Cuckery/Helpers.elm @@ -0,0 +1,120 @@ +module Cuckery.Helpers exposing (..) + +import Config.Colour exposing (..) +import Config.Format exposing (..) +import Cuckery.Types exposing (..) +import Effect exposing (Effect) +import Element exposing (..) +import Element.Border as D +import Element.Font as F +import Html.Attributes as H exposing (style) +import Layouts +import Page exposing (Page) +import Route exposing (Route) +import Shared +import View exposing (View) + + +makeDodge : Dodge -> Int -> Element msg +makeDodge dodgeEntry index = + column paragraphAlignLeft + [ row (paragraphFormat ++ [ width fill ]) + [ text " " + , text (String.fromInt index ++ ". ") + , paragraphLinkFormat + { url = dodgeEntry.dodgeLink + , label = + row [] + [ transitionHighlightedLinkHover <| + text + (case dodgeEntry.dodgeDescription of + NoReply -> + "Invitation extended with no response" + + RanAway -> + "Engaged in written debate and ran away when cornered" + + GhostedMe -> + "Debate invitation accepted with no follow-up" + + OutrightNo -> + "Debate invitation declined" + + InTooDeep -> + "Debate invitation accepted and subsequently retracted" + + KillScreen -> + "All further debate invitations preemptively declined" + ) + , text "." |> el [ F.color colourTheme.nonHighlightedText ] + ] + } + ] + , row paragraphBoldFormat + [ column [ alignTop ] + [ text " Proposition:" + ] + , column [ width fill, alignLeft ] [ paragraph [ F.regular ] [ text ("\"" ++ dodgeEntry.dodgeProposition ++ "\"") ] ] + ] + , row (paragraphBoldFormat ++ [ width fill ]) + [ text " Doxastic State:" + , case dodgeEntry.dodgeNicksDoxasticState of + Nothing -> + paragraph [ F.regular ] [ text "Nick doesn't form a doxastic state." ] + + Just Belief -> + paragraph [ F.regular ] + [ text "Nick leans more toward " + , el [ F.bold ] (text "TRUE") + , text " than false." + ] + + Just Disbelief -> + paragraph [ F.regular ] + [ text "Nick leans more toward " + , text "FALSE" |> el [ F.bold ] + , text " than true." + ] + + Just Agnostic -> + el [ F.regular ] (text "Nick doesn't form beliefs about this proposition.") + ] + , row (paragraphBoldFormat ++ [ width fill ]) + [ text " Reason:" + , el [ F.regular ] + (text <| + case dodgeEntry.dodgeNicksDoxasticReason of + NoProp -> + "there is no proposition to evaluate." + + Vague -> + "the proposition is too vague to evaluate." + ) + ] + ] + + +cuckMaker : Cuck -> Element msg +cuckMaker cuck = + row [ imageSpacer, alignLeft ] + [ image [ centerX, centerY, D.rounded 100, clip, width <| px 80 ] + { src = "cucks/" ++ cuck.cuckImage ++ ".png" + , description = cuck.cuckName + } + , column + paragraphAlignLeft + [ row nonHighlightedTitleFormat [ text cuck.cuckName ] + , row paragraphBoldFormat + [ text "Social:" + , paragraphLinkFormat + { url = cuck.cuckSocial + , label = transitionHighlightedLinkHover <| text cuck.cuckName + } + ] + , row paragraphBoldFormat [ text "Dodges:" ] + , column [ spacing 8 ] <| + List.map2 (\x y -> makeDodge x y) + cuck.cuckDodges + (List.range 1 (List.length cuck.cuckDodges)) + ] + ] diff --git a/frontend/src/Cuckery/Types.elm b/frontend/src/Cuckery/Types.elm new file mode 100644 index 0000000..092cc42 --- /dev/null +++ b/frontend/src/Cuckery/Types.elm @@ -0,0 +1,38 @@ +module Cuckery.Types exposing (..) + + +type alias Cuck = + { cuckImage : String + , cuckName : String + , cuckSocial : String + , cuckDodges : List Dodge + } + + +type alias Dodge = + { dodgeLink : String + , dodgeDescription : DodgeDescription + , dodgeProposition : String + , dodgeNicksDoxasticState : Maybe DoxasticState + , dodgeNicksDoxasticReason : Reason + } + + +type DodgeDescription + = NoReply + | RanAway + | GhostedMe + | OutrightNo + | InTooDeep + | KillScreen + + +type DoxasticState + = Belief + | Disbelief + | Agnostic + + +type Reason + = NoProp + | Vague diff --git a/frontend/src/Pages/Dodgers.elm b/frontend/src/Pages/Dodgers.elm index 21c0c41..71b53e7 100755 --- a/frontend/src/Pages/Dodgers.elm +++ b/frontend/src/Pages/Dodgers.elm @@ -3,6 +3,9 @@ module Pages.Dodgers exposing (Model, Msg, page) import Config.Colour as T exposing (..) import Config.Format as O exposing (..) import Config.Identity as I exposing (..) +import Cuckery.CuckList.AdamSinger exposing (cuckAdamSinger) +import Cuckery.CuckList.AnthonyGustin exposing (cuckAnthonyGustin) +import Cuckery.Helpers exposing (..) import Effect exposing (Effect) import Element exposing (..) import Element.Border as D @@ -93,7 +96,11 @@ dodgersList : Element msg dodgersList = column pageList - dodgers + <| + List.map cuckMaker + [ cuckAdamSinger + , cuckAnthonyGustin + ] type alias MakeRowInput msg = @@ -200,7 +207,7 @@ dodgers = dodgeType : DodgeType dodgeType = { noReply = "Invitation extended with no response" - , ranAway = "Engaged in written debate and dodged when cornered" + , ranAway = "Engaged in written debate and ran away when cornered" , ghostedMe = "Debate invitation accepted with no follow-up" , outrightNo = "Debate invitation declined" , inTooDeep = "Debate invitation accepted and subsequently retracted" @@ -287,7 +294,7 @@ dodgers = } ] } - , { cuckImage = "cucks/bartkay.png" + , { cuckImage = "cucks/bartkay3.png" , cuckName = "Bart Kay" , cuckSocial = "https://twitter.com/@Bart_WT_Kay" , cuckDodges = diff --git a/frontend/src/Pages/Home_.elm b/frontend/src/Pages/Home_.elm index 30e356f..b6ac932 100755 --- a/frontend/src/Pages/Home_.elm +++ b/frontend/src/Pages/Home_.elm @@ -3,6 +3,7 @@ module Pages.Home_ exposing (Model, Msg, page) import Config.Colour as T exposing (..) import Config.Format as O exposing (..) import Config.Identity as I exposing (..) +import Cuckery.Types import Effect exposing (Effect) import Element exposing (..) import Html.Attributes as H exposing (style) diff --git a/frontend/static/cucks/bartkay3.png b/frontend/static/cucks/bartkay3.png new file mode 100755 index 0000000..99fb53c Binary files /dev/null and b/frontend/static/cucks/bartkay3.png differ