summaryrefslogtreecommitdiff
path: root/src/game/hazard.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/hazard.lisp')
-rw-r--r--src/game/hazard.lisp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/game/hazard.lisp b/src/game/hazard.lisp
new file mode 100644
index 0000000..c6ad58d
--- /dev/null
+++ b/src/game/hazard.lisp
@@ -0,0 +1,28 @@
+(in-package :dnd)
+
+(defclass hazard (game-object)
+ ((quest
+ :accessor quest-of
+ :index-type idx:hash-index
+ :index-reader hazards-in-quest
+ :documentation "The quest to which this hazard belongs. Initially it is unbound. It becomes boudn when the hazard is added to a quest.")
+ (description
+ :accessor description
+ :initarg :description
+ :initform ""
+ :type string
+ :documentation "")
+ (overcomep
+ :accessor is-overcome
+ :initform nil
+ :documentation "indicates whether or not this hazard has been overcome.")
+ (imminence
+ :accessor imminence-of
+ :type priority
+ :documentation "")
+ (menace ;; difficulty
+ :accessor menace-of
+ :type integer
+ :documentation "How dangerous the hazard is." ))
+ (:metaclass db:persistent-class)
+ (:documentation "Hazard is a superclass for all hazards encountered in a quest. It's chronicle includes data about which heroes fought and which overcame."))