Bt Builder

Discussions and help for the Bard's Tale Construction Set
dulsi
Posts: 242
Joined: Thu Mar 22, 2007 7:15 pm

Re: Bt Builder

Post by dulsi »

Methuselas wrote:Oh and dulsi, I really need a X Rounds Per X Level +/-N spell duration.
I really wanted to refactor monsters to give more attacks but that has proven more difficult than I initially expected. I was thinking about this request and how ugly it would be to implement. It occurred to me I was thinking about it the wrong way.

You generally wouldn't make 1 spell have 5 rounds + 1 round/level, 1 spell have 6 rounds + 1 round/level, 1 spell have 5 rounds + 2 round/level, etc. You would probably use the same durations multiple times. So instead of "Short" you want to pick "5 Rounds + Level". By moving duration into an xml file, I can add an editor to allow you to add your own duration types.
caars
Posts: 145
Joined: Fri Oct 18, 2013 10:01 pm

Re: Bt Builder

Post by caars »

dulsi wrote:
Methuselas wrote:Oh and dulsi, I really need a X Rounds Per X Level +/-N spell duration.
I really wanted to refactor monsters to give more attacks but that has proven more difficult than I initially expected. I was thinking about this request and how ugly it would be to implement. It occurred to me I was thinking about it the wrong way.

You generally wouldn't make 1 spell have 5 rounds + 1 round/level, 1 spell have 6 rounds + 1 round/level, 1 spell have 5 rounds + 2 round/level, etc. You would probably use the same durations multiple times. So instead of "Short" you want to pick "5 Rounds + Level". By moving duration into an xml file, I can add an editor to allow you to add your own duration types.
Another thing that could be potentially useful is "apply effect after a delay of X rounds." Why, you ask? Well, as is there's really no way to implement a magical status effect that ends after a given duration - you hit a monster (or PC) with a paralyze effect with a "short" duration, they don't get paralyzed and then stay paralyzed for the "short" duration and then get cured. They have to make a save or be paralyzed every single round - and the moment a save fails they are paralyzed.

That does make a certain kind of sense, but it limits your options (for one, paralysis may as well be a death effect). But this way you could have a spell apply a paralysis effect (one try to do it), and then, say 10 rounds later apply a "cure paralysis" effect to remove it.

However, I imagine that could potentially be very messy (and tricky) to actually implement.

One more technical question for you dulsi:

When a spell applies multiple effects, are they applied in order listed in the spell? In reverse order? Or is the order hardcoded (e.g. save bonus is always applied after damage, damage is always applied after healing, etc.)?

I ask because I've been trying to "creatively" use save bonuses to tinker with the relative probability that a spell will work (e.g. make a "turn to stone" spell a bit easier to resist than a "death" spell), but I see absolutely no evidence it actually works.

E.g.:

Duration: One Turn
Effect: Save Bonus +8
Effect: Damage 0 + Paralysis, effects only "Weak Humanoids"

...definitely only affects things flagged as weak humanoids, but (unless I'm just getting spectacularly unlucky with my rolls many, many, MANY times in a row) does not seem to make it any less likely the targets will be affected (my monsters are set to have a base save of 20, improving by 1 every few levels - I want them fairly vulnerable to magic overall; that spell should only affect about 60% of the targets, but seems to still affect 95% of them every time).

Is the problem that the code applies spell effects in reverse order? Or are "save bonuses" hardcoded to always apply after damage effects? (Or is it something more subtle, like a bug and the code is just plain ignoring save bonuses?)
Modules for BT Builder (still very much works in progress):
https://drive.google.com/folderview?id= ... sp=sharing
dulsi
Posts: 242
Joined: Thu Mar 22, 2007 7:15 pm

Re: Bt Builder

Post by dulsi »

caars wrote:Another thing that could be potentially useful is "apply effect after a delay of X rounds." Why, you ask? Well, as is there's really no way to implement a magical status effect that ends after a given duration - you hit a monster (or PC) with a paralyze effect with a "short" duration, they don't get paralyzed and then stay paralyzed for the "short" duration and then get cured. They have to make a save or be paralyzed every single round - and the moment a save fails they are paralyzed.
Interesting idea. It would require some refactoring to make that possible.
caars wrote:When a spell applies multiple effects, are they applied in order listed in the spell? In reverse order? Or is the order hardcoded (e.g. save bonus is always applied after damage, damage is always applied after healing, etc.)?
They are applied in order listed. The reason your save bonus is not working is because the save bonus code has this comment in the code "Doesn't work on monsters". I'll see about making that work.

However, I'm giving you what you really need in the next release. "Damage" effect has a new field called "Save Difficulty". It defaults to 20. Setting it to 12 would have the same effect as your save bonus plus it wouldn't impact other spells.
dulsi
Posts: 242
Joined: Thu Mar 22, 2007 7:15 pm

Re: Bt Builder

Post by dulsi »

New release is out.

Save bonus spells now work on monsters. Damage spell can now adjust the save difficulty. Higher is harder to save against and the default is twenty. Durations can now be use defined. Monsters in the party but not in the guild are saved in the save file.
caars
Posts: 145
Joined: Fri Oct 18, 2013 10:01 pm

Re: Bt Builder

Post by caars »

dulsi wrote:New release is out.

Save bonus spells now work on monsters. Damage spell can now adjust the save difficulty. Higher is harder to save against and the default is twenty. Durations can now be use defined. Monsters in the party but not in the guild are saved in the save file.
First, awesome.

Second, regarding the user defined durations, are we still talking a "5 round paralyze effect" tries to paralyze the monsters once per round for 5 rounds, leaving him paralyzed forever if he fails one save (let's call that "A"), or is it now "makes one attempt to apply the paralyzed effect, and if it "hits" stays paralyzed for 5 rounds, then can move again?" (let's call that "B").

(Or is there a C I didn't think of?)
Modules for BT Builder (still very much works in progress):
https://drive.google.com/folderview?id= ... sp=sharing
dulsi
Posts: 242
Joined: Thu Mar 22, 2007 7:15 pm

Re: Bt Builder

Post by dulsi »

caars wrote:Second, regarding the user defined durations, are we still talking a "5 round paralyze effect" tries to paralyze the monsters once per round for 5 rounds, leaving him paralyzed forever if he fails one save (let's call that "A"), or is it now "makes one attempt to apply the paralyzed effect, and if it "hits" stays paralyzed for 5 rounds, then can move again?" (let's call that "B").

(Or is there a C I didn't think of?)
Nothing has changed in that respect. However, I believe it cures the paralyze after round 5. If you look at the spell effect chart in BTCS manual, it says paralyze doe paralyze to start and every turn afterward, and end effect is cure paralyze. So it would be 5 saves not 1 but removal should occur after 5 rounds.
caars
Posts: 145
Joined: Fri Oct 18, 2013 10:01 pm

Re: Bt Builder

Post by caars »

dulsi wrote:
caars wrote:Second, regarding the user defined durations, are we still talking a "5 round paralyze effect" tries to paralyze the monsters once per round for 5 rounds, leaving him paralyzed forever if he fails one save (let's call that "A"), or is it now "makes one attempt to apply the paralyzed effect, and if it "hits" stays paralyzed for 5 rounds, then can move again?" (let's call that "B").

(Or is there a C I didn't think of?)
Nothing has changed in that respect. However, I believe it cures the paralyze after round 5. If you look at the spell effect chart in BTCS manual, it says paralyze doe paralyze to start and every turn afterward, and end effect is cure paralyze. So it would be 5 saves not 1 but removal should occur after 5 rounds.
Was the one turn version different? (I.e. does it need a duration of at least 2 rounds to trigger the code to remove the effect?) I ask because I can vouch for the fact that if you set something to do paralyze, and give it a duration of one turn (i.e. 1 combat round) there really is just one save (or the monster gets paralyzed), but they stay paralyzed for the entire fight. They don't stop being paralyzed at the end of the round.

At least that's the way it's worked so far. The new build may change that (I'm downloading it as we speak now that my internet's back...)

EDIT: And when I say "downloading" I mean the windows build specifically, so if there are bugs there that aren't in the other versions, that's what I'll be catching.
Modules for BT Builder (still very much works in progress):
https://drive.google.com/folderview?id= ... sp=sharing
caars
Posts: 145
Joined: Fri Oct 18, 2013 10:01 pm

Re: Bt Builder

Post by caars »

Okay, first round of test (again, Windows build).

Unfortunately, it looks like there are major bugs. Here's what I found:

Both save difficulty and save bonus don't appear to have an effect at all. At the moment, it actually seems like it is impossible for anything to make a saving throw at all. I've tried save difficulties of 12, 20, 0, -8, -100, and 100 on packs of 20 1st level monsters multiple times on both damage causing and damage causing + paralysis spells, and no matter what the difficulty was (or if I used a different effect to give a save bonus) not one monster made a saving throw *even once.* So something in the new system appears to have broken saving throws entirely...

There also seems to be an issue with the new duration system. Here are the details.

First, "combat" appears to work normally. As does "permanent," "indefinite," and "continuous." But both custom and presets with "dice" durations (short, medium, long, for example) all seem to fire once and then instantly expire (I'm not sure if they're technically acting as though the duration is 1 round, or just firing the spell once and ignoring anything having to do with duration). The test is very easy: make a light spell, and set it to permanent, indefinite, or continuous. It'll work as expected. Set it to short, medium, long, one turn, or a custom "dice" based duration, and nothing happens: you don't even get the animated light icon for even one turn... nothing at all.

Now if you set a damage spell to "combat" it'll definitely do damage to the monsters every round. But if you set it to short, medium, etc., you WILL do exactly one round of damage (the instant you cast the spell) and then nothing else. (And, as mentioned above, the monsters will NOT make a save no matter what the difficulty is set to).

Incidentally, in addition to going through the editor and trying to set spell values to both reasonable and crazy things, I even made one attempt to go into the job.xml file and set the <save> parameter for the monster class to 1000 (which, in theory, should guarantee they will make every save). Still not even one successful save.
Modules for BT Builder (still very much works in progress):
https://drive.google.com/folderview?id= ... sp=sharing
caars
Posts: 145
Joined: Fri Oct 18, 2013 10:01 pm

Re: Bt Builder

Post by caars »

Okay, it took awhile, but I've done some additional testing to verify my earlier bug report. This time around I did the tests on a module that does NOT use "custom" classes or any other alteration to the .xml data files the program reads info from (put simply: if it isn't something the "given" editor can edit, I didn't do anything to it).

I am still seeing the exact same behavior as I reported before:

- The "custom" durations (and even the "standard" multi-turn ones) do not work at all. All "variable" spell durations expire the instant the spell is cast.

- The "save difficulty" is likewise not having an effect. It doesn't matter what I set it to (12, 2, -10, 100), monsters generally do NOT ever make saving throws. I *did* have ONE monster make a save during my testing (even though the difficulty for the spells I was testing were set to 12), but it is literally the first and only time I've seen a save happen post 5.17...

- Paralysis does not actually end when the duration runs out (although, honestly, I think the "duration" is actually effectively zero, regardless of what I set it to - and the spell is ONLY applying the "instant I cast it" effect).
Modules for BT Builder (still very much works in progress):
https://drive.google.com/folderview?id= ... sp=sharing
dulsi
Posts: 242
Joined: Thu Mar 22, 2007 7:15 pm

Re: Bt Builder

Post by dulsi »

caars wrote:- The "custom" durations (and even the "standard" multi-turn ones) do not work at all. All "variable" spell durations expire the instant the spell is cast.

- The "save difficulty" is likewise not having an effect. It doesn't matter what I set it to (12, 2, -10, 100), monsters generally do NOT ever make saving throws. I *did* have ONE monster make a save during my testing (even though the difficulty for the spells I was testing were set to 12), but it is literally the first and only time I've seen a save happen post 5.17...
I started adding a command line option to log some information while btbuilder runs. While I did that I discovered the problem with durations. They are not adding the current time. If the spell has a duration of 200 rounds, it lasts 200 rounds if you cast it immediately after entering. If you cast it after 100 rounds has passed it lasts only 100 rounds. If you cast it anytime after 200 rounds, it ends immediately. This is fixed.

Save difficulty had bug that reset the difficulty to the base when making a save for a monster. I've fixed this as well. It is worth noting monsters still have awful saving throws according to the BTCS manual.
caars wrote:- Paralysis does not actually end when the duration runs out (although, honestly, I think the "duration" is actually effectively zero, regardless of what I set it to - and the spell is ONLY applying the "instant I cast it" effect).
I haven't had a chance to test this yet.
dulsi
Posts: 242
Joined: Thu Mar 22, 2007 7:15 pm

Re: Bt Builder

Post by dulsi »

I've been asked about having monsters drop items. One of my original thoughts was to move gold/items to a separate treasure xml file. So you could define treasure tables like from D&D.

Another possibility might be to add tags to items. You could then say give a percentage chance to get an item with tag "dungeon1drop" or something. (Technically this could be used with the treasure table idea above.)

Could you find two or more items at the same time in Bard's Tale? I think that was possible.
caars
Posts: 145
Joined: Fri Oct 18, 2013 10:01 pm

Re: Bt Builder

Post by caars »

dulsi wrote:
caars wrote:- The "custom" durations (and even the "standard" multi-turn ones) do not work at all. All "variable" spell durations expire the instant the spell is cast.

- The "save difficulty" is likewise not having an effect. It doesn't matter what I set it to (12, 2, -10, 100), monsters generally do NOT ever make saving throws. I *did* have ONE monster make a save during my testing (even though the difficulty for the spells I was testing were set to 12), but it is literally the first and only time I've seen a save happen post 5.17...
I started adding a command line option to log some information while btbuilder runs. While I did that I discovered the problem with durations. They are not adding the current time. If the spell has a duration of 200 rounds, it lasts 200 rounds if you cast it immediately after entering. If you cast it after 100 rounds has passed it lasts only 100 rounds. If you cast it anytime after 200 rounds, it ends immediately. This is fixed.

Save difficulty had bug that reset the difficulty to the base when making a save for a monster. I've fixed this as well. It is worth noting monsters still have awful saving throws according to the BTCS manual.
caars wrote:- Paralysis does not actually end when the duration runs out (although, honestly, I think the "duration" is actually effectively zero, regardless of what I set it to - and the spell is ONLY applying the "instant I cast it" effect).
I haven't had a chance to test this yet.
Durations: Yep, that makes sense, at least in the module I was using to test. That's a *bit* suspicious for the second test - I thought I'd just loaded up a fresh module for testing there, so it seems unlikely the start point would be after the spell was set to expire, but the fact I don't remember for sure means I really shouldn't be mentioning it until I do...

Monster Saves: Mine were even worse to boot; I think the "default" in BTCS was "save on a 17" or something (and get 1 better every two levels). I set it to something like "save on a 20" and get better ever 4 or 5 levels. Still, I would have expected to see a save at least a little more frequently, but random is random.

Paralysis: Hmm ... I wonder if "end the effect" is getting hit by the same bug (it thinks it needs to end the effect on round 201, and since it is currently round 947, the count will *never* get to what it thinks it needs to be to "remove" the effect).

Command Line option to log information: Yeah, even from a design point of view, a log file that actually lists what the "behind the scenes" rolls were would be useful just to verify what I think the module should be doing is actually what it is doing...

Monster Drops: Yes, they could drop more than one item. Actually, if you *really* want to replicate "original" BT there needs to be an option or flag for "if a chest is indicated, only drop gold and items if the chest is actually opened." That said, not only would dedicate code for dropping items be welcome, there are a LOT of ways to do it that would all be workable. Frankly, I'd easily be able to adapt to either D&D esque treasure tables OR a tag based system (e.g. 20% chance to drop an item with "Tag X" - presumably with each item bearing the tag weighted equally). In terms of pros and cons, tags are probably more flexible - they strike me as "more powerful in the long run, with a slightly harder learning curve to master for new designers", while tables are more "initially intuitive" (e.g. something like under "preferences" for each map there is an "items that can drop" that if you select just brings up the master item list and lets you "select" anything from that list that can drop - kind of like how the "classes that can use this" option works in the item editor: a new designer could figure that out with probably a minimum of effort or explanation...)
Modules for BT Builder (still very much works in progress):
https://drive.google.com/folderview?id= ... sp=sharing
Methuselas
Posts: 352
Joined: Tue Apr 28, 2009 11:03 pm

Re: Bt Builder

Post by Methuselas »

Merry Christmas, Guys! Hope all is well with you and your families.
"Using No Way as Way; Having No Limitation As Limitation". - Bruce Lee.

BTBuilder Stuff - https://drive.google.com/folderview?id= ... sp=sharing
User avatar
Brian the Fist
Site Admin
Posts: 138
Joined: Wed Apr 26, 2006 7:40 am
Location: Germany
Contact:

Re: Bt Builder

Post by Brian the Fist »

Methuselas wrote:Merry Christmas, Guys! Hope all is well with you and your families.
Thank you very much! :-)
The sudden scream of battle brings your party to a halt....
....will your stalwart band choose to fight or run?
caars
Posts: 145
Joined: Fri Oct 18, 2013 10:01 pm

Re: Bt Builder

Post by caars »

Methuselas wrote:Merry Christmas, Guys! Hope all is well with you and your families.
Thank you! And to you and yours as well!
Modules for BT Builder (still very much works in progress):
https://drive.google.com/folderview?id= ... sp=sharing
Post Reply