#263 Automate Xom testing


This patch adds a new wizmode command (Ctrl-X) that should make debugging, testing and subsequently balancing Xom quite a bit easier. It repeatedly iterates over all possible piety values and calls xom_acts() for each of them, using the current tension and Xom's state of interest (bored or not). Instead of executing the chosen actions, however, action codes are returned to be evaluated later. Data are divided into the different mood groups (teddy bear, plaything, etc.) and all events listed with their percentage values. The result of all of this is then written into the file xom_debug.stat.

The results don't cover the actual game state completely, for example I didn't take into account that "good" summons have a chance of being hostile, or that some attempts of Xom effects might fail deeper within their respective functions, or that annoyance gifts are sometimes acquirement level, etc. Still, I feel it's a fairly good representation of what actually happens when Xom feels like interfering with your life.

Here's an excerpt of an example file:

Mood: You are a plaything of Xom.
GOOD 26.67%
BAD 73.33%
19.33% BAD: miscast (pseudo)
10.00% BAD: miscast (minor)
10.00% BAD: stat loss
10.00% BAD: teleportation
9.33% GOOD: random item gift
8.00% BAD: miscast (major)
7.33% BAD: mutation
5.33% BAD: torment
5.33% GOOD: vitrification
4.00% GOOD: teleportation
3.33% GOOD: mutation
2.00% GOOD: acquirement
2.00% GOOD: annoyance gift
1.33% BAD: summon demons
0.67% BAD: animate weapon
0.67% BAD: banishment
0.67% BAD: miscast (nasty)
0.67% GOOD: spell (no tension)


  • jpeg

    jpeg - 2009-10-10
  • jpeg

    jpeg - 2009-10-10

    I also should have mentioned that I'm still working with trunk's last svn revision of two weeks or so ago. I don't think there were any big changes to xom.cc, and in any case hope that no or only slight adjustments will be necessary to merge it into master.

  • David Lawrence Ramsey

    Applied; thanks.

  • David Lawrence Ramsey

    • status: open --> closed-accepted

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks