Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TODO: New Faction sheet #55

Open
justinross opened this issue Feb 1, 2023 · 5 comments
Open

TODO: New Faction sheet #55

justinross opened this issue Feb 1, 2023 · 5 comments
Labels
enhancement New feature or request

Comments

@justinross
Copy link
Owner

No description provided.

@theredspoon
Copy link

theredspoon commented Apr 30, 2023

@justinross Not sure what requirements you have in mind for a new faction sheet, but here's something I was playing with that would be better off with system support. Would love to hear your thoughts.

As a user with a list of factions, I want to build a useful faction map.

Implementation suggestion:

  • Add a "Faction Map" mode to the module settings, which when activated handles factions on the canvas in the ways outlined below (maybe searching for a scene explicitly called "Faction Map"?)

As a user looking at a faction map scene, I want to hover over factions on the canvas to clearly see who they are allies or enemies with. When I hover off, I want my faction map to return to normal.

Implementation suggestion:

  • add an Allies flag and an Enemies flag to each faction Document; a user with edit permissions can edit a faction sheet to add or remove allied or enemy factions (ideally, choosing options limited to the existing faction list)
  • when hovering in a faction tile on the canvas:
    -- allied factions already on the canvas are tinted in green
    -- enemy factions already on the canvas are tinted in red.
    -- all other faction tiles already on the canvas are invisible (?)
  • when hovering off a faction tile on the canvas, all tints and visibility return to normal.

Side note: This can allow for more sophisticated faction play by making relationship tracking easier to visualize.

As a user looking at a faction map scene, I want to easily see how significant of a force the faction is.

Implementation suggestion:

  • when a faction is dragged and dropped onto the canvas, it is sized according to its tier. A Tier 1 faction occupies a 1x1 square, Tier 2 faction occupies a 2x2 tiled square, ..., Tier N faction occupies NxN tiled square.

@theredspoon
Copy link

To add to the comment above:
connecting a Faction item to a placed tile means there needs to be a way to associate the two. I wasn't able to find a way to do that natively. It doesn't seem like a placed tile references its item parent. To make that connection, I used the Tagger module to give the placed tile a human-readable tag for name (e.g. "Leviathan Hunters").

I'm assuming factions are set up as items because Actors can't reference other Actors (i.e. faction sheet cannot reference factions)?

@justinross
Copy link
Owner Author

I think a larger faction implementation is outside the scope of my module, but is a cool idea nonetheless. From a manual, no-module-needed standpoint, faction territory mapping could possibly be done with Foundry lights dropped on the map. Color the light based on relationship, maybe draw walls around districts to contain the lights.

And yeah, factions items mostly because you can’t currently have one actor “own” another. I believe this is changing in Foundry v11.

I do have long-term plans (probably after Foundry v11) to remake the Blades system mostly from scratch, and would love to include stuff like this, though.

@theredspoon
Copy link

@justinross

faction territory mapping could possibly be done with Foundry lights dropped on the map. Color the light based on relationship, maybe draw walls around districts to contain the lights.

Sure, that makes sense. I've been using Political Map Overlay to handle territory claims on top of Ryan Dunleavy's maps.

Pros:

  • easy to add territory to one faction or another
  • WOW moment on the map to see visually something like "Oh, the Gondoliers' turf is all these canals... and there are a LOT of canals"

Cons:

  • territory "units" are grid squares that cannot be smaller than 50px by 50px, which means there's no "nice" block-by-block turfs and it can only be so granular (so for example Silkshore is criss-crossed by canals which means a lot of Gondolier action, but The Hive controls Silkshore, and I cannot highlight both factions on the same square or have squares small enough to handle both territories)
  • only so many colors to differentiate between factions (so if I have lots of factions in play, which my playgroup favors, it's nontrivial to distinguish the "light green" faction from the "bright green" from the "forest green" faction if they're close to each other

I do have long-term plans (probably after Foundry v11) to remake the Blades system mostly from scratch, and would love to include stuff like this, though.

I'm with you. I have this dream I'm slowly working toward of releasing a "comprehensive Blades adventure bundle". I hope you don't mind my sharing ideas here as they come up.

@theredspoon
Copy link

theredspoon commented May 9, 2023

@justinross
Also, to follow up on this comment:

I scrapped the Tagger approach and was most of the way toward implementing this setup via macro when I came across some unexpected behavior in Dialog.

The expected behavior:

  • select a faction tile
  • execute a macro that:
    -- opens a Dialog
    -- renders an Enemies multi-select populated with factions on the canvas (current enemies are already selected)
    -- renders an Allies multi-select populated with factions on the canvas (current allies are already selected)
    -- lets user multi-select the allies and enemies of the selected faction
    -- saves the results as Flags

The unexpected behavior:
-- when a multi-select is unfocused after items are selected, the items visually disappear until the multi-select is focused again. (Flags can be set but it is a rendering issue.)

I guess that's a problem with Dialog not being able to re-render? And I should try a FormApplication? I didn't find documentation on FormApplication so I stopped there for the time being. Not to threadjack my own thread, but curious if you have any suggestions...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

2 participants