# Version 1.0 Oct 31, 2003

from dragons2 import Game, Player, Powerobj

class Session:

    def __init__(self):
        self.thegame = ""

    def play(self):
        self.menu1()
        print "Thanks for playing"

    def menu1(self):
        while True:
            print "========================"            
            print "1. Define Game "
            print "2. Quit"
            print
            userchoice = raw_input("Your selection (#): ")
            if userchoice=="1":
                width  = raw_input("Width of game board? ")
                height = raw_input("Height of game board? ")
                self.game = Game( (int(width),int(height)) )
                print self.game
                self.menu2()
            else:
                self.thegame = ""
                break
                            
    def menu2(self):
        while True:
            print "========================"
            print "1. Add/Remove Player "
            print "2. Add/Remove Object "
            print "3. Move Player"
            print "4. Show Board"
            print "5. List Players"
            print "6. List Power Objects"
            print "7. Exit"
            print
            userchoice = raw_input("Your selection (#): ")
            
            if userchoice=="1":
                playername = raw_input("Name of player? ")
                if playername in self.game.players:
                    oldplayer = self.game.players[playername]
                    self.game.removeplayer(oldplayer)
                    print "Player %s removed" % playername
                else:
                    newplayer = Player(playername)
                    self.game.addplayer(newplayer)
                    print "Player %s added" % newplayer.name
                    
            elif userchoice=="2":
                objname = raw_input("Name of object? ")
                if objname in self.game.pwobjects:
                    pwobj = self.game.pwobjects[objname]
                    self.game.removeobject(pwobj)
                    print "Power object %s removed" % objname
                else:
                    pwobj = Powerobj(objname)
                    self.game.addobject(pwobj)
                    print "Power object %s added" % pwobj.name

            elif userchoice=="3":
                playername = raw_input("Move which player? ")
                if playername in self.game.players:
                    oplayer = self.game.players[playername]
                    direction = raw_input("Which direction? (N/S/E/W): ")
                    howmany = raw_input("By how many? ")
                    oplayer.move(direction, int(howmany))
                    self.game.checkpower()
                else:
                    print "Player not found!"
                    
            elif userchoice=="4":
                self.game.showboard()
                    
            elif userchoice=="5":
                self.game.showplayers()
                
            elif userchoice=="6":
                self.game.showobjects()
                
            elif userchoice=="7":
                break
            else:
                print "Huh?"

def test():
    s = Session()
    s.play()
    
