     "us"
     "eu"))
 
-(defn zone [zonenum]
-  (let [i (if (isa? (class zonenum) String)
-            (Integer/parseInt zonenum)
-            zonenum)]
-    (if (>= i (count zonemap))
-      "in an unknown zone"
-      (nth zonemap i))))
-      
+; return zonename with correct location preposition
+(defn zone [zonename]
+  (get zonemap zonename
+    (str "in " zonename)))
+
 (defn role [role]
   (get roles (.toLowerCase role) role))
 

      "neu" "neutral"
      "una" "evil"})

(def zonemap
     ["in The Dungeons of Doom"
      "in Gehennom"
      "in The Gnomish Mines"
      "in The Quest"
      "in Sokoban"
      "in Town"
      "in Fort Ludios"
      "in the Black Market"
      "in Vlad's Tower"
      "on The Elemental Planes"
      "in the Advent Calendar"])

(def achievements
     ["obtained the Bell of Opening"

                        (if (.startsWith (:death data) "ascended")
                          (str " " (:death data) " to demigod-hood.")
                          (format ", left this world %s on level %s, %s."
                                  (zone (:deathdname data))
                                  (:deathlev data)
                                  (:death data)))
                        (possessive-gender (:gender data))
