Junior Member
Join Date: Jun 2016
Posts: 23
|
Edit: In the end, I was going to have the weapons chosen be added to a minion, but I forgot that an eval script can't add a pick. I'm still interested to see why my list below wasn't working. I'm going to see if there is some bootstrap method that might work.
I'm trying to create a usrCandid1 field that will display a list of all non-magical items that are part of the 'Simple' weapon proficiency. If I use this for my expression, I was expecting to get a list of items that have the NormalWep component, as well as the Simple weapon proficiency. Code:
field[usrCandid1].text = " component.NormalWep & wProfReq.Simple " If I switch the 'restrict First List' drop down to 'All Things', it fills the list up with magical and non magical versions of the Simple Weapon proficiency as well. So, this is getting closer, but I'm not sure why it isn't honoring my NormalWep component. Last edited by smokeh; March 8th, 2018 at 08:39 AM. |
#1 |
Senior Member
Join Date: May 2016
Posts: 608
|
I believe that in many cases, especially staffs, the bootstrapped weapon that is attached to the magic item has to be a "normal" weapon due to timing errors that are generated from magical weapons.
Since a lot of the magic staff "weapons" are actually helper items, you might be able to drop some more off by changing your code to be: Code:
field[usrCandid1].text = "component.NormalWep & wProfReq.Simple & !Helper.Helper" |
#2 |
Junior Member
Join Date: Jun 2016
Posts: 23
|
Perfect, your solution worked great, thanks for your quick reply!
|
#3 |
Junior Member
Join Date: Jun 2016
Posts: 23
|
Since i couldn't figure out how to bootstrap the chosen item to the minion, my plan was just to have the player manually add the weapons they chose to the minion. After spending 3 more days deep into the editor, and solving a problem with adding a Swim speed to the minion due to an upgrade, I came up with a solution to adding the weapons. The problem is it seems fairly inelegant, and I'm wondering if there is a smarter way to do this. I have tested this out, and it does work as I describe it.
Basically, I'm pre-bootstrapping every simple weapon (and eventually martial weapons due to another upgrade) to the Minion at the start. I'm then assigning a Condition to the bootstrap that checks for the existence of a custom tag on the minion that I'm setting via the player's choice from the menu. In order to handle the user picking 2 of the same weapon I will need to double all of the weapon bootstraps and add a second level of custom tags and conditions (like Custom.Con_wClub2). Code:
field[usrCandid1].text = " component.NormalWep & wProfReq.Simple & !Helper.Helper " field[usrCandid2].text = " component.NormalWep & wProfReq.Simple & !Helper.Helper " if (field[usrChosen1].ischosen <> 0) then If (field[usrChosen1].chosen.tagis[thingid.wClub] <> 0) Then perform minion[Familiar].assign[Custom.Con_wClub] endif endif |
#4 |
Senior Member
Join Date: May 2016
Posts: 608
|
Could you give a better explanation of what you're trying to accomplish? Is this a magically summoned minion or something where you don't want the players to have to touch the minion object at all?
|
#5 |
Junior Member
Join Date: Jun 2016
Posts: 23
|
Absolutely! I'm trying to convert this variation on the UA Artificer class that includes a Mechanist specialist. The Mechanist specialist starts with a companion where they choose a Chassis and Build, eventually at level 3 they get this ability:
Quote:
Weapon Components.png At the time, I figured it was good enough and I would just instruct the player to manually add the weapons onto their Construct and they would have reference on their character sheet. However, as I started adding some Upgrade Components I figured out pre-bootstrapping to the minion, and creating a Custom tag to trigger something from the HERO onto the MINION, since Conditions can only reference their own pick. It isn't absolutely necessary for the weapons to automatically appear on the minion, I'm having fun trying to problem solve some of these issues and get solutions as well as it being slicker if it automatically adds them. Adding the proficiency's was fairly straightforward, although there may be a ProfSave.all that I couldn't find. I'm also 'cheating' by just adding all Simple Weapons as proficiency, instead of just the weapons chosen by the player. I was eventually going to try to fix that as well, and just assign 2 weapon proficiency. Code:
if (#levelcount[EPArtific] >= 3) then perform minion[Familiar].assign[ArmProfGrp.WepSimple] perform minion[Familiar].assign[ProfSave.svCON] perform minion[Familiar].assign[ProfSave.svINT] perform minion[Familiar].assign[ProfSave.svWIS] perform minion[Familiar].assign[ProfSave.svDEX] perform minion[Familiar].assign[ProfSave.svCHA] perform minion[Familiar].assign[ProfSave.svSTR] endif |
|
#6 |
Senior Member
Join Date: May 2016
Posts: 608
|
Yep, that's a tough one to imagine tackling.
Have you tried grabbing the WepProf tags from the weapon chosen and pushing only the weapon proficiency to the minion? That way you don't have to grant all simple weapons. Should be something like (pre-levels/10000) : Code:
perform field[usrChosen1].chosen.pulltags[WepProf.?] perform minion.pushtags[WepProf.?] Also, the all saving throws is svAll so you can drop to a single line Code:
perform minion[Familiar].assign[ProfSave.svAll] One way to try and tackle this would be to create two Helper weapons (they have the Helper.Helper tag to keep them from showing in the normal selection boxes). Don't give those weapons any information other than a name like Built-in Weapon 1 - no damage or anything other than the Simple proficiency. Bootstrap those two weapons to the minion and then step through each of your chosen weapons and copy the damage fields from them into the appropriate bootstrapped weapon. Something like: Code:
perform field[usrChosen1].chosen.pulltags[?.?] perform minion.childfound[BuiltinWeapon1ID].pushtags[?.?] minion.childfound[BuiltinWeapon1ID].field[wDieSize].value = field[usrChosen1].chosen.field[wDieSize].value minion.childfound[BuiltinWeapon1ID].field[wDieCount].value = field[usrChosen1].chosen.field[wDieCount].value ... etc ... YOu would replace the BuiltinWeapon1ID with your 1st weapons' ID of course. |
#7 |
Junior Member
Join Date: Jun 2016
Posts: 23
|
Interesting, very interesting. I like the idea of a blank 'helper' weapon that is then overwritten with the appropriate stats. It scales up to simple and martial weapons, and would also allow for additional weapons to be added without modifying the class.
I'm going to play around with all of these options, and I'll update here in case anyone else ends up with a similar question. |
#8 |
Junior Member
Join Date: Jun 2016
Posts: 23
|
I actually remember I tried ProfSave.svAll for assigning all saves, but for whatever reason that tag doesn't get added to the minion when the individual ones work.
The weapon proficiency code works great, it adds the specific weapon proficiency to the minion when it's chosen. I started looking into implementing the weapons script, but I'm getting an error with trying to pull all the tags from my choice with this: pulltags[?.?]. It doesn't seem to allow you to wildcard the tag group. I'm looking to see if there is another way to copy all of the tags off of a specific pick from the hlkitwiki. |
#9 |
Senior Member
Join Date: May 2016
Posts: 608
|
Yeah, forgot about that on the pull you have to have the group ID.
Pulling all the tags would be overkill, maybe stick to the tag groups like [wProperty.?], [DamageType.?] and pull/push those. Between that and the base damage fields, it would cover most of what you're trying to do while you tweak it. |
#10 |
|
|