Mercurial > skaapsteker
view scripts/npc-test @ 153:704d23022f09
Start of dialogue tree / NPC state machine support.
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Tue, 05 Apr 2011 22:18:26 +0200 |
parents | |
children | 445a28f4b38e |
line wrap: on
line source
#!/usr/bin/env python "Skaapsteker npc tester" import os.path import sys import optparse from pprint import pprint sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) from skaapsteker.dialogue import DSM, DsmEvent, DummyWorld def run(npc_file): world = DummyWorld() dsm = DSM(npc_file, world) print "States:" print "-------" pprint(dsm.states.keys()) print while True: state = dsm.get_state() print "%s:" % dsm.state, state.text print "--" for i, choice in state.choices: print "%d: %s" % (i, choice) print "L: Leave" print "--" key = raw_input("Choice? ") key = key.strip().upper() if key == "L": break elif key.isdigit(): dsm.choice(int(key)) print "--" def main(): p = optparse.OptionParser(usage="%prog [options] <npc json state file>") opts, args = p.parse_args() if len(args) != 1: p.error("Must provide an npc json file") run(args[0]) if __name__ == '__main__': main()