Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - d20 System
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
Lawful_g
Senior Member
Volunteer Data File Contributor
 
Join Date: Mar 2007
Posts: 1,245

Old March 18th, 2010, 03:33 PM
I am entering information from Races of Stone, which introduces several armors and shields that require the Exotic Armor/Shield Proficiency feat. Unfortunately this is not a class that exists in HL yet, can I request it be added for the next HL update?
Lawful_g is offline   #1 Reply With Quote
Lawful_g
Senior Member
Volunteer Data File Contributor
 
Join Date: Mar 2007
Posts: 1,245

Old March 18th, 2010, 03:43 PM
Some exist independent of the Class of the armor, for example you can have an Exotic Light armor. For shields though, Extreme Shields might be a separate class... not sure.
Lawful_g is offline   #2 Reply With Quote
Adro85
Junior Member
 
Join Date: Oct 2007
Location: Kalamazoo, MI
Posts: 14
Send a message via Yahoo to Adro85

Old March 22nd, 2010, 01:04 AM
I have done stuff with this as well. I put in this pre-req

@valid = #hasfeat[fExoticArm]
if (@valid = 0) then
@valid = tagis[Race.Dwarf]
endif

and created an exotic armor feat. The only problem with this is that I can not select one type of armor, the feat gives me access to all the ones I have marked as exotic armor. I would rather not create a feat for each exotic armor.
Adro85 is offline   #3 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old March 22nd, 2010, 08:20 AM
I'd also recommend comparing the tags on an armor the test character is proficient with versus the tags on armor your character isn't proficient with. There's a tag in the Helper group that is what controls whether the non-proficiency "no-smoking" sign is displayed - you could use an eval rule to assign that tag if you don't find the appropriate proficiency.

Adro85, may I suggest a more compact form for that prereq:

#hasfeat[fExoticArm] + hero.tagis[Race.Dwarf] <> 0

Now that it only takes up 1 line, you can put it in an exprreq. Or as a prereq:

validif (#hasfeat[fExoticArm] + hero.tagis[Race.Dwarf] <> 0)

(if @valid is not equal to 0, it's valid, so if the character has exotic armor proficiency and is a dwarf, the expression will total 2, which is valid.)


The way I'd try to add specific armor selection to the Exotic Armor proficiency is to start with something that acts like weapon focus - but allowing you to pick a specific armor.

On the exotic armors, you'll need to use the User tag group (the next-to-the-last option), and create User.ExoticArm, and then put that on all the exotic armors. You can then have your feat only select from among armors that are exotic.

Now, define another user tag on your feat - ExoticProf. The script on your feat will use a foreach to search through all the exotic armors, and find those that match the unique Id of the feat's selection:

compare(eachpick.idstring,focus.idstring) = 0

(you've previously set the focus to whatever armor the feat selected).

If that comparison works, then assign the User.ExoticProf to the armor you've found.

The prereq for each exotic armor will still be limited to figuring out whether or not the character has the proficiency or not, but an eval rule on the armor can check if the feat has assigned User.ExoticProf or not, for a second, more specific test.
Mathias is offline   #4 Reply With Quote
Lawful_g
Senior Member
Volunteer Data File Contributor
 
Join Date: Mar 2007
Posts: 1,245

Old March 22nd, 2010, 02:42 PM
Putting "compare(eachpick.idstring,focus.idstring) = 0" in the eval script gives me an "Invalid use of reserved word in script" error.

Also, I don't understand what you mean by "previously set the focus" or what this "compare" is doing or where I should put it. I have copied Weapon Focus and modified it to look like this:

~ If we're disabled, do nothing
if (tagis[Helper.FtDisable] <> 0) then
done
endif

~ If we haven't chosen anything, get out now
if (field[fChosen].ischosen = 0) then
done
endif

~ Assign the appropriate tag to all armor that meet the criteria
var id as string
id = field[fChosen].chosen.idstring
foreach pick in hero where "IsArmor." & id
perform eachpick.assign[User.ExoticProf]
perform eachpick.assign[Helper.Proficient]
nexteach

~ Set our 'short name'
if (field[fChosen].ischosen <> 0) then
field[fShortName].text = "Exotic Armor: " & field[fChosen].chosen.field[name].text
endif

It seemed like it might work, but although I have tried it at multiple phases and priorities, there is no change, the nonproficiency X still appears in front of the Armor. Neither Tag is being applied.

I also tried an experiment wherein I made a specific form of the feat for Mammoth Leather, then added an Eval Script to the armor that checked for the specific feat and apply the Helper.Proficient tag. This works if I put the script in the early Levels phase, the tag is applied, the X disappears, but when the armor is equipped, the ACP is still applied to attacks/Ride.

Suggestions?
Lawful_g is offline   #5 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old March 22nd, 2010, 03:01 PM
I guess I was writing too fast - the where statement you have on your foreach is a better way to handle that.

Don't forget that from elements are always best in foreach statements:
foreach pick in hero from BaseArmor where "IsArmor." & id

Actually, I think the non-proficiency penalty isn't being applied to attacks for any armor - you can check that by wearing Medium armor on a Rogue.
Mathias is offline   #6 Reply With Quote
Lawful_g
Senior Member
Volunteer Data File Contributor
 
Join Date: Mar 2007
Posts: 1,245

Old March 22nd, 2010, 08:35 PM
I'll change that to from BaseArmor then.

Are you sure? I don't see that bug.... for example I find that the non-proficiency is being applied on my system when a 1st level rogue that equips Chainmail has a -5 to attacks.
Lawful_g is offline   #7 Reply With Quote
Lawful_g
Senior Member
Volunteer Data File Contributor
 
Join Date: Mar 2007
Posts: 1,245

Old April 1st, 2010, 12:41 AM
I got it! Wahoo!

The trick was in assigning a second User tag to each armor, specific to that armor only.

I wrote a script, based off of Weapon Focus, that forwards all the User tags from the selected Armor to the hero. Then I put an pre req on the Exotic Armor that looked for the User tag that is specific to that armor on the hero.

It works after testing! Yay!

Same with shields, though that was a little different because there were 2 versions of the same shield (Extreme Wooden and Steel Shields), so I made a special and gave the User tags to it, so that it would be selected and both versions would look at that tag.
Lawful_g is offline   #8 Reply With Quote
Reply


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 03:52 AM.


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