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