diff orpg/gametree/nodehandlers/StarWarsd20.py @ 152:6081bdc2b8d5 beta

Traipse Beta 'OpenRPG' {091125-00} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc's main goal is to offer more advanced features and enhance the productivity of the user. Update Summary (Beta) Added Bookmarks Fix to Remote Admin Commands Minor fix to text based Server Fix to Pretty Print, from Core Fix to Splitter Nodes not being created Fix to massive amounts of images loading, from Core Added 'boot' command to remote admin Added confirmation window for sent nodes Minor changes to allow for portability to an OpenSUSE linux OS Miniatures Layer pop up box allows users to turn off Mini labels, from FlexiRPG Zoom Mouse plugin added Images added to Plugin UI Switching to Element Tree Map efficiency, from FlexiRPG Added Status Bar to Update Manager default_manifest.xml renamed to default_upmana.xml Cleaner clode for saved repositories New TrueDebug Class in orpg_log (See documentation for usage) Mercurial's hgweb folder is ported to upmana Pretty important update that can help remove thousands of dead children from your gametree. Children, <forms />, <group_atts />, <horizontal />, <cols />, <rows />, <height />, etc... are all tags now. Check your gametree and look for dead children!! New Gametree Recursion method, mapping, and context sensitivity. !Infinite Loops return error instead of freezing the software! New Syntax added for custom PC sheets Tip of the Day added, from Core and community Fixed Whiteboard ID to prevent random line or text deleting. Modified ID's to prevent non updated clients from ruining the fix.
author sirebral
date Wed, 25 Nov 2009 06:16:35 -0600
parents dcf4fbe09b70
children dcae32e219f1
line wrap: on
line diff
--- a/orpg/gametree/nodehandlers/StarWarsd20.py	Tue Nov 24 17:18:40 2009 -0600
+++ b/orpg/gametree/nodehandlers/StarWarsd20.py	Wed Nov 25 06:16:35 2009 -0600
@@ -29,6 +29,7 @@
 __version__ = "$Id: StarWarsd20.py,v 1.18 2006/11/15 12:11:23 digitalxero Exp $"
 
 from core import *
+from containers import *
 from orpg.tools.orpg_log import debug
 from xml.etree.ElementTree import parse
 
@@ -50,7 +51,6 @@
         for c in children:
             self.tree.load_xml(c,self.mytree_node)
 
-
     def on_drop(self,evt):
         drag_obj = self.tree.drag_obj
         #if self.is_my_child(self.mytree_node,drag_obj.mytree_node):
@@ -73,10 +73,8 @@
         html_str += "</td></tr>\n"
         html_str += "<tr><td>"
         max = tree.GetChildrenCount(handler.mytree_node)
-        try:
-            (child,cookie)=self.tree.GetFirstChild(self.mytree_node,cookie)
-        except: # If this happens we probably have a newer version of wxPython
-            (child,cookie)=self.tree.GetFirstChild(self.mytree_node)
+        try: (child,cookie)=self.tree.GetFirstChild(self.mytree_node,cookie)
+        except:  (child,cookie)=self.tree.GetFirstChild(self.mytree_node)
         obj = self.tree.GetPyData(child)
         for m in xrange(max):
             html_str += "<p>" + obj.tohtml()
@@ -92,17 +90,10 @@
     def get_char_name( self ):
         return self.child_handlers['general'].get_char_name()
 
-##    def set_char_pp(self,attr,evl):
-##        return self.child_handlers['pp'].set_char_pp(attr,evl)
-##
-##    def get_char_pp( self, attr ):
-##        return self.child_handlers['pp'].get_char_pp(attr)
-##
     def get_char_lvl( self, attr ):
         return self.child_handlers['classes'].get_char_lvl(attr)
 
 
-
 class SWd20char_handler(node_handler):
     """ Node handler for a SWd20 charactor
         <nodehandler name='?'  module='StarWarsd20' class='SWd20char_handler'  />
@@ -149,28 +140,17 @@
             range_attack.set("forth","0")
             range_attack.set("fifth","0")
             range_attack.set("sixth","0")
-
             gen_list = self.xml.findall('general')[0]
 
             for tag in ("currentxp","xptolevel"):
                 node_list = xml_dom.findall(tag)
                 gen_list.append(node_list[0])
-            ## temp fix
-            #parent = self.xml._get_parentNode()
-            #old_dom = parent.replaceChild(xml_dom,self.xml)
-            #self.xml = xml_dom
         print old_version
 
 
     def get_char_name( self ):
         return self.child_handlers['general'].get_char_name()
 
-##    def set_char_pp(self,attr,evl):
-##        return self.child_handlers['pp'].set_char_pp(attr,evl)
-##
-##    def get_char_pp( self, attr ):
-##        return self.child_handlers['pp'].get_char_pp(attr)
-
     def get_char_lvl( self, attr ):
         return self.child_handlers['classes'].get_char_lvl(attr)
 
@@ -191,7 +171,6 @@
     def get_use_panel(self,parent):
         return tabbed_panel(parent,self,2)
 
-
     def tohtml(self):
         html_str = "<table><tr><td colspan=2 >"+self.child_handlers['general'].tohtml()+"</td></tr>"
         html_str += "<tr><td width='50%' valign=top >"+self.child_handlers['abilities'].tohtml()
@@ -199,22 +178,21 @@
         html_str += "<P>" + self.child_handlers['attacks'].tohtml()
         html_str += "<P>" + self.child_handlers['ac'].tohtml()
         html_str += "<P>" + self.child_handlers['feats'].tohtml()
-        #html_str += "<P>" + self.child_handlers['spells'].tohtml()
-        #html_str += "<P>" + self.child_handlers['divine'].tohtml()
-        #html_str += "<P>" + self.child_handlers['powers'].tohtml()
         html_str += "<P>" + self.child_handlers['inventory'].tohtml() +"</td>"
         html_str += "<td width='50%' valign=top >"+self.child_handlers['classes'].tohtml()
         html_str += "<P>" + self.child_handlers['wp'].tohtml()
         html_str += "<P>" + self.child_handlers['vp'].tohtml()
-        #html_str += "<P>" + self.child_handlers['pp'].tohtml()
         html_str += "<P>" + self.child_handlers['skills'].tohtml() +"</td>"
         html_str += "</tr></table>"
         return html_str
 
     def about(self):
-        html_str = "<img src='" + dir_struct["icon"]+'d20_logo.gif' "><br /><b>d20 Character Tool v0.7 beta</b>"
+        """html_str = "<img src='" + dir_struct["icon"]+'d20_logo.gif' "><br /><b>d20 Character Tool v0.7 beta</b>"
         html_str += "<br />by Chris Davis<br />chris@rpgarchive.com"
-        return html_str
+        return html_str"""
+        text = 'd20 Character Tool 0.7 beta\n'
+        text += 'by Chris Davis chris@rpgarchive.com'
+        return text
 
     def get_char_name( self ):
         return self.child_handlers['general'].get_char_name()
@@ -228,16 +206,10 @@
         return self.child_handlers['vp'].get_max_vp()
     def get_current_vp( self ):
         return self.child_handlers['vp'].get_current_vp()
-
-##    def set_char_pp(self,attr,evl):
-##        return self.child_handlers['pp'].set_char_pp(attr,evl)
-##
-##    def get_char_pp( self, attr ):
-##        return self.child_handlers['pp'].get_char_pp(attr)
-
     def get_char_lvl( self, attr ):
         return self.child_handlers['classes'].get_char_lvl(attr)
 
+""" Removed to use the supplied Tabbed Panel
 class tabbed_panel(wx.Notebook):
     def __init__(self, parent, handler, mode):
         wx.Notebook.__init__(self, parent, -1, size=(1200,800))
@@ -253,19 +225,14 @@
         obj = tree.GetPyData(child)
         for m in xrange(max):
     
-            if mode == 1:
-                panel = obj.get_design_panel(self)
-            else:
-                panel = obj.get_use_panel(self)
+            if mode == 1: panel = obj.get_design_panel(self)
+            else: panel = obj.get_use_panel(self)
             name = obj.xml.get("name")
-
-            if panel:
-                self.AddPage(panel,name)
+            if panel: self.AddPage(panel,name)
             if m < max-1: 
                 child = tree.GetNextSibling(child)
                 obj = tree.GetPyData(child)
 
-
     def about(self):
         html_str = "<img src='" + dir_struct["icon"]+'d20_logo.gif' "><br /><b>d20 Character Tool v0.7 beta</b>"
         html_str += "<br />by Chris Davis<br />chris@rpgarchive.com"
@@ -274,14 +241,9 @@
     def get_char_name( self ):
         return self.child_handlers['general'].get_char_name()
 
-##    def set_char_pp(self,attr,evl):
-##        return self.child_handlers['pp'].set_char_pp(attr,evl)
-##
-##    def get_char_pp( self, attr ):
-##        return self.child_handlers['pp'].get_char_pp(attr)
-
     def get_char_lvl( self, attr ):
         return self.child_handlers['classes'].get_char_lvl(attr)
+"""
 
 class SWd20_char_child(node_handler):
     """ Node Handler for skill.  This handler will be
@@ -294,7 +256,6 @@
         self.frame = component.get('frame')
         self.myeditor = None
 
-
     def on_drop(self, evt):
         pass
 
@@ -360,14 +321,11 @@
         if item == self.mytree_node:
             SWd20_char_child.on_ldclick(self,evt)
         else:
-            if rank == 0 and untrained == 0:
-                chat.Post('Can\'t use untrained!',True,True)
+            if rank == 0 and untrained == 0: chat.Post("Can't use untrained!",True,True)
             else:
                 mod = self.get_mod(name)
-                if mod >= 0:
-                    mod1 = "+"
-                else:
-                    mod1 = ""
+                if mod >= 0: mod1 = "+"
+                else: mod1 = ""
                 txt = '%s Skill Check: [1d20%s%s]' % (name, mod1, mod)
                 chat.ParsePost(txt,True,True)
 
@@ -388,10 +346,8 @@
             stat_mod = str(self.char_hander.child_handlers['abilities'].get_mod(stat))
             misc = n.get('misc')
             mod = str(self.get_mod(name))
-            if mod >= 0:
-                mod1 = "+"
-            else:
-                mod1 = ""
+            if mod >= 0: mod1 = "+"
+            else: mod1 = ""
             html_str = html_str + "<td>"+stat_mod+"</td><td>"+misc+'</td><td>%s%s</td></tr>' % (mod1, mod)
         html_str = html_str + "</table>"
         return html_str
@@ -420,10 +376,8 @@
             SWd20_char_child.on_ldclick( self, evt )
         else:
             mod = self.get_mod( name )
-            if mod >= 0:
-                mod1 = "+"
-            else:
-                mod1 = ""
+            if mod >= 0: mod1 = "+"
+            else: mod1 = ""
             chat = self.chat
             txt = '%s check: [1d20%s%s]' % ( name, mod1, mod )
             chat.ParsePost( txt, True, True )
@@ -451,10 +405,8 @@
             abbr = n.get('abbr')
             base = n.get('base')
             mod = str(self.get_mod(abbr))
-            if mod >= 0:
-                mod1 = "+"
-            else:
-                mod1 = ""
+            if mod >= 0: mod1 = "+"
+            else: mod1 = ""
             html_str = html_str + "<tr ALIGN='center'><td>"+name+"</td><td>"+base+'</td><td>%s%s</td></tr>' % (mod1, mod)
         html_str = html_str + "</table>"
         return html_str
@@ -481,8 +433,6 @@
         stat_mod = self.char_hander.child_handlers['abilities'].get_mod(stat)
         base = int(save.get('base'))
         miscmod = int(save.get('miscmod'))
-#        magmod = int(save.get('magmod'))
-#        total = stat_mod + base + miscmod + magmod
         total = stat_mod + base + miscmod
         return total
 
@@ -496,10 +446,8 @@
             #self.frame.add_panel(wnd)
         else:
             mod = self.get_mod(name)
-            if mod >= 0:
-                mod1 = "+"
-            else:
-                mod1 = ""
+            if mod >= 0: mod1 = "+"
+            else: mod1 = ""
             chat = self.chat
             txt = '%s save: [1d20%s%s]' % (name, mod1, mod)
             chat.ParsePost( txt, True, True )
@@ -523,10 +471,8 @@
             mag = n.get('magmod')
             misc = n.get('miscmod')
             mod = str(self.get_mod(name))
-            if mod >= 0:
-                mod1 = "+"
-            else:
-                mod1 = ""
+            if mod >= 0: mod1 = "+"
+            else: mod1 = ""
             html_str = html_str + "<td>"+stat_mod+"</td><td>"+mag+"</td>"
             html_str = html_str + '<td>'+misc+'</td><td>%s%s</td></tr>' % (mod1, mod)
         html_str = html_str + "</table>"
@@ -577,8 +523,7 @@
     def tohtml(self):
         html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>Classes</th></tr><tr><td>"
         n_list = self.xml.getchildren()
-        for n in n_list:
-            html_str += n.get('name') + " ("+n.get('level')+"), "
+        for n in n_list: html_str += n.get('name') + " ("+n.get('level')+"), "
         html_str = html_str[:len(html_str)-2] + "</td></tr></table>"
         return html_str
 
@@ -587,10 +532,8 @@
         for n in node_list:
             lvl = n.get('level')
             type = n.get('name')
-            if attr == "level":
-                return lvl
-            elif attr == "class":
-                return type
+            if attr == "level": return lvl
+            elif attr == "class": return type
 
 
 class SWd20feats(SWd20_char_child):
@@ -608,8 +551,7 @@
     def tohtml(self):
         html_str = "<table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th>Feats</th></tr><tr><td>"
         n_list = self.xml.getchildren()
-        for n in n_list:
-            html_str += n.get('name')+ ", "
+        for n in n_list: html_str += n.get('name')+ ", "
         html_str = html_str[:len(html_str)-2] + "</td></tr></table>"
         return html_str
 
@@ -673,15 +615,11 @@
         return html_str
 
     def get_max_hp( self ):
-        try:
-            return eval( self.xml.get( 'max' ) )
-        except:
-            return 0
+        try: return eval( self.xml.get( 'max' ) )
+        except: return 0
     def get_current_hp( self ):
-        try:
-            return eval( self.xml.get( 'current' ) )
-        except:
-            return 0
+        try: return eval( self.xml.get( 'current' ) )
+        except: return 0
 
 class SWd20vp(SWd20_char_child):
     """ Node Handler for hit points.  This handler will be
@@ -703,15 +641,11 @@
         return html_str
 
     def get_max_vp( self ):
-        try:
-            return eval( self.xml.get( 'max' ) )
-        except:
-            return 0
+        try: return eval( self.xml.get( 'max' ) )
+        except: return 0
     def get_current_vp( self ):
-        try:
-            return eval( self.xml.get( 'current' ) )
-        except:
-            return 0
+        try: return eval( self.xml.get( 'current' ) )
+        except: return 0
 
 class SWd20attacks(SWd20_char_child):
     """ Node Handler for attacks.  This handler will be
@@ -768,16 +702,12 @@
             mod = int(self.weapons[name].get('mod'))
             if self.weapons[name].get('range') == '0':
                 mod = mod + self.get_mod('m')
-                if mod >= 0:
-                    mod1 = "+"
-                else:
-                    mod1 = ""
+                if mod >= 0: mod1 = "+"
+                else: mod1 = ""
             else:
                 mod = mod + self.get_mod('r')
-                if mod >= 0:
-                    mod1 = "+"
-                else:
-                    mod1 = ""
+                if mod >= 0: mod1 = "+"
+                else: mod1 = ""
             chat = self.chat
             dmg = self.weapons[name].get('damage')
             lvl = self.get_char_lvl('level')
@@ -815,10 +745,8 @@
         n_list = self.xml.findall('weapon')
         for n in n_list:
             mod = n.get('mod')
-            if mod >= 0:
-                mod1 = "+"
-            else:
-                mod1 = ""
+            if mod >= 0: mod1 = "+"
+            else: mod1 = ""
             ran = n.get('range')
             total = str(int(mod) + self.get_mod(ran))
             html_str += """<P><table width=100% border=1 ><tr BGCOLOR=#E9E9E9 ><th colspan=2>Weapon</th>
@@ -850,10 +778,8 @@
         ac_total += self.get_total('bonus')
         dex_mod = self.char_hander.child_handlers['abilities'].get_mod('Dex')
         max_dex = self.get_max_dex()
-        if dex_mod < max_dex:
-            ac_total += dex_mod
-        else:
-            ac_total += max_dex
+        if dex_mod < max_dex: ac_total += dex_mod
+        else: ac_total += max_dex
         return ac_total
 
     def get_max_dex(self):
@@ -861,15 +787,13 @@
         dex = 10
         for a in armor_list:
             temp = int(a.get("maxdex"))
-            if temp < dex:
-                dex = temp
+            if temp < dex: dex = temp
         return dex
 
     def get_total(self,attr):
         armor_list = self.xml.findall('armor')
         total = 0
-        for a in armor_list:
-            total += int(a.get(attr))
+        for a in armor_list: total += int(a.get(attr))
         return total
 
     def get_design_panel(self,parent):
@@ -909,12 +833,10 @@
     def __init__(self, parent):
         wx.Panel.__init__(self, parent, -1)
 
-        #self.build_ctrls()
         self.Bind(wx.EVT_SIZE, self.on_size)
 
     def on_size(self,event):
         s = self.GetClientSizeTuple()
-        #self.splitter.SetDimensions(0,0,s[0],s[1])
 
 class outline_panel(wx.Panel):
     def __init__(self, parent, handler, wnd, txt,):
@@ -937,8 +859,7 @@
         self.main_sizer = wx.BoxSizer(wx.HORIZONTAL)
         self.panels = {}
         keys = handler.child_handlers.keys()
-        for k in keys:
-            self.panels[k] = handler.child_handlers[k].get_design_panel(self, [k])
+        for k in keys: self.panels[k] = handler.child_handlers[k].get_design_panel(self, [k])
         self.sub_sizer = wx.BoxSizer(wx.VERTICAL)
         self.sub_sizer2 = wx.BoxSizer(wx.VERTICAL)
         self.sub_sizer.Add(self.panels['general'], 1, wx.EXPAND)
@@ -946,16 +867,13 @@
 
         self.sub_sizer.Add(self.panels['attacks'], 2, wx.EXPAND)
         self.sub_sizer.Add(self.panels['ac'], 1, wx.EXPAND)
-        #self.sub_sizer.Add(self.panels['spells'], 1, wx.EXPAND)
 
         self.sub_sizer2.Add(self.panels['classes'], 2, wx.EXPAND)
         self.sub_sizer2.Add(self.panels['wp'], 1, wx.EXPAND)
         self.sub_sizer2.Add(self.panels['vp'], 1, wx.EXPAND)
-        #self.sub_sizer2.Add(self.panels['pp'], 1, wx.EXPAND)
         self.sub_sizer2.Add(self.panels['saves'], 2, wx.EXPAND)
 
         self.sub_sizer2.Add(self.panels['feats'], 2, wx.EXPAND)
-        #self.sub_sizer2.Add(self.panels['powers'], 2, wx.EXPAND)
         self.sub_sizer2.Add(self.panels['skills'], 3, wx.EXPAND)
 
         self.main_sizer.Add(self.sub_sizer,   1, wx.EXPAND)
@@ -978,8 +896,6 @@
         self.panels['saves'].panel.refresh_data()
         self.panels['skills'].panel.refresh_data()
         self.panels['attacks'].panel.refresh_data()
-#        self.panels['powers'].panel.refresh_data()
-#        self.panels['spells'].panel.refresh_data()
 
 HOWTO_MAX = wx.NewId()
 
@@ -1050,58 +966,13 @@
 
     def on_text(self,evt):
         id = evt.GetId()
-        if id == VP_CUR:
-            self.xml.set('current',evt.GetString())
-        elif id == VP_MAX:
-            self.xml.set('max',evt.GetString())
+        if id == VP_CUR: self.xml.set('current',evt.GetString())
+        elif id == VP_MAX: self.xml.set('max',evt.GetString())
 
     def on_size(self,evt):
         s = self.GetClientSizeTuple()
         self.sizer.SetDimension(0,0,s[0],s[1])
 
-#PP_CUR = wx.NewId()
-#PP_MAX = wx.NewId()
-#PP_FRE = wx.NewId()
-#PP_MFRE = wx.NewId()
-
-#class pp_panel(wx.Panel):
-#    def __init__(self, parent, handler):
-#        wx.Panel.__init__(self, parent, -1)
-#        pname = handler.xml.set("name", 'PowerPoints')
-#        self.sizer = wx.FlexGridSizer(2, 4, 2, 2)  # rows, cols, hgap, vgap
-#        self.xml = handler.xml
-#
-#        self.sizer.AddMany([ (wx.StaticText(self, -1, "PP Current:"),   0, wx.ALIGN_CENTER_VERTICAL),
-#                 (wx.TextCtrl(self, PP_CUR, self.xml.get('current1')),   0, wx.EXPAND),
-#                 (wx.StaticText(self, -1, "PP Max:"), 0, wx.ALIGN_CENTER_VERTICAL),
-#                 (wx.TextCtrl(self, PP_MAX, self.xml.get('max1')),  0, wx.EXPAND),
-#                 (wx.StaticText(self, -1, "Current Free Talants per day:"), 0, wx.ALIGN_CENTER_VERTICAL),
-#                 (wx.TextCtrl(self, PP_FRE, self.xml.get('free')),  0, wx.EXPAND),
-#                 (wx.StaticText(self, -1, "Max Free Talants per day:"), 0, wx.ALIGN_CENTER_VERTICAL),
-#                 (wx.TextCtrl(self, PP_MFRE, self.xml.get('maxfree')),  0, wx.EXPAND),
-#                 ])
-#        self.sizer.AddGrowableCol(1)
-#        self.Bind(wx.EVT_SIZE, self.on_size)
-#        self.Bind(wx.EVT_TEXT, self.on_text, id=PP_MAX)
-#        self.Bind(wx.EVT_TEXT, self.on_text, id=PP_CUR)
-#        self.Bind(wx.EVT_TEXT, self.on_text, id=PP_FRE)
-#        self.Bind(wx.EVT_TEXT, self.on_text, id=PP_MFRE)
-#
-#    def on_text(self,evt):
-#        id = evt.GetId()
-#        if id == PP_CUR:
-#            self.xml.set('current1',evt.GetString())
-#        elif id == PP_MAX:
-#            self.xml.set('max1',evt.GetString())
-#        elif id == PP_FRE:
-#            self.xml.set('free',evt.GetString())
-#        elif id == PP_MFRE:
-#            self.xml.set('maxfree',evt.GetString())
-#
-#    def on_size(self,evt):
-#        s = self.GetClientSizeTuple()
-#        self.sizer.SetDimension(0,0,s[0],s[1])
-
 
 class gen_grid(wx.grid.Grid):
     """grid for gen info"""
@@ -1117,8 +988,7 @@
         self.SetColLabelSize(0)
         self.n_list = n_list
         i = 0
-        for i in range(len(n_list)):
-            self.refresh_row(i)
+        for i in range(len(n_list)): self.refresh_row(i)
 
     def on_cell_change(self,evt):
         row = evt.GetRow()
@@ -1136,8 +1006,7 @@
         (w,h) = self.GetClientSizeTuple()
         cols = self.GetNumberCols()
         col_w = w/(cols)
-        for i in range(0,cols):
-            self.SetColSize(i,col_w)
+        for i in range(0,cols): self.SetColSize(i,col_w)
         evt.Skip()
         self.Refresh()
 
@@ -1155,8 +1024,7 @@
         self.SetColLabelSize(0)
         self.n_list = n_list
         i = 0
-        for i in range(len(n_list)):
-            self.refresh_row(i)
+        for i in range(len(n_list)): self.refresh_row(i)
 
     def on_cell_change(self,evt):
         row = evt.GetRow()
@@ -1174,8 +1042,7 @@
         (w,h) = self.GetClientSizeTuple()
         cols = self.GetNumberCols()
         col_w = w/(cols)
-        for i in range(0,cols):
-            self.SetColSize(i,col_w)
+        for i in range(0,cols): self.SetColSize(i,col_w)
         evt.Skip()
         self.Refresh()
 
@@ -1191,12 +1058,10 @@
         self.CreateGrid(len(stats),3)
         self.SetRowLabelSize(0)
         col_names = ['Ability','Score','Modifier']
-        for i in range(len(col_names)):
-            self.SetColLabelValue(i,col_names[i])
+        for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
         self.stats = stats
         i = 0
-        for i in range(len(stats)):
-            self.refresh_row(i)
+        for i in range(len(stats)): self.refresh_row(i)
         self.char_wnd = None
 
     def on_cell_change(self,evt):
@@ -1207,10 +1072,8 @@
             int(value)
             self.stats[row].set('base',value)
             self.refresh_row(row)
-        except:
-            self.SetCellValue(row,col,"0")
-        if self.char_wnd:
-            self.char_wnd.refresh_data()
+        except: self.SetCellValue(row,col,"0")
+        if self.char_wnd: self.char_wnd.refresh_data()
 
     def refresh_row(self,rowi):
         s = self.stats[rowi]
@@ -1227,14 +1090,12 @@
         cols = self.GetNumberCols()
         col_w = w/(cols+2)
         self.SetColSize(0,col_w*3)
-        for i in range(1,cols):
-            self.SetColSize(i,col_w)
+        for i in range(1,cols): self.SetColSize(i,col_w)
         evt.Skip()
         self.Refresh()
 
     def refresh_data(self):
-        for r in range(self.GetNumberRows()-1):
-            self.refresh_row(r)
+        for r in range(self.GetNumberRows()-1): self.refresh_row(r)
 
 
 class save_grid(wx.grid.Grid):
@@ -1250,12 +1111,10 @@
         self.CreateGrid(len(saves),7)
         self.SetRowLabelSize(0)
         col_names = ['Save','Key','base','Abil','Magic','Misc','Total']
-        for i in range(len(col_names)):
-            self.SetColLabelValue(i,col_names[i])
+        for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
         self.saves = saves
         i = 0
-        for i in range(len(saves)):
-            self.refresh_row(i)
+        for i in range(len(saves)):self.refresh_row(i)
 
     def on_cell_change(self,evt):
         row = evt.GetRow()
@@ -1263,15 +1122,11 @@
         value = self.GetCellValue(row,col)
         try:
             int(value)
-            if col == 2:
-                self.saves[row].set('base',value)
-            elif col ==4:
-                self.saves[row].set('magmod',value)
-            elif col ==4:
-                self.saves[row].set('miscmod',value)
+            if col == 2: self.saves[row].set('base',value)
+            elif col == 4:self.saves[row].set('magmod',value)
+            elif col == 4: self.saves[row].set('miscmod',value)
             self.refresh_row(row)
-        except:
-            self.SetCellValue(row,col,"0")
+        except: self.SetCellValue(row,col,"0")
 
     def refresh_row(self,rowi):
         s = self.saves[rowi]
@@ -1295,14 +1150,12 @@
         cols = self.GetNumberCols()
         col_w = w/(cols+2)
         self.SetColSize(0,col_w*3)
-        for i in range(1,cols):
-            self.SetColSize(i,col_w)
+        for i in range(1,cols): self.SetColSize(i,col_w)
         evt.Skip()
         self.Refresh()
 
     def refresh_data(self):
-        for r in range(self.GetNumberRows()):
-            self.refresh_row(r)
+        for r in range(self.GetNumberRows()): self.refresh_row(r)
 
 
 class skill_grid(wx.grid.Grid):
@@ -1318,8 +1171,7 @@
         self.CreateGrid(len(skills),7)
         self.SetRowLabelSize(0)
         col_names = ['Skill','Key','Rank','Abil','Misc','Total']
-        for i in range(len(col_names)):
-            self.SetColLabelValue(i,col_names[i])
+        for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
         rowi = 0
         self.skills = skills
         for i in range(len(skills)):
@@ -1332,15 +1184,11 @@
         #print value
         try:
             int(value)
-            if col == 3:
-                self.skills[row].set('rank',value)
-            elif col ==5:
-                self.skills[row].set('misc',value)
-            elif col == 1:
-                self.skills[row].set('untrained',value)
+            if col == 3: self.skills[row].set('rank',value)
+            elif col == 5: self.skills[row].set('misc',value)
+            elif col == 1: self.skills[row].set('untrained',value)
             self.refresh_row(row)
-        except:
-            self.SetCellValue(row,col,"0")
+        except: self.SetCellValue(row,col,"0")
 
     def refresh_row(self,rowi):
         s = self.skills[rowi]
@@ -1364,15 +1212,12 @@
         cols = self.GetNumberCols()
         col_w = w/(cols+2)
         self.SetColSize(0,col_w*3)
-        for i in range(1,cols):
-            self.SetColSize(i,col_w)
+        for i in range(1,cols): self.SetColSize(i,col_w)
         evt.Skip()
         self.Refresh()
 
     def refresh_data(self):
-        for r in range(self.GetNumberRows()):
-            self.refresh_row(r)
-
+        for r in range(self.GetNumberRows()): self.refresh_row(r)
 
 
 class feat_panel(wx.Panel):
@@ -1399,8 +1244,7 @@
         self.grid.SetRowLabelSize(0)
         self.grid.SetColLabelValue(0,"Feat")
         self.grid.SetColLabelValue(1,"Type")
-        for i in range(len(n_list)):
-            self.refresh_row(i)
+        for i in range(len(n_list)): self.refresh_row(i)
         self.temp_dom = None
 
     def refresh_row(self,i):
@@ -1425,8 +1269,7 @@
             self.temp_dom = tree.getroot()
         f_list = self.temp_dom.findall('feat')
         opts = []
-        for f in f_list:
-            opts.append(f.get('name'))
+        for f in f_list: opts.append(f.get('name'))
         dlg = wx.SingleChoiceDialog(self,'Choose Feat','Feats',opts)
         if dlg.ShowModal() == wx.ID_OK:
             i = dlg.GetSelection()
@@ -1443,8 +1286,7 @@
         (w,h) = self.grid.GetClientSizeTuple()
         cols = self.grid.GetNumberCols()
         col_w = w/(cols)
-        for i in range(0,cols):
-            self.grid.SetColSize(i,col_w)
+        for i in range(0,cols): self.grid.SetColSize(i,col_w)
 
 class attack_grid(wx.grid.Grid):
     """grid for attacks"""
@@ -1457,8 +1299,7 @@
         self.CreateGrid(2,10)
         self.SetRowLabelSize(0)
         col_names = ['Type','base','base 2','base 3','base 4','base 5','base 6','abil','misc','Total']
-        for i in range(len(col_names)):
-            self.SetColLabelValue(i,col_names[i])
+        for i in range(len(col_names)): self.SetColLabelValue(i,col_names[i])
         self.SetCellValue(0,0,"Melee")
         self.SetCellValue(1,0,"Ranged")
         self.refresh_data()
@@ -1471,23 +1312,15 @@
         value = self.GetCellValue(row,col)
         try:
             int(value)
-            if col==1:
-                self.rows[row].set('base',value)
-            elif col==2:
-                self.rows[row].set('second',value)
-            elif col==3:
-                self.rows[row].set('third',value)
-            elif col==4:
-                self.rows[row].set('forth',value)
-            elif col==5:
-                self.rows[row].set('fifth',value)
-            elif col==6:
-                self.rows[row].set('sixth',value)
-            elif col==8:
-                self.rows[row].set('misc',value)
+            if col== 1: self.rows[row].set('base',value)
+            elif col== 2: self.rows[row].set('second',value)
+            elif col== 3: self.rows[row].set('third',value)
+            elif col== 4: self.rows[row].set('forth',value)
+            elif col== 5: self.rows[row].set('fifth',value)
+            elif col== 6: self.rows[row].set('sixth',value)
+            elif col== 8: self.rows[row].set('misc',value)
             self.parent.refresh_data()
-        except:
-            self.SetCellValue(row,col,"0")
+        except: self.SetCellValue(row,col,"0")
 
     def refresh_data(self):
         melee = self.handler.get_attack_data('m')
@@ -1504,14 +1337,12 @@
         self.SetReadOnly(0,9)
         self.SetReadOnly(1,9)
 
-
     def on_size(self,evt):
         (w,h) = self.GetClientSizeTuple()
         cols = self.GetNumberCols()
         col_w = w/(cols+1)
         self.SetColSize(0,col_w*2)
-        for i in range(1,cols):
-            self.SetColSize(i,col_w)
+        for i in range(1,cols): self.SetColSize(i,col_w)
         evt.Skip()
         self.Refresh()
 
@@ -1539,8 +1370,7 @@
         self.grid.CreateGrid(len(n_list),9,1)
         self.grid.SetRowLabelSize(0)
         col_names = ['Name','damage','mod','critical','type','weight','range','size','Total']
-        for i in range(len(col_names)):
-            self.grid.SetColLabelValue(i,col_names[i])
+        for i in range(len(col_names)): self.grid.SetColLabelValue(i,col_names[i])
         self.refresh_data()
         self.temp_dom = None
 
@@ -1548,17 +1378,14 @@
         row = evt.GetRow()
         col = evt.GetCol()
         value = self.grid.GetCellValue(row,col)
-        if col == 0:
-            self.n_list[row].set('name',value)
+        if col == 0: self.n_list[row].set('name',value)
         elif col == 2:
             try:
                 int(value)
                 self.n_list[row].set('mod',value)
                 self.refresh_row(row)
-            except:
-                self.grid.SetCellValue(row,col,"1")
-        else:
-            self.n_list[row].set(self.grid.GetColLabelValue(col),value)
+            except: self.grid.SetCellValue(row,col,"1")
+        else: self.n_list[row].set(self.grid.GetColLabelValue(col),value)
 
     def refresh_row(self,i):
         n = self.n_list[i]
@@ -1612,19 +1439,16 @@
         cols = self.grid.GetNumberCols()
         col_w = w/(cols+1)
         self.grid.SetColSize(0,col_w*2)
-        for i in range(1,cols):
-            self.grid.SetColSize(i,col_w)
+        for i in range(1,cols): self.grid.SetColSize(i,col_w)
 
     def refresh_data(self):
-        for i in range(len(self.n_list)):
-            self.refresh_row(i)
+        for i in range(len(self.n_list)): self.refresh_row(i)
 
 
 class attack_panel(wx.Panel):
     def __init__(self, parent, handler):
         pname = handler.xml.set("name", 'Melee')
         wx.Panel.__init__(self, parent, -1)
-
         self.a_grid = attack_grid(self, handler)
         self.w_panel = weapon_panel(self, handler)
         self.sizer = wx.BoxSizer(wx.VERTICAL)
@@ -1665,11 +1489,9 @@
         col_names = ['Armor','DR','Max Dex','Check Penalty','Weight','Speed (10)','Speed (6)','type']
         self.grid.CreateGrid(len(n_list),len(col_names),1)
         self.grid.SetRowLabelSize(0)
-        for i in range(len(col_names)):
-            self.grid.SetColLabelValue(i,col_names[i])
+        for i in range(len(col_names)): self.grid.SetColLabelValue(i,col_names[i])
         self.atts =['name','bonus','maxdex','checkpenalty','weight','speed','speed6','type']
-        for i in range(len(n_list)):
-            self.refresh_row(i)
+        for i in range(len(n_list)): self.refresh_row(i)
         self.temp_dom = None
 
 
@@ -1681,15 +1503,12 @@
             try:
                 int(value)
                 self.n_list[row].set(self.atts[col],value)
-            except:
-                self.grid.SetCellValue(row,col,"0")
-        else:
-            self.n_list[row].set(self.atts[col],value)
+            except: self.grid.SetCellValue(row,col,"0")
+        else: self.n_list[row].set(self.atts[col],value)
 
     def refresh_row(self,i):
         n = self.n_list[i]
-        for y in range(len(self.atts)):
-            self.grid.SetCellValue(i,y,n.get(self.atts[y]))
+        for y in range(len(self.atts)): self.grid.SetCellValue(i,y,n.get(self.atts[y]))
 
     def on_remove(self,evt):
         rows = self.grid.GetNumberRows()
@@ -1704,8 +1523,7 @@
             self.temp_dom = tree.getroot()
         f_list = self.temp_dom.findall('armor')
         opts = []
-        for f in f_list:
-            opts.append(f.get('name'))
+        for f in f_list: opts.append(f.get('name'))
         dlg = wx.SingleChoiceDialog(self,'Choose Armor:','Armor List',opts)
         if dlg.ShowModal() == wx.ID_OK:
             i = dlg.GetSelection()
@@ -1722,8 +1540,7 @@
         cols = self.grid.GetNumberCols()
         col_w = w/(cols+2)
         self.grid.SetColSize(0,col_w*3)
-        for i in range(1,cols):
-            self.grid.SetColSize(i,col_w)
+        for i in range(1,cols): self.grid.SetColSize(i,col_w)
 
 
 class class_panel(wx.Panel):
@@ -1751,8 +1568,7 @@
         self.grid.SetRowLabelSize(0)
         self.grid.SetColLabelValue(0,"Class")
         self.grid.SetColLabelValue(1,"Level")
-        for i in range(len(n_list)):
-            self.refresh_row(i)
+        for i in range(len(n_list)): self.refresh_row(i)
         self.temp_dom = None
 
     def on_cell_change(self,evt):
@@ -1762,8 +1578,7 @@
         try:
             int(value)
             self.n_list[row].set('level',value)
-        except:
-            self.grid.SetCellValue(row,col,"1")
+        except: self.grid.SetCellValue(row,col,"1")
 
 
     def refresh_row(self,i):
@@ -1773,7 +1588,6 @@
         self.grid.SetCellValue(i,0,name)
         self.grid.SetReadOnly(i,0)
         self.grid.SetCellValue(i,1,level)
-        #self.grid.SetReadOnly(i,1)
 
     def on_remove(self,evt):
         rows = self.grid.GetNumberRows()
@@ -1788,8 +1602,7 @@
             self.temp_dom = tree.getroot()
         f_list = self.temp_dom.findall('class')
         opts = []
-        for f in f_list:
-            opts.append(f.get('name'))
+        for f in f_list: opts.append(f.get('name'))
         dlg = wx.SingleChoiceDialog(self,'Choose Class','Classes',opts)
         if dlg.ShowModal() == wx.ID_OK:
             i = dlg.GetSelection()
@@ -1806,5 +1619,5 @@
         (w,h) = self.grid.GetClientSizeTuple()
         cols = self.grid.GetNumberCols()
         col_w = w/(cols)
-        for i in range(0,cols):
-            self.grid.SetColSize(i,col_w)
+        for i in range(0,cols): self.grid.SetColSize(i,col_w)
+