-
Notifications
You must be signed in to change notification settings - Fork 231
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
[Feature Request] Provide a mechanism for actors like summons / familiars / companions / mounts to provide a reference back to another actor which owns or summoned them. #893
Comments
arbron
added a commit
that referenced
this issue
Feb 21, 2024
arbron
added a commit
that referenced
this issue
Feb 21, 2024
arbron
added a commit
that referenced
this issue
Feb 28, 2024
arbron
added a commit
that referenced
this issue
Feb 28, 2024
arbron
added a commit
that referenced
this issue
Feb 29, 2024
arbron
added a commit
that referenced
this issue
Feb 29, 2024
[#893] Add data model & configuration data for summoning
arbron
added a commit
that referenced
this issue
Mar 1, 2024
arbron
added a commit
that referenced
this issue
Mar 1, 2024
arbron
added a commit
that referenced
this issue
Mar 1, 2024
arbron
added a commit
that referenced
this issue
Mar 1, 2024
arbron
added a commit
that referenced
this issue
Mar 5, 2024
arbron
added a commit
that referenced
this issue
Mar 6, 2024
[#893] Add summoning to item activation workflow
arbron
added a commit
that referenced
this issue
Mar 8, 2024
Moves the summoning data into an `EmbeddedDataField` to allow for the summoning methods to be defined there rather than taking up a bunch of space in `ActionTemplate`. Introduces `SummonsData#summon` method which takes the ID of a summoning profile and proceeds through the process of summoning the actor: 1) Fetches the actor to summon based on the profile. This will eventually need some extra work to handle summoning from compendiums. 2) Minimizes the actor sheet (if open) and determine placement on scene. Currently the placement is a placeholder method that just places the summons in a fixed position. 3) Iterates over all token placements, requesting updates that will be made to the actor and its contained items for each placement. - Match proficiency is applied using an active effect - AC bonus is applied to `ac.flat` value if calc is `flat`, otherwise it uses an active effect to apply to `ac.bonus` - HP bonus is applied to `hp.max` unless summoned creature is a PC without an overriden maximum HP, in which case it uses an effect - Match attacks calculates the to hit based on the ability specified on the summoning item. It fetches attack bonuses from the summoner, but it uses spell bonuses in place of weapon bonuses - Match save simply swaps to flat scaling mode with the DC from the item or the summoner's spell DC. 4) Synthesizes token data with the updates. 5) Once all tokens are ready, maximizes the sheet if it was previously minimized and creates token documents on the scene.
arbron
added a commit
that referenced
this issue
Mar 8, 2024
Moves the summoning data into an `EmbeddedDataField` to allow for the summoning methods to be defined there rather than taking up a bunch of space in `ActionTemplate`. Introduces `SummonsData#summon` method which takes the ID of a summoning profile and proceeds through the process of summoning the actor: 1) Fetches the actor to summon based on the profile. This will eventually need some extra work to handle summoning from compendiums. 2) Minimizes the actor sheet (if open) and determine placement on scene. Currently the placement is a placeholder method that just places the summons in a fixed position. 3) Iterates over all token placements, requesting updates that will be made to the actor and its contained items for each placement. - Match proficiency is applied using an active effect - AC bonus is applied to `ac.flat` value if calc is `flat`, otherwise it uses an active effect to apply to `ac.bonus` - HP bonus is applied to `hp.max` unless summoned creature is a PC without an overriden maximum HP, in which case it uses an effect - Match attacks calculates the to hit based on the ability specified on the summoning item. It fetches attack bonuses from the summoner, but it uses spell bonuses in place of weapon bonuses - Match save simply swaps to flat scaling mode with the DC from the item or the summoner's spell DC. 4) Synthesizes token data with the updates. 5) Once all tokens are ready, maximizes the sheet if it was previously minimized and creates token documents on the scene.
arbron
added a commit
that referenced
this issue
Mar 8, 2024
Moves the summoning data into an `EmbeddedDataField` to allow for the summoning methods to be defined there rather than taking up a bunch of space in `ActionTemplate`. Introduces `SummonsData#summon` method which takes the ID of a summoning profile and proceeds through the process of summoning the actor: 1) Fetches the actor to summon based on the profile. This will eventually need some extra work to handle summoning from compendiums. 2) Minimizes the actor sheet (if open) and determine placement on scene. Currently the placement is a placeholder method that just places the summons in a fixed position. 3) Iterates over all token placements, requesting updates that will be made to the actor and its contained items for each placement. - Match proficiency is applied using an active effect - AC bonus is applied to `ac.flat` value if calc is `flat`, otherwise it uses an active effect to apply to `ac.bonus` - HP bonus is applied to `hp.max` unless summoned creature is a PC without an overriden maximum HP, in which case it uses an effect - Match attacks calculates the to hit based on the ability specified on the summoning item. It fetches attack bonuses from the summoner, but it uses spell bonuses in place of weapon bonuses - Match save simply swaps to flat scaling mode with the DC from the item or the summoner's spell DC. 4) Synthesizes token data with the updates. 5) Once all tokens are ready, maximizes the sheet if it was previously minimized and creates token documents on the scene.
arbron
added a commit
that referenced
this issue
Mar 8, 2024
Adds a `SummonsData#canSummon` property that determines whether a scene is open and whether the user has permissions to summon. If not, then no summoning control is displayed in the `AbilityUseDialog` and the chat button is removed. If user is trying to summon and actor that they do not have ownership of the will be shown an error. Also introduces a check for file browser permission when creating token data if the token is set to use a wildcard image. If the user lacks permission here, then the token will fall back to using the portrait image and a warning will be displayed in the console. Adds a new `SummonsData#fetchActor` data which handles locating the actor to be summoned. If the actor is in the world, then it just returns that version. If the associated actor is in a compendium, it will first search through world actors to find one with a matching `sourceId` and the `dnd5e.summonedCopy` flag set, summoning from the pre-imported version if available. Only then will it fall back on importing the actor from the compendium so long as the user has permission to do so.
arbron
added a commit
that referenced
this issue
Mar 8, 2024
Moves the summoning data into an `EmbeddedDataField` to allow for the summoning methods to be defined there rather than taking up a bunch of space in `ActionTemplate`. Introduces `SummonsData#summon` method which takes the ID of a summoning profile and proceeds through the process of summoning the actor: 1) Fetches the actor to summon based on the profile. This will eventually need some extra work to handle summoning from compendiums. 2) Minimizes the actor sheet (if open) and determine placement on scene. Currently the placement is a placeholder method that just places the summons in a fixed position. 3) Iterates over all token placements, requesting updates that will be made to the actor and its contained items for each placement. - Match proficiency is applied using an active effect - AC bonus is applied to `ac.flat` value if calc is `flat`, otherwise it uses an active effect to apply to `ac.bonus` - HP bonus is applied to `hp.max` unless summoned creature is a PC without an overriden maximum HP, in which case it uses an effect - Match attacks calculates the to hit based on the ability specified on the summoning item. It fetches attack bonuses from the summoner, but it uses spell bonuses in place of weapon bonuses - Match save simply swaps to flat scaling mode with the DC from the item or the summoner's spell DC. 4) Synthesizes token data with the updates. 5) Once all tokens are ready, maximizes the sheet if it was previously minimized and creates token documents on the scene.
arbron
added a commit
that referenced
this issue
Mar 8, 2024
Adds a `SummonsData#canSummon` property that determines whether a scene is open and whether the user has permissions to summon. If not, then no summoning control is displayed in the `AbilityUseDialog` and the chat button is removed. If user is trying to summon and actor that they do not have ownership of the will be shown an error. Also introduces a check for file browser permission when creating token data if the token is set to use a wildcard image. If the user lacks permission here, then the token will fall back to using the portrait image and a warning will be displayed in the console. Adds a new `SummonsData#fetchActor` data which handles locating the actor to be summoned. If the actor is in the world, then it just returns that version. If the associated actor is in a compendium, it will first search through world actors to find one with a matching `sourceId` and the `dnd5e.summonedCopy` flag set, summoning from the pre-imported version if available. Only then will it fall back on importing the actor from the compendium so long as the user has permission to do so.
arbron
added a commit
that referenced
this issue
Mar 10, 2024
arbron
added a commit
that referenced
this issue
Mar 11, 2024
The `TokenPlacement` class right now is small and only delegates to the `TokenPlacementTemplate` which is responsible for rendering and returning placement information. With the V12 improvements to placeables hopefully we'll be able to shift more logic out of the `MeasuredTemplate` subclass and into the `TokenPlacement` class. The `TokenPlacementConfiguration` data structure currently just includes the prototype token information, but will eventually have quantity, origin, and range values to handle multiple summons and restricting range from the summoner. Works with tokens of any size or scale on the square grid. On hex grids, it handles 1x1 tokens pretty good with only a bit of offset on the final token placement. Stranger token sizes lead to some issues with positioning, but I'm not sure how important those are to fix before the other grid improvements in V12.
28 tasks
arbron
added a commit
that referenced
this issue
Mar 13, 2024
arbron
added a commit
that referenced
this issue
Mar 13, 2024
Adds a `SummonsData#canSummon` property that determines whether a scene is open and whether the user has permissions to summon. If not, then no summoning control is displayed in the `AbilityUseDialog` and the chat button is removed. If user is trying to summon and actor that they do not have ownership of the will be shown an error. Also introduces a check for file browser permission when creating token data if the token is set to use a wildcard image. If the user lacks permission here, then the token will fall back to using the portrait image and a warning will be displayed in the console. Adds a new `SummonsData#fetchActor` data which handles locating the actor to be summoned. If the actor is in the world, then it just returns that version. If the associated actor is in a compendium, it will first search through world actors to find one with a matching `sourceId` and the `dnd5e.summonedCopy` flag set, summoning from the pre-imported version if available. Only then will it fall back on importing the actor from the compendium so long as the user has permission to do so.
arbron
added a commit
that referenced
this issue
Mar 13, 2024
The `TokenPlacement` class right now is small and only delegates to the `TokenPlacementTemplate` which is responsible for rendering and returning placement information. With the V12 improvements to placeables hopefully we'll be able to shift more logic out of the `MeasuredTemplate` subclass and into the `TokenPlacement` class. The `TokenPlacementConfiguration` data structure currently just includes the prototype token information, but will eventually have quantity, origin, and range values to handle multiple summons and restricting range from the summoner. Works with tokens of any size or scale on the square grid. On hex grids, it handles 1x1 tokens pretty good with only a bit of offset on the final token placement. Stranger token sizes lead to some issues with positioning, but I'm not sure how important those are to fix before the other grid improvements in V12.
arbron
added a commit
that referenced
this issue
Mar 13, 2024
Adds three bonuses that add to attack damage, saving throw damage, and healing. Formula data in these is resolved at summoning time based on the summoner stats so something like `@item.level` can be used to add the spell's level of damage to an attack.
arbron
added a commit
that referenced
this issue
Mar 13, 2024
The `TokenPlacement` class right now is small and only delegates to the `TokenPlacementTemplate` which is responsible for rendering and returning placement information. With the V12 improvements to placeables hopefully we'll be able to shift more logic out of the `MeasuredTemplate` subclass and into the `TokenPlacement` class. The `TokenPlacementConfiguration` data structure currently just includes the prototype token information, but will eventually have quantity, origin, and range values to handle multiple summons and restricting range from the summoner. Works with tokens of any size or scale on the square grid. On hex grids, it handles 1x1 tokens pretty good with only a bit of offset on the final token placement. Stranger token sizes lead to some issues with positioning, but I'm not sure how important those are to fix before the other grid improvements in V12.
arbron
added a commit
that referenced
this issue
Mar 15, 2024
[#893] Add summoning actor updates & overall workflow
arbron
added a commit
that referenced
this issue
Mar 16, 2024
Adds a `SummonsData#canSummon` property that determines whether a scene is open and whether the user has permissions to summon. If not, then no summoning control is displayed in the `AbilityUseDialog` and the chat button is removed. If user is trying to summon and actor that they do not have ownership of the will be shown an error. Also introduces a check for file browser permission when creating token data if the token is set to use a wildcard image. If the user lacks permission here, then the token will fall back to using the portrait image and a warning will be displayed in the console. Adds a new `SummonsData#fetchActor` data which handles locating the actor to be summoned. If the actor is in the world, then it just returns that version. If the associated actor is in a compendium, it will first search through world actors to find one with a matching `sourceId` and the `dnd5e.summonedCopy` flag set, summoning from the pre-imported version if available. Only then will it fall back on importing the actor from the compendium so long as the user has permission to do so.
arbron
added a commit
that referenced
this issue
Mar 16, 2024
arbron
added a commit
that referenced
this issue
Mar 18, 2024
[#893] Add damage & healing bonuses to summoning configuration
arbron
added a commit
that referenced
this issue
Mar 18, 2024
arbron
added a commit
that referenced
this issue
Mar 18, 2024
[#893] Hide options in ability use dialog when summoning from chat
arbron
added a commit
that referenced
this issue
Mar 18, 2024
Adds a `SummonsData#canSummon` property that determines whether a scene is open and whether the user has permissions to summon. If not, then no summoning control is displayed in the `AbilityUseDialog` and the chat button is removed. If user is trying to summon and actor that they do not have ownership of the will be shown an error. Also introduces a check for file browser permission when creating token data if the token is set to use a wildcard image. If the user lacks permission here, then the token will fall back to using the portrait image and a warning will be displayed in the console. Adds a new `SummonsData#fetchActor` data which handles locating the actor to be summoned. If the actor is in the world, then it just returns that version. If the associated actor is in a compendium, it will first search through world actors to find one with a matching `sourceId` and the `dnd5e.summonedCopy` flag set, summoning from the pre-imported version if available. Only then will it fall back on importing the actor from the compendium so long as the user has permission to do so.
arbron
added a commit
that referenced
this issue
Mar 18, 2024
arbron
added a commit
that referenced
this issue
Mar 18, 2024
[#893] Improve permissions checks & allow compendium summoning
arbron
added a commit
that referenced
this issue
Mar 20, 2024
The `TokenPlacement` class right now is small and only delegates to the `TokenPlacementTemplate` which is responsible for rendering and returning placement information. With the V12 improvements to placeables hopefully we'll be able to shift more logic out of the `MeasuredTemplate` subclass and into the `TokenPlacement` class. The `TokenPlacementConfiguration` data structure currently just includes the prototype token information, but will eventually have quantity, origin, and range values to handle multiple summons and restricting range from the summoner. Works with tokens of any size or scale on the square grid. On hex grids, it handles 1x1 tokens pretty good with only a bit of offset on the final token placement. Stranger token sizes lead to some issues with positioning, but I'm not sure how important those are to fix before the other grid improvements in V12.
arbron
added a commit
that referenced
this issue
Mar 20, 2024
arbron
added a commit
that referenced
this issue
Mar 20, 2024
arbron
added a commit
that referenced
this issue
Mar 21, 2024
arbron
added a commit
that referenced
this issue
Mar 21, 2024
[#893] Add system for selecting summoning placement
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Originally in GitLab by @thingscouldgetdicey1
lots of classes involved in dnd 5e need to have the abilty to be able to reference a players abilities. such as an artificer who needs the cannon to have 5x the hp of the lvl in artificer. or the beast master who needs to alter the AC according to the proficiency bonus of the player character. and other npcs using the actors proficiency for attack bonuses as with the wildfire spirit for wildfire druids. echo knights echo calculates the AC based off the proficiency level of the echo knight. there are lots more examples i could find where this is applicable.
if these could be systemically added it would be less book keeping. as this could be added via a ddb importer to be automated if there was a mechnical systemic way of this to be referenced. maybe this could be a feature if npcs are made friendly.
if we could reference spell DC of the original actor that would be great too. please let me know if this would be possible.
The text was updated successfully, but these errors were encountered: