Files
gitea-docker/desktop/src-common/advent/screens/rooms/space.clj
2014-12-20 18:55:32 -08:00

57 lines
3.9 KiB
Clojure

(ns advent.screens.rooms.space
(:require [advent.screens.rooms :as rooms]
[advent.actions :as actions]
[advent.screens.items :as items]
[advent.utils :as utils]
[clojure.zip :as zip]
[clojure.set :as set]
[clojure.string :as str]
[play-clj.core :refer :all]
[play-clj.ui :refer :all]
[play-clj.utils :refer :all]
[play-clj.g2d :refer :all]))
(defn taunt [screen entities]
(when (and (not (get-in entities [:actions :script-running?]))
(get-in entities [:state :active?]))
((actions/get-script entities (actions/do-dialogue entities :blergh (rand-nth ["Come on, little man! Try and hit me!"
"What's the matter? Cold feet?"
"Come here and fight me like man!"
"Your precious Georgia McGorgeous would be laughing if she saw you now."
"Pick up your weapon and fight!"]))) entities))
nil)
(defn make [screen]
(let [blergh-stand (texture "space/blergh-stand.png")
blergh-talk (texture "space/blergh-talk.png")
blergh-flex (texture "space/blergh-flex.png")
blergh-talk-anim (animation 0.3 [blergh-talk blergh-stand])
blergh-stand-anim (animation 0.7 [blergh-flex blergh-stand])
blergh-swing (utils/make-anim "space/blergh-swing.png" [106 165] 0.1 [0 0 1 2 3 4 ])
blergh-appear (utils/make-anim "space/blergh-appear.png" [106 165] 0.05 (flatten [(range 10) 9 9 9 9 9 9 9 9 9 ]))]
(rooms/make :music :town-1
:interactions
{}
:layers [(assoc (texture "space/background.png") :x 0 :y 0 :baseline 0)]
:timers {:taunt [10.0 8.0 taunt]}
:entities {:blergh (assoc (animation->texture screen blergh-stand-anim)
:x 180 :y 50 :baseline 190
:anim blergh-stand-anim :anim-start 0
:stand blergh-stand-anim :talk blergh-talk-anim
:swing blergh-swing
:appear blergh-appear
:script (actions/get-script entities (actions/play-animation entities :blergh :appear :stop? false) (actions/do-dialogue entities :blergh "Come on! Try and hit me!"))
:scripts {:sword (actions/get-script entities
(actions/walk-straight-to entities :ego [205 45])
(actions/play-animation entities :ego :swing)
(actions/do-dialogue entities :blergh "Ha ha ha! Is that the best you can do?"
:blergh "Take this!")
(actions/play-animation entities :blergh :swing)
(actions/walk-straight-to entities :ego [100 45] :anim :squat :override-dir :right :speed 3.0)
(actions/do-dialogue entities :ego "Ouch!"
:blergh "Why don't you try that again?"))})}
:collision "space/collision.png"
:scale-fn (constantly 1.5)
:start-pos [43 80])))