Questions and Requests

Very cool product.

Some general questions:
1) Is the DOM of the character sheet accessible through JS?
If so:
1a) Can we create new fields using JS?
1b) Can we change the layout using JS? (CSS?)
2) Can I export lists created for one sheet to use in other sheets?
3) Can I create / change Lists and / or Data Stores using JS?
4) Are fields to only way to 'store' global data? or can we create global JS variables?

(What I would like to do is have a 'character creation' mode in my sheet which has an 'add skill' button that will add in a new skill drop-down, and restrict its list to skills not yet chosen)


Feature requests:
Control of Colors used, both in UI and via JS

Arrow pointer when creating fields (the I-beam makes it hard to place things right)

I play games like 7th Sea / L5R / White Wolf that use collections of filled (and un-filled) circles to indicate abilities / skills / etc. instead of straight numbers. It would be nice to have a field that lets you do this. It should:
Let you specify the total number of circles in a row or grouping (max value)
Its value would be the number of filled circles
In the Viewer, clicking on a circle would toggle its fill state.
Filling circles should be only allowed from one end to the other (left or right justified)
Also, in 7thSea / Legend of 5 rings, a 'skill' has a number of 'knack' that are individually handled. So when I buy a new skill, I get a number of things in my character sheet, each with somewhat different default values, and each can be changed individually after that addition.

Lists of Images or an indexed Image object (some way of setting an index value on an object, and having one of a set of pre-defined images display)

I guess what I would like to see is a way to manage character creation. The product is very nice for duplicating a paper character sheet, but I would like to do more character creation activities. Even in D&D, it would be nice to select a feature (like Race, Class, Feat, etc.) and automatically have the skills and abilities associated with that be added to the character sheet. You are using JavaScript, which makes me think I might be able to manipulate the DOM, which would let me do these things, though I would need to know how to do things that are normally handled in HTML / CSS files.

Comments

  • All good questions.

    From what I've observed so far I would lean towards:

    1) No don't think so
    1a) No don't think so, best way to mimic this is have set fields and then manipulate what data shows up in them and then hide them if they don't have any/valid data.
    1b) I haven't tried this, but I don't believe there is a coordinate system available based on the field options so it seems unlikely
    2) I don't think in the way you're probably looking for. Oddly enough when you create a new sheet while working on an existing sheet all of the attached csv files are listed as being attached and the script on built in editor remain but the list remains empty. I think this is just a bug as the csv If you remove any of the csv files and readd them they then auto add the list. That is the only way I can see lists from one sheet being 'imported' into another
    3) Yes. You can change lists dynamically by referencing the field names list option such as object.list = "new list"; This will work if you have a list created called "new list" As for creating them, you can create arrays and place them as global place holders in your script, when you can then reference as if it were a datastore. I haven't tried saving these as a list but I'll have to play around with it.
    4) Yes as mentioned in answer 3. But I still find it useful to have a hidden file that can run certain functions for you. I know there is the whole on open/update/post update/save data but you can also make multiple function calls using the source of any placeholder field just by separating them with a comma. So a hidden field could have for its source showAffinity(),updateSpellSphere(),showSpellSphere(). This can force a chain of independent calls so long as they don't actually return a value. Well the last one can return a value but normally this is useful for enforcing an order of calls to be made when something is changed.

    I had been trying to do something similar where I wanted a dynamic number of skills to be listed depending on the character type being made. I ended up solving this by having a maximum number of skill fields, say 20, then naming them skill0 - skill19. I would then hide the fields not in use and when a new field was needed it would become visible with the appropriate data filled in. Cycling through them is easily done in a loop where you can either have each field pass in a reference to itself or you can have a loop run eval("skill"+i).

Leave a Comment