diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2010-04-23 16:20:38 +1000 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2010-04-23 16:24:57 +1000 |
commit | 3e8b9e467c7da790122421e83df3a9ee367769d5 (patch) | |
tree | 71c31b36090217884b174e597359b759340e4fc2 /crawl-ref/source/test | |
parent | 542e290bdf73551865a9882c9195b62e92575ff3 (diff) | |
download | crawl-ref-3e8b9e467c7da790122421e83df3a9ee367769d5.tar.gz crawl-ref-3e8b9e467c7da790122421e83df3a9ee367769d5.zip |
"not_cursed" tag for Vault items, test suite. (#1397).
As requested by felirx, applying "not_cursed" to an item description
prevents it from being generated as cursed (or rather, it removes a
curse if there is one).
Also includes a test suite that generates a hundred iterations of an
item and reports on cursed status: 302 or so out of 5000 "short sword"
items were generated cursed, while 0 out of 5000 "short sword
not_cursed" items were generated cursed.
Diffstat (limited to 'crawl-ref/source/test')
-rw-r--r-- | crawl-ref/source/test/item_curse.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/crawl-ref/source/test/item_curse.lua b/crawl-ref/source/test/item_curse.lua new file mode 100644 index 0000000000..64a0514e30 --- /dev/null +++ b/crawl-ref/source/test/item_curse.lua @@ -0,0 +1,33 @@ +-- Test handling of not_cursed in item curse status generation. + +local niters = 5000 +local item_type = "short sword not_cursed" +local place = dgn.point(20, 20) +local curse_count = 0 + +local function test_item (place, item_type) + dgn.create_item(place.x, place.y, item_type) + local item = dgn.items_at(place.x, place.y)[1] + if item.is_cursed then + curse_count = curse_count + 1 + end +end + +local function do_item_tests (niters, item_type, place) + debug.goto_place("D:1") + dgn.dismiss_monsters() + dgn.grid(place.x, place.y, "floor") + + for i=1, niters do + if #dgn.items_at(place.x, place.y) ~= 0 then + iter.stack_destroy(place) + end + test_item(place, item_type) + end + + if curse_count ~= 0 then + error("Generated " .. curse_count .. " cursed '" .. item_type .. "' out of " .. niters .. ".") + end +end + +do_item_tests (niters, item_type, place) |