Files
gitea-docker/desktop/src-common/advent/screens/items.clj
2014-12-27 15:46:47 -08:00

118 lines
7.0 KiB
Clojure

(ns advent.screens.items
(:require [advent.actions :as actions]))
(declare stick)
(declare wool)
(declare cat-toy)
(declare flask-1-with-milk)
(declare slobber)
(declare flask-1-strength)
(declare flask-1-with-cream-of-mushroom)
(def make-cat-toy
(actions/get-script entities
(actions/remove-item entities :stick)
(actions/remove-item entities :wool)
(actions/give entities :cat-toy)
(actions/talk entities :ego "It makes a little cat toy!")))
(def wool {:name "Wool" :value :wool :cursor :wool :scripts {:stick make-cat-toy}})
(def mushrooms {:name "Mushrooms" :value :mushrooms :cursor :mushrooms})
(def carrot {:name "Carrot" :value :carrot :cursor :carrot})
(def flask-1-with-mushrooms {:name "Flask with mushrooms" :value :flask-1-with-mushrooms :cursor :flask-with-contents})
(defn make-cream-of-mushroom [entities]
(actions/remove-item entities :flask-1-with-mushrooms)
(actions/remove-item entities :flask-1-with-milk)
(actions/remove-item entities :mushrooms)
(actions/give entities :flask-1-with-cream-of-mushroom)
(actions/talk entities :ego "It's just like cream of mushroom soup."))
(def flask-1-strength {:name "Strength potion" :value :flask-1-strength :cursor :flask-with-strength})
(def flask-1 {:name "Flask" :value :flask-1 :cursor :flask
:scripts {:mushrooms (actions/get-script entities
(actions/remove-item entities :flask-1)
(actions/remove-item entities :mushrooms)
(actions/give entities :flask-1-with-mushrooms)
(actions/talk entities :ego "I'll just put a few of these in here."))}})
(def trophy {:name "Trophy of wisdom" :value :trophy :cursor :trophy})
(def cheat-deck {:name "Warlock's Tower cheat deck" :value :cheat-deck :cursor :cheat-deck})
(def cat-toy {:name "Cat toy" :value :cat-toy :cursor :cat-toy})
(def stick {:name "Stick" :value :stick :cursor :stick :scripts {:wool make-cat-toy}})
(def balloon {:name "Choicest of balloons" :value :balloon :cursor :balloon})
(def frog-legs {:name "Frog legs" :value :frog-legs :cursor :frog-legs})
(def ladder {:name "ladder" :value :ladder :cursor :ladder})
(def teddy {:name "Teddy Bear" :value :teddy :cursor :teddy})
(def portrait {:name "Portrait" :value :portrait :cursor :portrait})
(def recipe {:name "Strength potion recipe" :value :recipe :cursor :recipe})
(def glass-eye {:name "Choicest of glass eyes" :value :glass-eye :cursor :glass-eye})
(def motivational-tapes {:name "Choicest motivational tapes" :value :motivational-tapes :cursor :motivational-tapes})
(def used-earplugs {:name "Choicest used earplugs" :value :used-earplugs :cursor :used-earplugs})
(def grass {:name "Huge grass" :value :grass :cursor :grass})
(defn add-slobber []
(actions/get-script entities
(actions/remove-item entities :flask-1-with-cream-of-mushroom)
(actions/remove-item entities :slobber)
(actions/give entities :flask-1-slobber)
(actions/talk entities :ego "I put the slobber in with the cream of mushroom.")))
(defn make-strength-potion []
(actions/get-script entities
(actions/remove-item entities :flask-1-slobber)
(actions/remove-item entities :mandrake)
(actions/give entities :flask-1-strength)
(actions/talk entities :ego "It's the completed strength potion!")))
(def items
{:wool {:name "Wool" :value :wool :cursor :wool :scripts {:stick make-cat-toy}}
:mushrooms {:name "Mushrooms" :value :mushrooms :cursor :mushrooms
:scripts {:flask-1-with-milk (actions/get-script entities (make-cream-of-mushroom entities))}}
:carrot {:name "Carrot" :value :carrot :cursor :carrot}
:flask-1-with-mushrooms {:name "Flask with mushrooms" :value :flask-1-with-mushrooms :cursor :flask-with-contents}
:flask-1-with-milk {:name "Flask with milk" :value :flask-1-with-milk :cursor :flask-with-contents
:scripts {:mushrooms (actions/get-script entities (make-cream-of-mushroom entities))}}
:flask-1-strength {:name "Strength potion" :value :flask-1-strength :cursor :flask-with-strength}
:flask-1 {:name "Flask" :value :flask-1 :cursor :flask
:scripts {:mushrooms (actions/get-script entities
(actions/remove-item entities :flask-1)
(actions/remove-item entities :mushrooms)
(actions/give entities :flask-1-with-mushrooms)
(actions/talk entities :ego "I'll just put a few of these in here."))}}
:trophy {:name "Trophy of wisdom" :value :trophy :cursor :trophy}
:cheat-deck {:name "Warlock's Tower cheat deck" :value :cheat-deck :cursor :cheat-deck}
:cat-toy {:name "Cat toy" :value :cat-toy :cursor :cat-toy}
:stick {:name "Stick" :value :stick :cursor :stick :scripts {:wool make-cat-toy}}
:balloon {:name "Choicest of balloons" :value :balloon :cursor :balloon}
:frog-legs {:name "Frog legs" :value :frog-legs :cursor :frog-legs}
:ladder {:name "Ladder" :value :ladder :cursor :ladder}
:teddy {:name "Teddy Bear" :value :teddy :cursor :teddy}
:portrait {:name "Portrait" :value :portrait :cursor :portrait}
:recipe {:name "Strength potion recipe" :value :recipe :cursor :recipe}
:glass-eye {:name "Choicest of glass eyes" :value :glass-eye :cursor :glass-eye}
:motivational-tapes {:name "Choicest motivational tapes" :value :motivational-tapes :cursor :motivational-tapes}
:used-earplugs {:name "Choicest used earplugs" :value :used-earplugs :cursor :used-earplugs}
:grass {:name "High protein grass" :value :grass :cursor :grass}
:slobber {:name "Bull slobber" :value :slobber :cursor :slobber :scripts {:flask-1-with-cream-of-mushroom (add-slobber)}}
:flask-1-with-cream-of-mushroom {:name "Flask with cream of mushrooms soup" :value :flask-1-with-cream-of-mushroom :cursor :flask-with-contents
:scripts {:slobber (add-slobber)}}
:flask-1-slobber {:name "Cream of mushrooms soup and bull slobber" :value :flask-1-slobber :cursor :flask-with-contents
:scripts {:mandrake (make-strength-potion)}}
:medal {:name "Medal of strength" :value :medal :cursor :medal}
:kiss {:name "Kiss for courage" :value :kiss :cursor :kiss}
:sword {:name "Sword of Blergh" :value :sword :cursor :sword}
:mandrake {:name "Mandrake root" :value :mandrake :cursor :mandrake
:scripts {:flask-1-slobber (make-strength-potion) }}
:ball-n-chain {:name "Ball-n-chain" :value :ball-n-chain :cursor :ball-n-chain}
:key {:name "Jail key" :value :key :cursor :key}
:rope {:name "Rope" :value :rope :cursor :rope}
})