Re: [pcgen] [Devon][CODE] [FREQ] p7+ trackers - 10/31/04
- What Eric said. He's much clearer today than I am. :)
But then, he and I are on the same page, since we've talked about this issue
many times in the past.
----- Original Message -----
From: "Éric Beaudoin"
If there is really no other way, at least attach the functionality to a list
of types that can be defined somewhere in a gameMode file.
Still, I rather have a separated tag for this because implicit functionality
is never clear. TYPE is good to select subsets of objects and should stay
that way. You can then use that subset to define functionality with other
tags. Attaching functionalist to some Magic TYPE instance is not good in the
What I want is to see the link between the types and the functionality in
the .lst files. Having it in the gameMode is only one way removed from
having it hardcoded unless we create a gameMode tag that accept a list of
objects and then use the TYPE syntax to define the list.
TYPE already has a function. Overloading that function on specific type is
only asking for trouble. New function, new tag.
- I agree with Eric and Tir on the general issue, I've found the use of
various type confusing and full of surprises. I had thought it a good idea
at one time to document all the TYPEs and there purposes but I never got
very far with it because there was no way I (not being able to read the
code) was going to be able to find out all this stuff.
I would like to take this a bit further and talk a little about design
philosophy. The developmental changes we are adding to the program can be
lumped into two groups:
A) Additions which add functionality, these support the rules by allowing
players to add items to their characters and correctly track them.
B) Additions which add restrictions, these support the rules by enforcing
restrictions and limits on number of items, additions, levels etc..
Now I know this is a gross simplification but there are a couple of points
I'd like to make. In an ideal world we should strive to accomplish both
areas of development but in reality we are limited by the resources we have
available. I'm talking manpower, the number of monkeys who contribute
regularly and significantly is small. I'm really amazed sometimes at the
amount of work that does get done by this small group. When faced with this
limitation the objective of providing needed functionality has a much higher
priority then does the enforcement of restrictions put forth by the rules.
It is also important to remember that this program is a game aid and not the
game itself. There may also be restrictions in the rules that some DM's
would wish to ignore and if we choose to enforce them we may eventually have
to find a way to make them optional as well. The convoluted code we would
need to handle the exception might very well be greater then enforcing the
Here are a couple of examples of this:
In Spycraft some base gadgets (Shoes, attaché cases, cars, watches) can have
additional gadgets built into them but they are limited to a specific number
of them per base item. I did actually find a way to enforce this but it was
extremely ugly involving a variable just to track the number of mods and a
crap load of PREVAR tags. Having figured it out I decided it just wasn't
worth it and just put a note in the help file that it is up to the user to
track those limits.
There is another example in a tracker on SF. It seems vampire clerics can
only choose between three specific domains (which ones escapes me ATM)
without additional code the only way to enforce this is to put PRETEMPLATE
tags in all the other domains which does not balance in the cost/benefit
equation. Also, what about the case of the PC who has been turned into a
vampire but somehow stays good, I'm sure this happens a lot ;)
Now I'm not suggesting that we not look for ways to do these things or that
we shouldn't put these restrictions in. I'm saying we should prioritize
development which provides new functionality and fixes bugs before we spend
much time on things which only restrict users choices. If we can find a way
to provide functionality and enforce restrictions, great! If we can provide
the functionality but cannot enforce restrictions we should at least provide
the functionality without putting the whole feature on hold.
I don't consider this FREQ to be that necessary for 5.8 especially
considering it was just recently entered.
Surely there are FREQs and bugs more deserving of some attention than this
(VISIBLE in Skills hint hint ;-)
~ Eddy Anthony (MoSaT)
~ PCGen Content Silverback
Éric Beaudoin scribed:
> For the record, Tir talks for all the senior data monkeys on this
> issue. Any functionality linked to a TYPE (especially the hardcoded
> ones) should be seen as Evil(tm).
> We've done that in the past and we are still paying (kind of like the
> Olympic Stadium in Montreal).
> On Sun, 31 Oct 2004 21:05:16 +0100, Stefan Radermacher <ml@...> wrote:
>> thoron-tir-gwaith@... wrote:
>>> Devon, I didn't know this FReq was on the 5.8 list. Zaister, is this
>>> one nearly complete? I haven't heard in a while... I'm not even
>>> sure if we came up with a final syntax for the new choice system. At
>>> least, I think I was IRCing about it with Zaister a while back....
>> This would be easy, if we would introduce an TYPE for the equipment that
>> can be chosen, but Tir was opposed to that, so no, we haven't found a
>> dfinal syntax yet. However, I think it doesn't need to be a 5.8 priority.
>> (aka Zaister)
- --- In email@example.com, Devon Jones <soulcatcher@e...> wrote:
> Stefan Radermacher wrote:see a
> >Éric Beaudoin wrote:
> >>For the record, Tir talks for all the senior data monkeys on this
> >>issue. Any functionality linked to a TYPE (especially the hardcoded
> >>ones) should be seen as Evil(tm).
> >Currently the way PCGen chooses which kind of equipment gets listed in
> >the chooses for free clothing ist by looking at the TYPE, it lists all
> >equiupment witht the TYPE "Clothing.Resizable", and I don't really
> >way to do something like that differently currently.linking
> >Also, I'm wondering, what good is the TYPE qualifier if not for
> >functionality to it? How else is the program supposed to differentiateable
> >between different kinds of equipment items? How else would PCGen be
> >to know that you can't use a lantern as a weapon or a sword as armor?*have* to
> I have to weigh in here, and say that I agree with Stefan. We
> refer to specific types in code, otherwise there is no way for us toThis is
> know how this stuff can affect anything.
> Sorry, it may be ugly, but there really is no other viable way.
> what TYPE is *for*I agree, TYPE as a function can't be removed.
> I am btw open to other suggestions, but really, any suggestion needs to
> include eliminating TYPE, because that is it's primary code function -
> to be a filter on items or other things for the code.
What about changing TYPE in items to ITEMTYPE (or some such), TYPE in
feats to FEATTYPE, TYPE in classes to CLASSTYPE, etc, etc.
Would solve both problems (but have alot of up front costs).
- Tir Gwaith wrote:
>Do you realize HOW MANY Types there are in Equipment? And while many areWhile I understand, if the solution involves 5 lines for a new type or
>there for users ability to select items, many are there clogging it up for a
>single obscure purpose. I small rule (that groups I've played with have
>always ignored) in the RSRD that will require another TYPE, with potentially
>another hard-code specific TYPE, is something I really don't want to go
>into. I'd like another solution than just throwing everything and the
>kitchen sink into TYPE tags.
>I have SERIOUS reservations about endorsing another hard-coded (even in
>GameMode) TYPE to equipment.
>The other problem we have is that the object's TYPE tag is not used the same
>across all files. Or even the same way all the time in the same file. It
>is like the "Catch-all" drawer in my kitchen.
500 (or more) to do it another way, sometimes this means that a new
hardcoded type is the lesser of two evils. I'll look into the issue
that spawned this some time later and see if there is a creative way to
solve it without a type.
- Devon Jones scribed:
> While I understand, if the solution involves 5 lines for a new type orI think the desire is to keep these sort of features out of the code (which
> 500 (or more) to do it another way, sometimes this means that a new
> hardcoded type is the lesser of two evils. I'll look into the issue
> that spawned this some time later and see if there is a creative way to
> solve it without a type.
are not readable to us non-programmer simians) and have it as much in the
LST files as possible. Point of fact, this feature can be done with one
existing tag right now, check it out:
ADD:EQUIP(Outfit (Artisan's),Outfit (Entertainer's),Outfit
(Explorer's),Outfit (Monk's),Outfit (Peasant's),Outfit (Scholar's),Outfit
The thing we can't do in a dataset is easily attach something like this to
every character created. The only way I know to effect any all characters is
to add stuff into the stats and checks file of the gameMode and that is
really only good for defining variables and adding bonuses.
So what about this, we create a way to add feats to all characters created
with the dataset loaded. We can create a .pcc tag for this, FEATALL: would
point to a file of feats. The feats would all be applied to the character
after a race was chosen and the first class was selected. PRExxx tags could
be used in the feats and only those that the PC qualified for would be
added. So in this case we could have a hidden starting cloths feat with a
PRERULE (do we have a PRERULE tag?) and the tag listed above. It would
behave exactly as it does now but would only include the correct choices.
Best of all it there in the LST files for all to see.
I have seen the request for a way to add stuff to all characters come up so
I know there are many uses this could be applied to, I have a few in mind
~ Eddy Anthony (MoSaT)
~ PCGen Content Silverback