Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Authoring Kit

Notices

Reply
 
Thread Tools Display Modes
TCArknight
Senior Member
 
Join Date: Jan 2007
Location: NW Arkansas
Posts: 968

Old July 16th, 2018, 04:42 AM
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>
* Upbringing is a Component with an autocompset=“yes”, but you can define the compset if you like. You just have to use whatever you define in the agentcompset= portion

* 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 -
TCArknight is offline   #11 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old July 16th, 2018, 05:35 PM
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.
risner is offline   #12 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old July 16th, 2018, 05:51 PM
Quote:
Originally Posted by TCArknight View Post
<layoutref layout="upbringing"/>
Where do you have this programmed?
The layout specifically. Which file is it inside? The separate file for the upbringing of choice? Are layoutref duplicated?
risner is offline   #13 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old July 16th, 2018, 06:29 PM
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>
Attached Images
File Type: jpg Agent.jpg (195.2 KB, 2 views)
Attached Files
File Type: zip panel.zip (1.1 KB, 1 views)

Last edited by risner; July 17th, 2018 at 06:03 AM.
risner is offline   #14 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old July 17th, 2018, 06:08 AM
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?
risner is offline   #15 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old July 28th, 2018, 05:44 AM
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>
This just dumps a table and I still don't understand 3 things in these example working code:

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.
risner is offline   #16 Reply With Quote
TCArknight
Senior Member
 
Join Date: Jan 2007
Location: NW Arkansas
Posts: 968

Old August 1st, 2018, 07:53 AM
Quote:
Originally Posted by risner View Post
Quote:
<layoutref layout="upbringing"/>
Where do you have this programmed?
The layout specifically. Which file is it inside? The separate file for the upbringing of choice? Are layoutref duplicated?
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 -
TCArknight is offline   #17 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old August 7th, 2018, 06:39 AM
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.
risner is offline   #18 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old August 18th, 2018, 05:44 PM
Mathias, Im still gated by the lack of the required agent code to do the abstractions (primary, secondary, etc).
risner is offline   #19 Reply With Quote
risner
Senior Member
Volunteer Data File Contributor
 
Join Date: Jun 2010
Posts: 616

Old September 22nd, 2018, 05:00 AM
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.
risner is offline   #20 Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 09:25 PM.


Powered by vBulletin® - Copyright ©2000 - 2018, vBulletin Solutions, Inc.
wolflair.com copyright 1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.