All user data for FoundryVTT. Includes worlds, systems, modules, and any asset in the "foundryuserdata" directory. Does NOT include the FoundryVTT installation itself.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

267 lines
12 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <fieldset class="basics">
  2. {{#unless item.isRitual}}
  3. <div class="form-group">
  4. <label>{{localize "PF2E.SpellTraditionsLabel"}}</label>
  5. <input class="tags paizo-style" name="system.traits.traditions" value="{{json data.traits.traditions}}" data-dtype="JSON" />
  6. </div>
  7. {{/unless}}
  8. <div class="form-group">
  9. <label>{{localize "PF2E.Item.Spell.Cast"}}</label>
  10. <input type="text" name="system.time.value" value="{{data.time.value}}" />
  11. </div>
  12. <div class="form-group">
  13. <label>{{localize "PF2E.Item.Spell.Cost"}}</label>
  14. <input type="text" name="system.cost.value" value="{{data.cost.value}}" />
  15. </div>
  16. <div class="form-group">
  17. <label>{{localize "PF2E.SpellRequirementsLabel"}}</label>
  18. <input type="text" name="system.requirements" value="{{data.requirements}}" />
  19. </div>
  20. {{#if item.isRitual}}
  21. <div class="form-group">
  22. <label>{{localize "PF2E.Item.Spell.Ritual.PrimaryCheck"}}</label>
  23. <input type="text" name="system.ritual.primary.check" value="{{data.ritual.primary.check}}" />
  24. </div>
  25. <div class="form-group">
  26. <label>{{localize "PF2E.Item.Spell.Ritual.SecondaryChecks"}}</label>
  27. <input type="text" name="system.ritual.secondary.checks" value="{{data.ritual.secondary.checks}}" />
  28. </div>
  29. <div class="form-group">
  30. <label>{{localize "PF2E.Item.Spell.Ritual.SecondaryCasters"}}</label>
  31. <input type="number" name="system.ritual.secondary.casters" required min="0" max="100" value="{{data.ritual.secondary.casters}}" />
  32. </div>
  33. {{/if}}
  34. <div class="form-group">
  35. <label>{{localize "PF2E.SpellRangeLabel"}}</label>
  36. <input type="text" name="system.range.value" value="{{data.range.value}}" />
  37. </div>
  38. <div class="form-group">
  39. <label>{{localize "PF2E.AreaLabel"}}</label>
  40. <div class="details-container-two-columns">
  41. <select name="system.area.value" data-dtype="Number">
  42. <option value="0"></option>
  43. {{#select data.area.value}}
  44. {{#each areaSizes as |label key|}}
  45. <option value="{{key}}">{{localize label}}</option>
  46. {{/each}}
  47. {{/select}}
  48. </select>
  49. <select name="system.area.type">
  50. <option value=""></option>
  51. {{#select data.area.type}}
  52. {{#each areaTypes as |label type|}}
  53. <option value="{{type}}">{{localize label}}</option>
  54. {{/each}}
  55. {{/select}}
  56. </select>
  57. </div>
  58. </div>
  59. <div class="form-group">
  60. <label>{{localize "PF2E.SpellTargetLabel"}}</label>
  61. <input type="text" name="system.target.value" value="{{data.target.value}}" />
  62. </div>
  63. <div class="form-group">
  64. <label>{{localize "PF2E.SpellDurationLabel"}}</label>
  65. <input type="text" name="system.duration.value" value="{{data.duration.value}}" />
  66. </div>
  67. </fieldset>
  68. {{#unless item.isRitual}}
  69. <fieldset class="defense">
  70. <legend>{{localize "PF2E.Item.Spell.Defense.Label"}}</legend>
  71. {{#if passiveDefense}}
  72. <div class="form-group passive">
  73. <label>{{localize "PF2E.ActionTypePassive"}}</label>
  74. <div class="value">{{localize passiveDefense}}</div>
  75. </div>
  76. {{/if}}
  77. <div class="form-group">
  78. <label>{{localize "PF2E.SavingThrow"}}</label>
  79. <div class="form-fields">
  80. <select name="system.defense.save.statistic">
  81. <option value=""></option>
  82. {{#select data.defense.save.statistic}}
  83. <option value="fortitude">{{localize "PF2E.SavesFortitude"}}</option>
  84. <option value="reflex">{{localize "PF2E.SavesReflex"}}</option>
  85. <option value="will">{{localize "PF2E.SavesWill"}}</option>
  86. {{/select}}
  87. </select>
  88. <div class="save-basic">
  89. <label
  90. for="{{fieldIdPrefix}}save-basic"
  91. {{#unless data.defense.save.statistic}}class="disabled"{{/unless}}
  92. >{{localize "PF2E.Item.Spell.Defense.BasicSave"}}</label>
  93. <input
  94. type="checkbox"
  95. name="system.defense.save.basic"
  96. id="{{fieldIdPrefix}}save-basic"
  97. {{checked data.defense.save.basic}}
  98. {{disabled (not data.defense.save.statistic)}}
  99. />
  100. </div>
  101. </div>
  102. </div>
  103. </fieldset>
  104. <fieldset>
  105. <legend>
  106. {{localize "PF2E.DamageLabel"}}
  107. {{#if editable}}<a data-action="add-damage-partial"><i class="fa-solid fa-fw fa-plus" ></i></a>{{/if}}
  108. </legend>
  109. <div class="damage-formulas">
  110. {{#each data.damage as |partial id|}}
  111. <div class="form-group">
  112. <div class="form-fields">
  113. <input type="text" name="system.damage.{{id}}.formula" value="{{partial.formula}}" placeholder="{{localize "PF2E.Formula"}}" />
  114. <label class="apply-mod">
  115. {{localize "PF2E.SpellAbilityModLabel"}}
  116. <input type="checkbox" name="system.damage.{{id}}.applyMod" {{checked partial.applyMod}} />
  117. </label>
  118. <select name="system.damage.{{id}}.category">
  119. {{#select partial.category}}
  120. <option value=""></option>
  121. {{#each @root.damageSubtypes as |name type|}}
  122. <option value="{{type}}">{{localize name}}</option>
  123. {{/each}}
  124. {{/select}}
  125. </select>
  126. <select name="system.damage.{{id}}.type">
  127. {{#select partial.type}}
  128. {{#each @root.damageTypes as |name type|}}
  129. <option value="{{type}}">{{localize name}}</option>
  130. {{/each}}
  131. {{/select}}
  132. </select>
  133. <select class="kinds" name="system.damage.{{id}}.kinds" data-dtype="JSON">
  134. {{#each (lookup @root.damageKinds id) as |kind|}}
  135. <option
  136. value={{json kind.value}}
  137. {{disabled kind.disabled}}
  138. {{#if kind.selected}}selected{{/if}}>{{localize kind.label}}</option>
  139. {{/each}}
  140. </select>
  141. <div class="item-controls">
  142. <a
  143. class="tag-selector"
  144. data-tag-selector="basic"
  145. data-title="PF2E.Item.MaterialEffects.Label"
  146. data-config-types="materialDamageEffects"
  147. data-property="system.damage.{{id}}.materials"
  148. ><i class="fa-solid fa-fw fa-edit"></i></a>
  149. <a data-action="delete-damage-partial" data-id="{{id}}"><i class="fa-solid fa-fw fa-trash"></i></a>
  150. </div>
  151. </div>
  152. {{#if partial.materials}}
  153. <div class="materials">
  154. {{#each partial.materials as |material|}}
  155. <div class="tag-legacy">{{localize (lookup @root.materials material)}}</div>
  156. {{/each}}
  157. </div>
  158. {{/if}}
  159. </div>
  160. {{/each}}
  161. </div>
  162. </fieldset>
  163. {{/unless}}
  164. <fieldset class="heightening">
  165. <legend>Heightening</legend>
  166. {{#if canHeighten}}
  167. <div class="form-group add">
  168. {{#if (not data.heightening)}}
  169. <button type="button" data-action="add-interval-heightening">
  170. <i class="fa-solid fa-fw fa-plus"></i> {{localize "PF2E.SpellScalingInterval.Add"}}
  171. </button>
  172. {{/if}}
  173. {{#if (or (eq data.heightening.type "fixed") (not data.heightening))}}
  174. <button type="button"{{#if data.heightening}} class="only-option"{{/if}} data-action="add-fixed-heightening" data-overlay-type="heightening">
  175. <i class="fa-solid fa-fw fa-plus"></i> {{localize "PF2E.SpellScalingOverlay.Add"}}
  176. </button>
  177. {{/if}}
  178. </div>
  179. {{/if}}
  180. {{#if (eq data.heightening.type "interval")}}
  181. <div class="form-group">
  182. <h3>{{localize "PF2E.SpellScalingInterval.Header"}}</h3>
  183. {{#if editable}}
  184. <div class="item-controls">
  185. <a data-action="delete-heightening"><i class="fa-solid fa-fw fa-trash" data-idx="{{idx}}"></i></a>
  186. </div>
  187. {{/if}}
  188. </div>
  189. <div class="form-group">
  190. <label>{{localize "PF2E.SpellScalingInterval.Label"}}</label>
  191. <select name="system.heightening.interval" data-dtype="Number">
  192. {{#select data.heightening.interval}}
  193. {{#each @root.heightenIntervals as |key|}}
  194. <option value="{{key}}">{{localize "PF2E.SpellScalingInterval.Selection" interval=key}}</option>
  195. {{/each}}
  196. {{/select}}
  197. </select>
  198. </div>
  199. {{#each data.damage as |partial idx|}}
  200. <div class="form-group">
  201. <label>{{localize (lookup @root.damageTypes partial.type)}}</label>
  202. <input type="text" name="system.heightening.damage.{{idx}}" value="{{lookup ../data.heightening.damage idx}}" />
  203. </div>
  204. {{/each}}
  205. {{/if}}
  206. {{!-- Spell heightening for fixed levels --}}
  207. {{#unless (eq data.heightening.type "interval")}}
  208. {{#each heightenOverlays}}
  209. {{> systems/pf2e/templates/items/spell-overlay.hbs this=this}}
  210. {{/each}}
  211. {{/unless}}
  212. </fieldset>
  213. {{#if (nor item.isRitual isVariant)}}
  214. <fieldset class="variants" data-can-drop="true">
  215. <legend class="form-group">
  216. {{localize "PF2E.Item.Spell.Variants.LabelPlural"}}
  217. <a data-action="variant-create"><i class="fa-solid fa-fw fa-plus"></i></a>
  218. </legend>
  219. {{#each variants as |variant|}}
  220. <div class="variant" data-variant-id="{{variant.variantId}}">
  221. <label>{{variant.name}}</label>
  222. <span class="action-glyph">{{variant.actions}}</span>
  223. {{#if @root.editable}}
  224. <div class="item-controls">
  225. <a data-action="edit-variant" data-id="{{variant.variantId}}"><i class="fa-solid fa-fw fa-edit"></i></a>
  226. <a data-action="delete-variant" data-id="{{variant.variantId}}"><i class="fa-solid fa-fw fa-trash"></i></a>
  227. </div>
  228. {{/if}}
  229. </div>
  230. {{/each}}
  231. </fieldset>
  232. <div class="form-group">
  233. <label class="large" for="{{fieldIdPrefix}}counteraction">{{localize "PF2E.Item.Spell.Counteract.Label"}}</label>
  234. <input type="checkbox" name="system.counteraction" id="{{fieldIdPrefix}}counteraction" {{checked data.counteraction}} />
  235. </div>
  236. {{/if}}
  237. {{#unless isVariant}}
  238. <div class="form-group">
  239. <label class="large" for="{{fieldIdPrefix}}toggle-ritual-data">{{localize "PF2E.Item.Spell.Ritual.Label"}}</label>
  240. <input type="checkbox" id="{{fieldIdPrefix}}toggle-ritual-data" data-action="toggle-ritual-data" {{checked item.isRitual}} />
  241. </div>
  242. {{/unless}}