Kruptein / PlanarAlly

A companion tool for when you travel into the planes.
https://www.planarally.io/
MIT License
400 stars 73 forks source link

feat(Character): Add Character concept #1287

Closed Kruptein closed 1 year ago

Kruptein commented 1 year ago

This PR introduces a new PA concept called Characters.

Introduction

A character is a specific instance of some entity (e.g. a PC or NPC) in a campaign-wide context.

It has a name, an icon and is associated with a specific shape that may or may not be placed in some location. When the shape is removed, its not fully removed. It's data is retained so that when the character is dropped on a map, it will be restored in its full glory.

Menu entry

All characters in a campaign (that the player has access to) will be visible in a new menubar entry. You can click on a character to move you camera to it and the DM can drag and drop them onto the map.

If the shape associated with a dropped character was already placed in some location, be it the active one or another, it will be moved to the place where the DM dropped it. There will always be only one instance. You can copy+paste these shapes as you can with any other shape, but they will not be linked to the character, but rather be a completely new separate shape.

Creation

Character creation is currently limited to a new right click shape context entry. It is however my goal to allow players to create and manage characters in the future from outside the game, alleviating some of the extra work that currently is needed for a player token to appear on the map. The ability to drag&drop on the map will however likely be limited to DMs.

Differences with templates

Some might be wondering if this isn't similar to the existing "templates" feature. It however differs in some crucial aspects and actually fills a new niche adjacent to templates.

Templates are there to prepopulate data that is commonly shared between multiple instances of a specific asset. For example most goblins usually have the same AC and might have the same HP. By preconfiguring this in a template, you can prefill this info when you drop a goblin. Once dropped however, there is no further relation with the template. Any modifications to the HP or AC are unique to that specific goblin and don't alter the template.

Characters are there to fit that need. They are specific instances of an asset that retain their modifications. When a character is dropped, its data is moved along.

"This doesn't feel impactful"

This addition right now is marginally useful, it adds a list of your characters to your menubar which might be handy for quick navigation and you have some more flexibility in moving that shape around, but that's about it. This feature will however shine brighter with the addition of the next couple of features: data-blocks and mod support, which will allow more creative things like character sheets to be added, with which you might want to interact quickly without necessarily finding the specific shape on the map.