init commit
This commit is contained in:
49
test/minibaldur/ecs_test.clj
Normal file
49
test/minibaldur/ecs_test.clj
Normal file
@@ -0,0 +1,49 @@
|
||||
(ns minibaldur.ecs-test
|
||||
(:require [clojure.test :refer :all]
|
||||
[minibaldur.ecs :refer :all]))
|
||||
|
||||
(defcomponent age)
|
||||
(defcomponent name)
|
||||
|
||||
(defentity
|
||||
(name "Cole")
|
||||
(age 26))
|
||||
|
||||
(defentity
|
||||
(name "Dane")
|
||||
(age 27))
|
||||
|
||||
(defn age-up
|
||||
[entity]
|
||||
(age entity (inc (age entity))))
|
||||
|
||||
(deftest basic
|
||||
(run-e age-up :age)
|
||||
(is (= 28 (age (find-entity-by :name "Dane")))))
|
||||
|
||||
(defcomponent alignment)
|
||||
(defcomponent health)
|
||||
|
||||
(defentity
|
||||
(name "Goblin")
|
||||
(alignment :evil)
|
||||
(health 10))
|
||||
|
||||
(defentity
|
||||
(name "Fey")
|
||||
(alignment :good)
|
||||
(health 2)) ;; Good alignment, will not be attacked
|
||||
|
||||
(defentity
|
||||
(name "Evil Bystander")
|
||||
(alignment :evil)) ;; No health, will not be attacked
|
||||
|
||||
(defn damage-evil-creatures
|
||||
[entity dmg]
|
||||
(when (= (alignment entity) :evil)
|
||||
(health entity (max 0 (- (health entity) dmg)))))
|
||||
|
||||
(deftest full
|
||||
(run-e damage-evil-creatures [:alignment :health] 2)
|
||||
(is (= 2 (health (find-entity-by :name "Fey"))))
|
||||
(is (= 8 (health (find-entity-by :name "Goblin")))))
|
||||
3
test/minibaldur/engine_test.clj
Normal file
3
test/minibaldur/engine_test.clj
Normal file
@@ -0,0 +1,3 @@
|
||||
(ns minibaldur.engine-test
|
||||
(:require [clojure.test :refer :all]
|
||||
[minibaldur.engine :refer :all]))
|
||||
Reference in New Issue
Block a user