src/robots/frantic-barista.lisp @ da5525d2638c
Maybe I should test things
author |
Steve Losh <steve@stevelosh.com> |
date |
Sat, 14 Apr 2018 01:16:05 -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))