richardwilkes / gcs

GURPS Character Sheet
http://gurpscharactersheet.com
Mozilla Public License 2.0
218 stars 61 forks source link

Add a Template container type with a "custom point value" optional field #878

Open Xain3 opened 1 month ago

Xain3 commented 1 month ago

Right now, there is to my knowledge no way of modifying the default container behaviour (sum the points of all the included traits/skills/items), except for selecting the Alternative Abilities type, which applies its own modifier.

This happens also in the case if template containers, even when we do actually know the value, or the value range, that the container is going to take.

It would be great if we could add a Template container type, where the user could chose to specify a custom point value, a range of values (although I am not sure how this could be handled), or the average of the values in the container multiplied by X (defaulting to X=1).

This would help with templates point coats as currently it is pretty hard to keep track of them!

richardwilkes commented 1 month ago

A value range is not practical, given the way other parts of the code work. It must resolve to a single, consistent value, at least for traits. Skills & Spells don't use the container points at all, so it could technically be done there, although I'm unlikely to make them special in this regard. Equipment and Notes have no points associated with them, so aren't relevant.

For the third option ("average of the values in a container multiplied by X")... what is this actually trying to do? In general, this can't solve the unknown value of a template, except in some fairly narrow cases.

I guess I don't quite understand why this is needed. The value of a template isn't really relevant at this level. If you want to know what the template value is supposed to be when applied, I would suggest that template authors place that in the name of the file. i.e. rather than just naming it "Dwarf", you name it "Dwarf (20)", "Dwarf (20-25)", "Dwarf (20+)" or something similar, which also makes it easier for a player to skip over those templates that are just too costly without having to open up each.

Xain3 commented 3 weeks ago

Sorry for the late reply, and thanks a ton for your feedback!

I totally agree with you on the first two points. The idea of a value range was already a bit iffy to me, and I can see now that the averaging method would only be useful in very niche situations, so I get why that might not be the best approach.

That said, I still think having a "custom point value" field could be really handy—not just for players' reference (though I do love the idea of naming templates with their point values), but also for us template creators. It would make it a lot easier to keep track of the overall point value of each template at a glance without having to do all the math ourselves.

For example, I've got this parent container called "SS Mule" in one of my templates, and inside it, there's another container where you pick up to -20 points of disadvantages. Let's say there are 10 disadvantages at -10 points each—that makes the whole container's point value -100. But if I want to quickly see the overall point value by just looking at the parent container, the numbers would be totally off and kind of confusing.

If we could override the value of that container with a specific number or have it inherit the value based on the choice limit, it would instantly reflect the actual power of the template. This would be super useful, especially when trying to balance everything.

Thanks again for considering this, and I really appreciate all the hard work you're putting into this project!