Clean up hells lua a little, move Serpent code to vault.lua
authortheTower <mwclaws@gmail.com>
Thu, 18 Sep 2014 03:06:52 +0000 (23:06 -0400)
committertheTower <mwclaws@gmail.com>
Thu, 18 Sep 2014 03:06:52 +0000 (23:06 -0400)
crawl-ref/source/dat/des/branches/coc.des
crawl-ref/source/dat/des/branches/dis.des
crawl-ref/source/dat/des/branches/geh.des
crawl-ref/source/dat/des/branches/tar.des
crawl-ref/source/dat/dlua/vault.lua

index c3a7265..65a5274 100644 (file)
@@ -4,6 +4,8 @@
 #          Coc (order: Dis, Geh, Coc, Tar)
 ##############################################################################
 
+: require('dlua/vault.lua')
+
 {{
 function coc_setup(e)
    e.place("Coc:7")
@@ -20,26 +22,6 @@ function coc_setup(e)
    e.set_feature_name("stone_wall", "ice-covered stone wall")
    e.set_feature_name("floor", "Frost-covered floor")
 end
-
--- the Serpent should appear in exactly one hell end
--- XXX: are things like shafts going to break this?
-function hell_branches_remaining()
-   local hell_branches = { "Geh", "Coc", "Dis", "Tar" }
-   local ret = #hell_branches
-   for _, branch in pairs(hell_branches) do
-      if travel.find_deepest_explored(branch) == 7 then
-         ret = ret - 1
-      end
-   end
-   return ret
-end
-
-function serpent_of_hell_setup(e)
-   if not you.uniques("the Serpent of Hell") and
-      crawl.one_chance_in(hell_branches_remaining()) then
-      e.kmons('D = the Serpent of Hell')
-   end
-end
 }}
 
 ##############################################################################
index 09477fe..6d36ad6 100644 (file)
@@ -4,8 +4,9 @@
 #          (order: Dis, Geh, Coc, Tar)
 ##############################################################################
 
-{{
+: require('dlua/vault.lua')
 
+{{
 function dis_setup(e)
    e.place("Dis:7")
    e.tags("dis", "no_rotate")
@@ -21,26 +22,6 @@ function dis_rune(e)
    e.kitem('O = iron rune of Zot')
 end
 
--- the Serpent should appear in exactly one hell end
--- XXX: are things like shafts going to break this?
-function hell_branches_remaining()
-   local hell_branches = { "Geh", "Coc", "Dis", "Tar" }
-   local ret = #hell_branches
-   for _, branch in pairs(hell_branches) do
-      if travel.find_deepest_explored(branch) == 7 then
-         ret = ret - 1
-      end
-   end
-   return ret
-end
-
-function serpent_of_hell_setup(e)
-   if not you.uniques("the Serpent of Hell") and
-      crawl.one_chance_in(hell_branches_remaining()) then
-      e.kmons('D = the Serpent of Hell')
-   end
-end
-
 function callback.grunt_iron_hall_animate(data,triggerable,trigger,marker,ev)
     if not dgn.persist.grunt_iron_hall_animated then
         dgn.persist.grunt_iron_hall_animated = true
@@ -79,7 +60,6 @@ function dis_statues(e)
     e.tile("G = dngn_statue_iron")
     e.set_feature_name("granite_statue", "iron statue")
 end
-
 }}
 
 ##############################################################################
index 1cf5f39..a5fd4f9 100644 (file)
@@ -4,8 +4,9 @@
 #          Geh (order: Dis, Geh, Coc, Tar)
 ##############################################################################
 
-{{
+: require('dlua/vault.lua')
 
+{{
 function geh_setup(e)
    e.place("Geh:7")
    e.lflags("no_tele_control")
@@ -18,41 +19,6 @@ function geh_setup(e)
    e.set_feature_name("floor", "Ashen ground")
    e.set_feature_name("metal_wall", "tempered metal wall")
 end
-
--- the Serpent should appear in exactly one hell end
--- XXX: are things like shafts going to break this?
-function hell_branches_remaining()
-   local hell_branches = { "Geh", "Coc", "Dis", "Tar" }
-   local ret = #hell_branches
-   for _, branch in pairs(hell_branches) do
-      if travel.find_deepest_explored(branch) == 7 then
-         ret = ret - 1
-      end
-   end
-   return ret
-end
-
-function serpent_of_hell_setup(e)
-   if not you.uniques("the Serpent of Hell") and
-      crawl.one_chance_in(hell_branches_remaining()) then
-      e.kmons('D = the Serpent of Hell')
-   end
-end
-
-function callback.grunt_iron_hall_animate(data,triggerable,trigger,marker,ev)
-    if not dgn.persist.grunt_iron_hall_animated then
-        dgn.persist.grunt_iron_hall_animated = true
-        for slave in iter.slave_iterator("trap_statue", 1) do
-        if crawl.one_chance_in(4) then
-            dgn.terrain_changed(slave.x, slave.y, "floor", false, false, false)
-            dgn.create_monster(slave.x, slave.y,
-                               "patrolling iron golem generate_awake")
-        end
-    end
-    crawl.mpr("You hear the creaking of ancient metal!", "warning")
-    end
-end
-
 }}
 
 
index 2662ac1..6fcbdd7 100644 (file)
@@ -4,8 +4,9 @@
 #          Tar (order: Dis, Geh, Coc, Tar)
 ##############################################################################
 
-{{
+: require('dlua/vault.lua')
 
+{{
 function tar_setup(e)
    e.place("Tar:7")
    e.tags("no_rotate")
@@ -14,26 +15,6 @@ function tar_setup(e)
    e.kitem('O = bone rune of Zot')
 end
 
--- the Serpent should appear in exactly one hell end
--- XXX: are things like shafts going to break this?
-function hell_branches_remaining()
-   local hell_branches = { "Geh", "Coc", "Dis", "Tar" }
-   local ret = #hell_branches
-   for _, branch in pairs(hell_branches) do
-      if travel.find_deepest_explored(branch) == 7 then
-         ret = ret - 1
-      end
-   end
-   return ret
-end
-
-function serpent_of_hell_setup(e)
-   if not you.uniques("the Serpent of Hell") and
-      crawl.one_chance_in(hell_branches_remaining()) then
-      e.kmons('D = the Serpent of Hell')
-   end
-end
-
 function callback.grunt_gauntlet_trap_activate(data,triggerable,trigger,marker,ev)
     if not dgn.persist.grunt_gauntlet_trap_triggered then
     for slave in iter.slave_iterator("trap_wall2", 1) do
index 401608b..d678463 100644 (file)
@@ -83,3 +83,23 @@ function ks_random_setup(e, norandomexits)
         e.subst("T : V")
     end
 end
+
+-- the Serpent should appear in exactly one hell end
+-- XXX: are things like shafts going to break this?
+function hell_branches_remaining()
+   local hell_branches = { "Geh", "Coc", "Dis", "Tar" }
+   local ret = #hell_branches
+   for _, branch in pairs(hell_branches) do
+      if travel.find_deepest_explored(branch) == 7 then
+         ret = ret - 1
+      end
+   end
+   return ret
+end
+
+function serpent_of_hell_setup(e)
+   if not you.uniques("the Serpent of Hell") and
+      crawl.one_chance_in(hell_branches_remaining()) then
+      e.kmons('D = the Serpent of Hell')
+   end
+end