src/robots/frantic-barista.lisp @ 4df358dc538b default tip

Update to build
author Steve Losh <steve@stevelosh.com>
date Sun, 28 Aug 2022 12:48:04 -0400
parents af9390b6947b
children (none)
(in-package :magitek.robots.frantic-barista)
(named-readtables:in-readtable :chancery)

;;;; Utils --------------------------------------------------------------------
(defun english-number (n)
  (format nil "~R" n))


;;;; Names --------------------------------------------------------------------
(define-string name-simple
  "Sophia"
  "Jackson"
  "Emma"
  "Aiden"
  "Olivia"
  "Lucas"
  "Ava"
  "Liam"
  "Mia"
  "Noah"
  "Isabella"
  "Ethan"
  "Riley"
  "Mason"
  "Aria"
  "Caden"
  "Zoe"
  "Oliver"
  "Charlotte"
  "Elijah"
  "Lily"
  "Grayson"
  "Layla"
  "Jacob"
  "Amelia"
  "Michael"
  "Emily"
  "Benjamin"
  "Madelyn"
  "Carter"
  "Aubrey"
  "James"
  "Adalyn"
  "Jayden"
  "Madison"
  "Logan"
  "Chloe"
  "Alexander"
  "Harper"
  "Caleb")

(define-string name-twitter
  "@stevelosh"
  "@fu86"
  "@rpg_shopkeeper"
  "@git_commands")

(define-string (name :distribution :weighted)
  (50 name-simple)
  (1 name-twitter))


;;;; Liquids ------------------------------------------------------------------
(define-string liquid
  "coffee"
  "cappuccino"
  "mocha"
  "latte"
  "espresso"
  "tea"
  "chai"
  "hot chocolate")


;;;; Sizes --------------------------------------------------------------------
(define-string size-simple
  "small"
  "medium"
  "large")

(define-string size-pretentious
  "short"
  "tall"
  "grande"
  "venti")

(define-string (size :distribution :weighted)
  (5 size-simple)
  (1 size-pretentious))


;;;; Flavor -------------------------------------------------------------------
(define-string adjective
  "artisanal"
  "hand-crafted"
  "fresh"
  "decaf"
  "day-old")

(define-string topping
  "whipped cream"
  "cinnamon"
  "sprinkles")


;;;; Main ---------------------------------------------------------------------
(define-string drink-base
  liquid
  (size liquid)
  (adjective size liquid)
  (adjective liquid))

(define-string drink
  drink-base
  (drink-base "with" topping))

(define-string order
  ("I've got" [drink a] "for" name "here!")
  ([!(random-range-inclusive 2 9) english-number cap]
   [drink-base s] "under" name :. ", to go!"))


;;;; API ----------------------------------------------------------------------
(defun random-tweet ()
  (order))