# HG changeset patch # User sirebral # Date 1272702086 18000 # Node ID 9611ba80cf998e6a1165d8fe5803295eef5d2ab7 # Parent cd4ac7e46d3cf571c198ca80d18f2d92e27afc14 Traipse Alpha 'OpenRPG' {100501-01} 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 (Patch-2) Moving to Beta!! New Features: New Namespace method with two new syntaxes New Namespace Internal is context sensitive, always! New Namespace External is 'as narrow as you make it' New Namespace FutureCheck helps ensure you don't receive an incorrect node New PluginDB access for URL2Link plugin New to Forms, they now show their content in Design Mode New to Update Manager, checks Repo for updates on software start New to Mini Lin node, change title in design mode New to Game Tree, never lose a node, appends a number to the end of corrupted trees New to Server GUI, Traipse Suite's Debug Console Updates: Update to White Board layer, uses a pencil image for color button Update to Grid Layer, uses a grid image for color button Update to Chat Window, size of drop down menus Update to default lobby message Update to template Text node Update to 4e PC Sheet node Fixes: Fix to Server GUI startup errors Fix to Server GUI Rooms tab updating Fix to Chat and Settings if non existant die roller is picked Fix to Dieroller and .open() used with .vs(). Successes are correctly calculated Fix to Alias Lib's Export to Tree, Open, Save features Fix to alias node, now works properly Fix to Splitter node, minor GUI cleanup Fix to Backgrounds not loading through remote loader Fix to Node name errors Fix to rolling dice in chat Whispers Fix to Splitters Sizing issues Fix to URL2Link plugin, modified regex compilation should remove memory leak Fix to mapy.py, a roll back due to zoomed grid issues Fix to whiteboard_handler, Circles work by you clicking the center of the circle Fix to Servers parse_incoming_dom which was outdated and did not respect XML Fix to a broken link in the server welcome message Fix to InterParse and logger requiring traceback Fix to Update Manager Status Bar Fix to failed image and erroneous pop up Fix to Mini Lib node that was preventing use Fix to plugins that parce dice but did not call InterParse Fix to nodes for name changing by double click Fix to Game Tree, node ordering on drag and drop corrected Fix to Game Tree, corrupted error message was not showing Fix to Update Manager, checks for internet connection Fix to Update Manager, Auto Update corrections diff -r cd4ac7e46d3c -r 9611ba80cf99 orpg/orpg_version.py --- a/orpg/orpg_version.py Sat May 01 00:23:45 2010 -0500 +++ b/orpg/orpg_version.py Sat May 01 03:21:26 2010 -0500 @@ -4,7 +4,7 @@ #BUILD NUMBER FORMAT: "YYMMDD-##" where ## is the incremental daily build index (if needed) DISTRO = "Traipse Alpha" DIS_VER = "Ornery Orc" -BUILD = "100501-00" +BUILD = "100501-01" # This version is for network capability. PROTOCOL_VERSION = "1.2" diff -r cd4ac7e46d3c -r 9611ba80cf99 orpg/templates/nodes/4e_char_sheet.xml --- a/orpg/templates/nodes/4e_char_sheet.xml Sat May 01 00:23:45 2010 -0500 +++ b/orpg/templates/nodes/4e_char_sheet.xml Sat May 01 03:21:26 2010 -0500 @@ -1,4 +1,4 @@ -This node is designed to be as generic as possible. It should contain the core basics for users to fill out with game information that is specific to their character. +This node is designed to be as generic as possible. It should contain the core basics for users to fill out with game information that is specific to their character. The node is also designed to be organized with speed of use in mind. Since the majority of nodes are inside Tabbers you can easily use the top node and find all of your data inside. In fact, that is how I am writing this. @@ -13,7 +13,7 @@ Combat: This contains grids so you can reference your weapon dice, armor bonuses, feat bonuses .. and they too can use references so if you change a number the software does the math. -Inventory: You guess it. It comes with a Back Pack text node that you can clone to make bags and other containers.Inside the Rollers tab you will find 5 lists. You can use these lists to add new references to nodes. The Rollers tab is also a Tabber node itself, so you can just double click the Rollers node to get all of your rollers in one window. You can also edit all of your rollers in one window when you enter into the Design mode of the Rollers tabber.This form contains a some text nodes that hold basic information about your character. In some Powers the Level and Tier are used to calculate bonuses. You can reference those nodes to make the math easierThe Abilities Grid contains the 6 abilities all set at values of 8. The third column is the math calculation for the modifier. You can reference that grid column to assist in your math calculations.The Combat Tabber contains a number of Grid nodes to assist in your combat calculations. Some grids contain a grid cell called Total. +Inventory: You guess it. It comes with a Back Pack text node that you can clone to make bags and other containers.Inside the Rollers tab you will find 5 lists. You can use these lists to add new references to nodes. The Rollers tab is also a Tabber node itself, so you can just double click the Rollers node to get all of your rollers in one window. You can also edit all of your rollers in one window when you enter into the Design mode of the Rollers tabber.This form contains a some text nodes that hold basic information about your character. In some Powers the Level and Tier are used to calculate bonuses. You can reference those nodes to make the math easierThe Abilities Grid contains the 6 abilities all set at values of 8. The third column is the math calculation for the modifier. You can reference that grid column to assist in your math calculations.The Combat Tabber contains a number of Grid nodes to assist in your combat calculations. Some grids contain a grid cell called Total. To Hit: The To Hit Bonus. This Grid contains a cell called Total. You can add new rows to the grid when you are granted bonuses and then add those references to the total. @@ -23,50 +23,50 @@ AC Bonus: This Grid contains a cell called Total. You can add new rows to the grid when you are granted bonuses and then add those references to the total. -Feats: Some feats add bonusus to hit or damage. When these bonuses are calculated you can add them here and the math easier for you.This Tabber contains a Tabber for At Will, Encounter and Daily. Each tabber contains a node for levels 0 and 1. You can add new tabbers when you reach higher levels. +Feats: Some feats add bonusus to hit or damage. When these bonuses are calculated you can add them here and the math easier for you.This Tabber contains a Tabber for At Will, Encounter and Daily. Each tabber contains a node for levels 0 and 1. You can add new tabbers when you reach higher levels. Inside the 0 Level tabber for each Utility there is a text node that contains a an attack roll and a damage roll. -** I went with this format so users could create their Utility nodes and share with others. The nodes can contain Role Play information as well as attack and damage rolls. Also, the nodes can be completely genric, referencing the Name Text node and still look specific **It's just a node to hold your Inventory +** I went with this format so users could create their Utility nodes and share with others. The nodes can contain Role Play information as well as attack and damage rolls. Also, the nodes can be completely genric, referencing the Name Text node and still look specific **It's just a node to hold your Inventory This bears repeating: -It comes with a Back Pack text node that you can clone to make bags and other containers. +It comes with a Back Pack text node that you can clone to make bags and other containers. - - - + + + - + - - + + - - + + - - + + - - + + - - - + + + text - + text - + text - + text - + 1 - + 1 - + Weapon @@ -80,7 +80,7 @@ - + Armor @@ -88,13 +88,13 @@ Total - !!To Hit::(3,2)!! + !!To Hit::(4,2)!! + !=To Hit::(3,2)=! + !=To Hit::(4,2)=! - BAB15Str Mod!#Abilities::(1,3)#! + BAB15Str Mod!=Abilities::(1,3)=! - + Armor @@ -102,13 +102,13 @@ Total - !!AC Bonus::(3,2)!!+!!AC Bonus::(4,2)!! + !=AC Bonus::(3,2)=!+!=AC Bonus::(4,2)=! - Armor!!Armor::(2,2)!! + Armor!!Armor::(2,2)!!Misc0 - + Armor @@ -116,74 +116,74 @@ Total - !!Armor::(3,2)!! + !=Armor::(3,2)=! Base10ArmorShield - + Armor - Bonus + Bonus Descripton Total - !!Feats::(3,2)!! + !=Feats::(3,2)=! Feat0 - + Str 12 - (!!Abilities::(1,2)!!-10)/2 + (!=Abilities::(1,2)=!-10)/2 Dex 8 - (!!Abilities::(2,2)!!-10)/2 + (!=Abilities::(2,2)=!-10)/2 Con 14 - (!!Abilities::(3,2)!!-10)/2 + (!=Abilities::(3,2)=!-10)/2 Int 18 - (!!Abilities::(4,2)!!-10)/2 + (!=Abilities::(4,2)=!-10)/2 Wis 8 - (!!Abilities::(5,2)!!-10)/2 + (!=Abilities::(5,2)=!-10)/2 Cha 8 - (!!Abilities::(6,2)!!-10)/2 + (!=Abilities::(6,2)=!-10)/2 - + /me uses an At Will <b>Attack:</b> [1d20+2+!#Abilities::(2,3)#!] <b>Damage:</b> [2!#Combat::Weapons::(2,2)#!] - + /me uses an Encounter <b>Attack:</b> [1d20+2+!#Abilities::(2,3)#!] <b>Damage:</b> [2!#Combat::Weapons::(2,2)#!] - + /me uses an Daily <b>Attack:</b> [1d20+2+!#Abilities::(2,3)#!] <b>Damage:</b> [2!#Combat::Weapons::(2,2)#!] - + Nothing - + Nothing - + Nothing - + Nothing \ No newline at end of file diff -r cd4ac7e46d3c -r 9611ba80cf99 orpg/tools/InterParse.py --- a/orpg/tools/InterParse.py Sat May 01 00:23:45 2010 -0500 +++ b/orpg/tools/InterParse.py Sat May 01 03:21:26 2010 -0500 @@ -152,8 +152,13 @@ return False def NameSpaceI(self, s, node): - reg = re.compile("(!=(.*?)=!)") - matches = reg.findall(s) + reg1 = re.compile('(!"(.*?)"!)') ## Easter Egg! + """If you found this you found my first easter egg. I was tired of people telling me multiple + references syntax for the game tree is confusing, so I dropped this in there without telling + anyone. Using !" :: "! will allow you to use an internal namespace from within another internal + namespace -- TaS, Prof. Ebral""" + reg2 = re.compile("(!=(.*?)=!)") + matches = reg1.findall(s) + reg2.findall(s) tree_map = node.get('map') for i in xrange(0,len(matches)): ## Build the new tree_map @@ -163,6 +168,7 @@ node = self.get_node(new_map) newstr = self.LocationCheck(node, tree_map, new_map, find) s = s.replace(matches[i][0], newstr, 1) + s = self.ParseLogic(s, node) return s def NameSpaceE(self, s):