League-of-Foundry-Developers / torch

Simple torch module for Foundry VTT
10 stars 20 forks source link

Light item separate from consumed resource option #58

Open picollo-24 opened 1 year ago

picollo-24 commented 1 year ago

Some items (like lanterns) have scenarios where you're using oil to light them, but the lantern itself is the source of light.

Would it be possible to add scenario where you need item X to be able to have light, but consumed resource would be object Y instead (also required in the inventory)?

lupestro commented 1 year ago

I really don't want to get into all that complexity because:

There are quite a lot of things we shamelessly don't do: dropped light sources, light sources that consume spell slots when lit, light sources in spells that also have other game-effecting side-effects. Your request is more akin to those than to other things that have come up. They all require knowing more about game system rules and how the game system structures data than I feel comfortable supporting in a general use module. (Okay, dropped light sources is admittedly borderline for that. Maybe one day...)

However, thanks for the suggestion.

I don't want to leave you completely "high and dry", though.We have recently added the ability to invoke torch functions from macros, so you might experiment with that to get what you want. It's in the README.md.

claycle commented 7 months ago

I would second the OPs request. I was making a system JSON for RuneQuest, and in that game, candles are a light resource that you can also use in Lanterns. As currently modeled, the candles can be used (consumes candles) and the lantern can be used (does not consume the lantern), but the lantern should consume a candle when used.

The OP's request is a fairly system agnostic request.

lupestro commented 7 months ago

@claycle I see what you mean.

If the candle you use as fuel is consumed per use, then we don't need to tangle with ideas like time. We would need only create a module-specific relationship called "fuel" that relates the light source named Lantern with the consumable fuel named Candle. A Candle could also appear independently as a consumable light source in its own right.

What about the original request?

In the original request, the object named Oil could be referred to as a fuel to ensure that you at least have some in your inventory, but

Without a way to track consumption, the best we could do for Oil would be to insist that the user have some oil in their inventory to use an Oil Lamp. A feature that consisted of nothing more than "nanny-minding" the inventory didn't seem really compelling to me.

In cases where we don't have a general Foundry way of tracking usage, I'm quite happy to fall back on the GM to negotiate that with the player via roleplay, especially where the concepts involved are loose or fluid. This lets the GM bring limitations into play when they'll enhance gameplay the most, which should be the point of the exercise:

You've been running this oil lamp for hours, buddy. Reduce your supply of lamp oil by one flask. Oh, that was your last one? Your lamp looks like it will gutter out very soon. You hear a dry chuckling out in the darkness...

I get enough complaints about the attention we pay to inventory as it is. :) Many gaming tables care only about equipment with combat stats. Beyond weapons and armor, if it seems reasonable to have it, you can assume that you have it. So I hear:

What? If I want to light a torch, I actually have to buy them? And then count them? Really??!

Don't worry, guys - I've heard you - I've got a feature in the works - just getting my test cases in play to support the added internal complexity of bigger decision trees - "dry as dust" boring stuff so I'm dragging my feet but you'll thank me later - soon.

Proposed Feature

I could enhance the module to support the "fuel" concept by applying the following sub-features:

Complexity

We always need to look at what any feature does to complexity so we don't make the module harder for casual use:

Feature interaction

Time for Folks to Chime in...