feat: added cuckery

This commit is contained in:
Nick 2024-11-13 23:29:50 -06:00
parent 7e2cc9ef32
commit 74bc980a08
7 changed files with 207 additions and 3 deletions

View file

@ -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
}
]
}

View file

@ -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
}
]
}

View file

@ -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))
]
]

View file

@ -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

View file

@ -3,6 +3,9 @@ module Pages.Dodgers exposing (Model, Msg, page)
import Config.Colour as T exposing (..) import Config.Colour as T exposing (..)
import Config.Format as O exposing (..) import Config.Format as O exposing (..)
import Config.Identity as I 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 Effect exposing (Effect)
import Element exposing (..) import Element exposing (..)
import Element.Border as D import Element.Border as D
@ -93,7 +96,11 @@ dodgersList : Element msg
dodgersList = dodgersList =
column column
pageList pageList
dodgers <|
List.map cuckMaker
[ cuckAdamSinger
, cuckAnthonyGustin
]
type alias MakeRowInput msg = type alias MakeRowInput msg =
@ -200,7 +207,7 @@ dodgers =
dodgeType : DodgeType dodgeType : DodgeType
dodgeType = dodgeType =
{ noReply = "Invitation extended with no response" { 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" , ghostedMe = "Debate invitation accepted with no follow-up"
, outrightNo = "Debate invitation declined" , outrightNo = "Debate invitation declined"
, inTooDeep = "Debate invitation accepted and subsequently retracted" , inTooDeep = "Debate invitation accepted and subsequently retracted"
@ -287,7 +294,7 @@ dodgers =
} }
] ]
} }
, { cuckImage = "cucks/bartkay.png" , { cuckImage = "cucks/bartkay3.png"
, cuckName = "Bart Kay" , cuckName = "Bart Kay"
, cuckSocial = "https://twitter.com/@Bart_WT_Kay" , cuckSocial = "https://twitter.com/@Bart_WT_Kay"
, cuckDodges = , cuckDodges =

View file

@ -3,6 +3,7 @@ module Pages.Home_ exposing (Model, Msg, page)
import Config.Colour as T exposing (..) import Config.Colour as T exposing (..)
import Config.Format as O exposing (..) import Config.Format as O exposing (..)
import Config.Identity as I exposing (..) import Config.Identity as I exposing (..)
import Cuckery.Types
import Effect exposing (Effect) import Effect exposing (Effect)
import Element exposing (..) import Element exposing (..)
import Html.Attributes as H exposing (style) import Html.Attributes as H exposing (style)

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB