• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Shield Bash

Here is my shield bash and heavy shield, respectively.

I'll scan through your code and see if I can find out what is different and what isn't. Might tell me something. That will have to wait until I find some time this week to devote to it though. I'll be in touch.
 
Ah, found something. On your Shield Bash, add a tag in the Editor for Helper.Shadow. Let me know if this solves the problem. Thanks!
 
Sendric, my stuff probably wouldn't gel well with the Community Files, since it is not strictly d20 (lots of house ruled changes), and there is a ton of interaction between all my file elements that may break. I'll see what I can do though, but I don't have a ton of time at the moment to devote to anything more than casual usage. But I'll try and see.

In that case, don't sweat it too much. Probably more work than its worth. I already have some work done in this area anyway, and maybe I can draw some of your code if need be. Thanks.
 
Ah, found something. On your Shield Bash, add a tag in the Editor for Helper.Shadow. Let me know if this solves the problem. Thanks!

Seems to.

Now i just have to get the magic item ability "Bashing" to work, but i should be able to do that myself.

Thanks!
 
I plan on adding it for the next release, I just haven't gotten to it yet. It won't be the same as Kendall's implementation, though, so it may not mesh with what you have. If you wanted to provide anything to help out with it, I'm certainly open to that.
 
im fine with that or a different implementation. i can always change my stuff. what are your thoughts on doing it?
 
I've been focused on other things, so I haven't given it a ton of thought. Once I'm ready to dive into it, I'll let you know.
 
Kendall,

Do you use conditions for your version of shield bash? I was using this:

Code:
fieldval:gIsEquip <> 0

Unfortunately, this doesn't work when using a custom (mwk/mag) shield. Presumably this is because when you equip a custom shield then its iMagArmor whose field is getting changed as opposed to the shield itself. If I don't use a bootstrap, then I get multiple shield bashes in my weapons tab if I have multiple shields. Did you figure out a better way around this? I tried to fiddle with using Helper.CurrShield, but I'm not having much luck with that either.
 
@Sendric, The key to this is not to put any conditionals in this, they just don't work with armors and weapons because of the parent/child relationships of magical items (which include masterwork, unfortunately). I scripted everything so that it would work, which I thought I had added somewhere in here. I don't exclude the Shield Bash if the shield isn't equipped, though it could be possible, but I would script it rather than employing the conditionals. The conditionals are so hard to manage with all the timing issues.

You could try assigning the Helper.Shadow tag via script to the Shield Bash based on whether it is equipped or not, but that is the only way I could think to do that at the moment. If you take this route, you'll have to manage the field based on if it is magical, so with a magical (or masterwork) shield you can transition to the shield by checking the container.parent.gIsEquip.value (the parent (shield)/child (iMagxxx) relationship).

Did that help any?
 
Here is the code I was referring to, you should be able to get something out of it, mine was in the Final Phase just to make sure all timing issues with the shield had resolved. I had also forgotten to mention the gizmo part as well.

Code:
~ Work out if we're equipped or, if we're the child of a magic item,
~ if our parent is equipped.
var result as number
result = field[gIsEquip].value
if (container.ishero = 0) then
  result += container.parent.field[gIsEquip].value
endif

~ If shield bash is being used, allow for use of shield and bash.
~ Remove shield AC if equipped, unless Improved Shield Bash exists.
if (result <> 0) then
  var ac as number
  if (container.ishero = 0) then
    if (container.parent.gizmo.child[wShldBash].field[gIsEquip].value <> 0) then
      perform hero.assign[Hero.ShldOffOK]
      if (#hasfeat[fImpShdBsh] = 0) then
        ac = container.parent.field[mAC].value + container.parent.field[BonEnhance].value
      endif
    elseif (container.parent.gizmo.child[wShldBash].field[wIs2nd].value <> 0) then
      perform hero.assign[Hero.ShldOffOK]
      if (#hasfeat[fImpShdBsh] = 0) then
        ac = container.parent.field[mAC].value + container.parent.field[BonEnhance].value
      endif
    endif
  elseif (hero.child[wShldBash].field[gIsEquip].value <> 0) then
    perform hero.assign[Hero.ShldOffOK]
    if (#hasfeat[fImpShdBsh] = 0) then
      ac = field[mAC].value
    endif
  elseif (hero.child[wShldBash].field[wIs2nd].value <> 0) then
    perform hero.assign[Hero.ShldOffOK]
    if (#hasfeat[fImpShdBsh] = 0) then
      ac = field[mAC].value
    endif
  endif
  hero.child[ArmorClass].field[tACShield].value -= ac
endif
 
Last edited:
Thanks, Kendall! I'll check into this as soon as I get a chance. I like the idea of assigning Helper.Shadow in a script. That seems like it should do the trick.
 
Helper.Shadow is checked for before the phase & priority sequence starts, so there's no timing you can assign it at in order to get something to become shadowed based on a script. You need to assign it as an autotag of the bootstrap, or as part of the item's definition.

You may be able to assign tags that hide it, if it's not supposed to be shown.
 
Helper.Shadow is checked for before the phase & priority sequence starts, so there's no timing you can assign it at in order to get something to become shadowed based on a script. You need to assign it as an autotag of the bootstrap, or as part of the item's definition.

You may be able to assign tags that hide it, if it's not supposed to be shown.

Ok, thanks. Is there a tag to hide a weapon if we don't want it shown?
 
Helper.Shadow is checked for before the phase & priority sequence starts...

Bugger, I knew there was some reason why I showed all my Shield Bashes if there were multiple shields on a hero. I must have tried this and failed to get it to work, then just resigned myself to the multiple ones showing. I would just show all the Shield Bashes and let it rest at that, unless you can find a way to hide an equipped item.
 
Bugger, I knew there was some reason why I showed all my Shield Bashes if there were multiple shields on a hero. I must have tried this and failed to get it to work, then just resigned myself to the multiple ones showing. I would just show all the Shield Bashes and let it rest at that, unless you can find a way to hide an equipped item.

The other option would be to modify the gIsEquip field. I tried that, but to my knowledge it requires the trustme command which is somewhat volatile. Perhaps if there is some other field on the shield that we could modify, but that wouldn't otherwise be used, that might work. I'll have to give it some thought.
 
Ok. Took a bit of work, but I got it. I created a new tag and gave it to each shield (if you don't give it to at least one, you can't use it). This tag apparently gets transferred to the custom shield automatically, so all I need to do is delete it if the item isn't equipped:

Code:
if (container.ishero = 0) then
 if (container.parent.field[gIsEquip].value = 0) then
  perform container.delete[User.ShldBash]
 endif 
endif

I then created the following bootstrap condition:

Code:
fieldval:gIsEquip <> 0 | User.ShldBash

So, I think I'm all set with this now. It will be in the next release. Thanks for all the help, everyone!
 
Awesome! Looking forward to it.

Hopefully it wont be too difficult to get the magical "bashing" property of shields to work with your shield bash (unless youve already done that)?
 
Back
Top