• 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

Hello, Everyone! Working on a Ravenloft Game

Well, assuming you intend it for all, here is how I would approach it.

Go to the Mechanic tab in the editor and create a new one. Name it and give it a unique ID. Scroll down and give it a new source as well. When defining the new source, in the box for Parent Source type in "HouseRules" so it sorts under the house rules stuff, and name it whatever you like. Perhaps "Ravenloft Common Replacement" with a unique ID of RavCommRep.

Then click on the eval script button in the upper right, and add the following eval script:

First 400
Code:
    ~First, set the focus to whatever race we have added
    perform hero.findchild[BaseRace].setfocus

    ~If there is no race, then there will be no focus and we can go no further
    doneif (state.isfocus = 0)

    ~If the race already has the NoDefComm tag there is nothing to replace
    doneif (focus.tagis[Hero.NoDefComm] <> 0)

    ~If we've gotten this far, assign the tag to remove the default common, and add 1 starting language slot to replace it.
    perform focus.assign[Hero.NoDefComm]
    herofield[tLangsSta].value += 1

You can't use Test Now with mechanics, so save the file and reload the program. Then start up a new character, and test turning on your house rule, making sure it behaves as expected.
 
Last edited:
Do you want all races to get a replacement slot for losing common, or only humans to get the replacement slot?

I would think it would make the most sense to just have the humans get the slot; heck, I could write an optional rule for all humans to get a bonus language to run alongside the existing 'no common language' rule.
 
Well, assuming you intend it for all, here is how I would approach it.

Go to the Mechanic tab in the editor and create a new one. Name it and give it a unique ID. Scroll down and give it a new source as well. When defining the new source, in the box for Parent Source type in "HouseRules" so it sorts under the house rules stuff, and name it whatever you like. Perhaps "Ravenloft Common Replacement" with a unique ID of RavCommRep.

Then click on the eval script button in the upper right, and add the following eval script:

First 400
Code:
    ~First, set the focus to whatever race we have added
    perform hero.findchild[BaseRace].setfocus

    ~If there is no race, then there will be no focus and we can go no further
    doneif (state.isfocus = 0)

    ~If the race already has the NoDefComm tag there is nothing to replace
    doneif (focus.tagis[Hero.NoDefComm] <> 0)

    ~If we've gotten this far, assign the tag to remove the default common, and add 1 starting language slot to replace it.
    perform focus.assign[Hero.NoDefComm]
    herofield[tLangsSta].value += 1

You can't use Test Now with mechanics, so save the file and reload the program. Then start up a new character, and test turning on your house rule, making sure it behaves as expected.

Thanks, I'll take a look at it and see what I would need to do to make it only affect humans.
 
Thanks, I'll take a look at it and see what I would need to do to make it only affect humans.

You only need to add one more line to limit it to humans.

First 400
Code:
    ~First, set the focus to whatever race we have added
    perform hero.findchild[BaseRace].setfocus

    ~If there is no race, then there will be no focus and we can go no further
    doneif (state.isfocus = 0)

    ~If the race is not human, go no further
    doneif (focus.tagis[Race.rHuman] = 0)

    ~If the race already has the NoDefComm tag there is nothing to replace
    doneif (focus.tagis[Hero.NoDefComm] <> 0)

    ~If we've gotten this far, assign the tag to remove the default common, and add 1 starting language slot to replace it.
    perform focus.assign[Hero.NoDefComm]
    herofield[tLangsSta].value += 1
 
You only need to add one more line to limit it to humans.

First 400
Code:
    ~First, set the focus to whatever race we have added
    perform hero.findchild[BaseRace].setfocus

    ~If there is no race, then there will be no focus and we can go no further
    doneif (state.isfocus = 0)

    ~If the race is not human, go no further
    doneif (focus.tagis[Race.rHuman] = 0)

    ~If the race already has the NoDefComm tag there is nothing to replace
    doneif (focus.tagis[Hero.NoDefComm] <> 0)

    ~If we've gotten this far, assign the tag to remove the default common, and add 1 starting language slot to replace it.
    perform focus.assign[Hero.NoDefComm]
    herofield[tLangsSta].value += 1

Thanks! But I meant for all races to lose the Common, and for only humans to get a slot back, so I think i have to move the race conditional down to the next to last line, unless I've missed something.
 
Interesting :

~First, set the focus to whatever race we have added
perform hero.findchild[BaseRace].setfocus

~If there is no race, then there will be no focus and we can go no ~further
doneif (state.isfocus = 0)

~If the race already has the NoDefComm tag there is nothing to ~replace
doneif (focus.tagis[Hero.NoDefComm] <> 0)

~If we've gotten this far, assign the tag to remove the default ~common, and add 1 starting language slot to replace it.
perform focus.assign[Hero.NoDefComm]
herofield[tLangsSta].value += 1

That was supposed to be "take away common, give a free slot in exchange to all races". The interesting thing is that characters are ending up with TWO free language slots. So the taking away of the Common language is, by default, giving characters the language slot that they'd otherwise be missing! No need to give them another. So.. the "No Common Language" house rule that is provided in the default options actually must go out of its way to take back that slot, or approaches it in a totally different way.
 
Interesting :



That was supposed to be "take away common, give a free slot in exchange to all races". The interesting thing is that characters are ending up with TWO free language slots. So the taking away of the Common language is, by default, giving characters the language slot that they'd otherwise be missing! No need to give them another. So.. the "No Common Language" house rule that is provided in the default options actually must go out of its way to take back that slot, or approaches it in a totally different way.

Or maybe it isn't? Maybe there's something funky about how it's executed and it got executed twice or something. I dunno.
 
I just wanted to thank everyone again for all their help. I'm working with Raven to contribute what I can to his Ravenloft data files - I may have more questions for the group later on when I go to try implementing Ravenloft monsters.. Vampires having selectable abilities, age categories, and even secondary templates, for instance. Right now I'm tinkering with a Wolfwere - much less of a headache.
 
Back
Top