Senior Member
Join Date: Jan 2007
Location: NW Arkansas
Posts: 1,321
|
This is an example from a dataset I’ve been working on:
Code:
<!-- upbringing panel This is the "Upbringing" panel shown within Hero Lab. --> <panel id="upbringing" name="Upbringing" marginhorz="5" marginvert="5" order="10" agentcompset="Upbringing" agentlive="HasUpbring" agentname="name" > <live>!HideTab.upbringing</live> <layoutref layout="upbringing"/> <position><![CDATA[ ]]></position> </panel> * HideTab.upbringing is a tag bootstrapped to the hero at creation. * HasUpbring is an identity tag on the Upbringing component. When an upbringing is selected, the HasUpbring.? is forwarded to the hero and the HideTab.upbringing tag on the hero is deleted. * agentname=“name” uses the name in the selected component for the tab (panel) name. Does that help? Working on - |
#11 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
Woot. Progress. I'm to the point where I have a Class component and if added to the character, a new tab appears. Trying to figure out how to put things on this tab.
How do I point: <layoutref layout="classlayout"/> in the panel_class.dat file to a value derived from the agent? Or do I need one BIG classlayout layout with every class programmed via if/then/else code? Last edited by risner; July 16th, 2018 at 05:44 PM. |
#12 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
|
#13 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
I believe these three threads are the best hints for others on this subject:
One Two Three Using that knowledge and Mathias posts in here, I have a panel_class.dat file now, which spawns new tabs for each class bootstrapped to the hero. Also chatting with RavenX, the way to customize the panel is to have one panel definition and express tags to turn on/off different types of class features (spells, bonus feats, etc). I'm making progress understanding this. I've included a photo and a zip of my panel_class.tab. The Class component is unique and has identity tags: <identity group="ClsTabLive"/> plus: <eval index="1" phase="Level" priority="1000" name="Add Class Tags"> <![CDATA[ ~ Assign tags to the Hero perform forward[Class.?] ~ Activate my tab, now that I have levels in this class. perform forward[ClsTabLive.?] ]]></eval> Last edited by risner; July 17th, 2018 at 06:03 AM. |
#14 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
I'm down to one question and it may a question of best practices.
Pathfinder class agent uses a unique cHelpWiz and a copy of cWizard for each level in the class. Is this required for agent processing? Or is it simply a relic of Pathfinder's need to track level by level for things like favored class features and similar? |
#15 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
Code for others!
Code:
<!-- Agent code is complicated and very much undocumented. This is my walk through. ############## A table of fixed objects with UserSelect{ions} available: <table_fixed component="UserSelect" ############## MenuSlPick is a compact visual for UserSelect options. showtemplate="MenuSlPick" ############## ClSpecSrch is a sort set that uses ClSpecWhen ascending sort. showsortset="ClSpecSrch" ############## ClassCustom must be a class identity tag present on the object. agentlist="ClassCustom"> ############## Remove all SpcDisabled objects from the list. <list>!Helper.SpcDisable</list> </table_fixed> <table_dynamic component="UserSelect" showtemplate="MenuSlPick" showsortset="ClSpecSrch" ############## A simple list choice template. + choosetemplate="SimpleItem" ############## Chosen items will get this identity tag from the agent assigned. + agentautotag="SpecSource" ############## TODO explain useagentlinkage, as linkage[table] fails for me. + useagentlinkage="yes" ############## TODO explain useagentadd, I couldn't see it does anything. + useagentadd="yes" ############## This dynamically sets candidatepick="x" where x is the agent. + useagentcandidate="yes" agentlist="ClassCustom" ############## The field containing the candidate expression.x is the agent. + candidatefield="FirstCustomTagExp" ############## Dynamic tables require a description width. + descwidth="350"> <list>!Helper.SpcDisable</list> ############## Required Description. + <description/> ############## TODO Add Item. Why doesn't useagentadd replace this? + <additem><![CDATA[ + @text &= "Choose Between Options" + ]]></additem> </table_dynamic> 1) How does useagentlinkage work? linkage[table] fails for me. 2) The useagentadd option seems to be a no-op, I couldn't detect it doing anything. 3) Add Item. Why doesn't useagentadd replace this? Plus I still don't understand how to do pathfinder style Primary, Secondary, Tertiary, Quad framework (like Ranger Bonus Feat and etc). I'm turning all my stuff into one fixed table and they choose options. So there will be a helper custom for each choice. A waste of picks/things/memory. |
#16 |
Senior Member
Join Date: Jan 2007
Location: NW Arkansas
Posts: 1,321
|
I forgot to mention this just for reference, but this layout=“upbringing” is the layout for the tab usually defined just before panel itself.
Working on - |
#17 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
Mathias may be taking a break Post-GenCon. I'm hoping once he gets back he can help us all out (well at least me), and explain a couple of things I can't seem to get.
Namely, how to structure the agent side of things like "Bonus Monk Feats" and the like. Where, you have generic slots (1, 2, 3, and 4) for doing generic class features and have the agent tab handle all the interface. The closest I can get is to not do anything similar, and to bootstrap a thing per class feature and display all class features needing choices in a table. That isn't ideal and can lead to scrolling. Not to mention it is more difficult to determine if you picked duplicates and other issues. |
#18 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
Mathias, I’m still gated by the lack of the required agent code to do the abstractions (primary, secondary, etc).
|
#19 |
Senior Member
Volunteer Data File Contributor
Join Date: Jun 2010
Posts: 623
|
I've made no progress on this since July 28th. I'm still waiting on a reply from Lonewolf regarding the missing parts, that no one outside Lonewolf understands about agents.
|
#20 |
|
|