#!/usr/bin/env sh
# -*- wisp -*-
D="$(dirname $(realpath "$0"))"
W="$(dirname $(dirname $(realpath "$0")))"
guile -L "$W" -c '(import (wisp-scheme) (language wisp spec))'
exec guile -L "$W" --language=wisp -l "$D/enter-three-witches.w" -s "$0" "$@"
; !#

import : examples enter-three-witches

Enter : Galtag Nimbleday
        Lowlife Pirate
        choose your answer

define answers
  `
    : You fight like a Dairy Farmer!
      How appropriate! You fight like a cow!
      And I've got a little TIP for you, get the POINT?

; write answers
; newline

define answers
  ' 
    . "How appropriate! You fight like a cow!"
    . "And I've got a little TIP for you, get the POINT?"

;; TODO: use macro define-interaction
define : duel me other
  say-name other 
  say-words 
    : 
      You fight like a Dairy Farmer!
  say-name ' : choose your answer
  say-words
       : ,(let ((counter 0))
           (string-join 
             (map (λ (x) 
                     (set! counter (+ 1 counter))
                     (string-append (number->string counter) "  " x)) answers) "\n  "))
  let
    : answer : list-ref answers (- (string->number (format #f "~a" (peek-char))) 1)
    drain-input (current-input-port)
    say-name me
    say-words
      :
        ,answer
    

define-syntax-rule : Duel fighter1 fighter2
   duel
     quote fighter1
     quote fighter2


Duel
  Galtag Nimbleday
  Lowlife Pirate