summaryrefslogtreecommitdiffstats
path: root/stone_soup/crawl-ref/source/lua/runrest.lua
diff options
context:
space:
mode:
Diffstat (limited to 'stone_soup/crawl-ref/source/lua/runrest.lua')
-rw-r--r--stone_soup/crawl-ref/source/lua/runrest.lua108
1 files changed, 0 insertions, 108 deletions
diff --git a/stone_soup/crawl-ref/source/lua/runrest.lua b/stone_soup/crawl-ref/source/lua/runrest.lua
deleted file mode 100644
index 6f5536506e..0000000000
--- a/stone_soup/crawl-ref/source/lua/runrest.lua
+++ /dev/null
@@ -1,108 +0,0 @@
----------------------------------------------------------------------------
--- runrest.lua: (requires base.lua)
--- Controls shift-running and resting stop conditions.
---
--- To use this, add this line to your init.txt:
--- lua_file = lua/runrest.lua
---
--- What it does:
---
--- * Any message in runrest_ignore_message will *not* stop your run.
--- * Poison damage of x will be ignored if you have at least y hp if you've
--- defined a runrest_ignore_poison = x:y option.
---
--- IMPORTANT: You must define runrest_ options *after* sourcing runrest.lua.
----------------------------------------------------------------------------
-
-g_rr_ignored = { }
-
-chk_interrupt_activity.run = function (iname, cause, extra)
- if not rr_check_params() then
- return false
- end
-
- if iname == 'message' then
- return rr_handle_message(cause, extra)
- end
-
- if iname == 'hp_loss' then
- return rr_handle_hploss(cause, extra)
- end
-
- return false
-end
-
-function rr_handle_message(cause, extra)
- local ch, mess = rr_split_channel(cause)
- for _, m in ipairs(g_rr_ignored) do
- if m:matches(mess, ch) then
- return nil
- end
- end
- return false
-end
-
-function rr_split_channel(s)
- local chi = string.find(s, ':')
- local channel = -1
- if chi and chi > 1 then
- local chstr = string.sub(s, 1, chi - 1)
- channel = crawl.msgch_num(chstr)
- end
-
- local sor = s
- if chi then
- s = string.sub(s, chi + 1, -1)
- end
-
- return channel, s
-end
-
-function rr_handle_hploss(hplost, source)
- -- source == 1 for poisoning
- if not g_rr_yhpmin or not g_rr_hplmax or source ~= 1 then
- return false
- end
-
- -- If the hp lost is smaller than configured, and you have more than the
- -- minimum health, ignore this poison event.
- if hplost <= g_rr_hplmax and you.hp() >= g_rr_yhpmin then
- return nil
- end
-
- return false
-end
-
-function rr_check_params()
- if g_rrim ~= options.runrest_ignore_message then
- g_rrim = options.runrest_ignore_message
- rr_add_messages(nil, g_rrim)
- end
-
- if ( not g_rr_hplmax or not g_rr_yhpmin )
- and options.runrest_ignore_poison
- then
- local opt = options.runrest_ignore_poison
- local hpl, hpm
- _, _, hpl, hpm = string.find(opt, "(%d+)%s*:%s*(%d+)")
- if hpl and hpm then
- g_rr_hplmax = tonumber(hpl)
- g_rr_yhpmin = tonumber(hpm)
- end
- end
- return true
-end
-
-function rr_add_message(s)
- local channel, str = rr_split_channel(s)
- table.insert( g_rr_ignored, crawl.message_filter( str, channel ) )
-end
-
-function rr_add_messages(key, value)
- local segs = crawl.split(value, ',')
- for _, s in ipairs(segs) do
- rr_add_message(s)
- end
-end
-
-chk_lua_option.runrest_ignore_message = rr_add_messages