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
15 KiB

1 year ago
  1. <form class="{{cssClass}}" autocomplete="off" spellcheck="false">
  2. <!-- HEADER -->
  3. <div class="familiar-sheet-header">
  4. <div class="image-container">
  5. <img class="actor-image" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" />
  6. <a class="hover-icon" data-action="show-image"><i class="fas fa-image fa-fw"></i></a>
  7. </div>
  8. <div class="header-content">
  9. <div class="charname">
  10. <input class=" charname-value" name="name" type="text" value="{{actor.name}}"
  11. placeholder="{{localize "PF2E.NPC.Familiar"}}" spellcheck="false" />
  12. <label class="familiar-title">{{localize "ACTOR.TypeFamiliar"}}</label>
  13. {{#if data.master.id}}
  14. <label class="familiar-title"> {{data.details.level.value}}</label>
  15. {{/if}}
  16. </div>
  17. <div class="sub-header">
  18. <div class="traits">
  19. {{#each traits as |trait|}}
  20. <span data-trait="{{trait.value}}" title="{{trait.description}}">{{localize trait.label}}</span>
  21. {{/each}}
  22. <span title="{{localize "PF2E.Size"}}">{{localize size}}</span>
  23. </div>
  24. <div>
  25. <label for="{{actor._id}}-master"><strong>{{localize "PF2E.Familiar.Master"}}</strong></label>
  26. <select id="{{actor._id}}-master" name="system.master.id">
  27. {{#select master.id}}
  28. <option value="">{{localize "PF2E.Familiar.SelectMaster"}}</option>
  29. {{#each masters as |eligible idx|}}
  30. <option value="{{eligible.id}}">{{eligible.name}}</option>
  31. {{/each}}
  32. {{/select}}
  33. </select>
  34. </div>
  35. </div>
  36. <section class="details-section">
  37. <div class="hp-section">
  38. <div class="label">
  39. <i class="fas fa-heart"></i>
  40. <h4>{{localize "PF2E.HitPointsHeader"}}</h4>
  41. </div>
  42. <div class="value">
  43. <input class="current-hp" id="{{actor._id}}-hit-points" type="number"
  44. name="system.attributes.hp.value" value="{{data.attributes.hp.value}}" class="current-hp"
  45. data-dtype="Number" />
  46. <div>/ </div>
  47. <div class="total-hp" title="{{data.attributes.hp.breakdown}}">{{data.attributes.hp.max}}</div>
  48. <div class="temp-hp">
  49. (+<input name="system.attributes.hp.temp" type="number" value="{{data.attributes.hp.temp}}" placeholder="0" />)
  50. </div>
  51. </div>
  52. <div class="label">
  53. <i class="fas fa-heart-broken"></i>
  54. <h4>{{localize "PF2E.condition.dying.name"}}</h4>
  55. </div>
  56. <div class="value dying-section">
  57. {{#if data.attributes.dying.value}}
  58. <a class="rollable roll-icon" data-action="recovery-check" title="{{localize "PF2E.Check.Specific.Recovery"}}">
  59. <i class="fas fa-dice-d20"></i>
  60. </a>
  61. {{/if}}
  62. <a class="dots dying" title="{{localize "PF2E.condition.dying.summary"}}">
  63. <span class="pips">{{> "systems/pf2e/templates/actors/partials/dying-pips.hbs"}}</span>
  64. </a>
  65. </div>
  66. </div>
  67. <div class="defenses-section">
  68. {{#if data.master.id}}
  69. <div class="defenses-list">
  70. <div class="ac" title="{{data.attributes.ac.breakdown}}">
  71. <div class="name">{{localize "PF2E.ArmorClassShortLabel"}}</div>
  72. <div class="value"><i class="fas fa-shield-alt"></i>{{numberFormat data.attributes.ac.value decimals=0 sign=false}}</div>
  73. </div>
  74. {{#each data.saves}}
  75. <a class="saves save-name rollable" title="{{this.breakdown}}" data-save="{{@key}}">
  76. <div class="name">{{localize this.label}}</div>
  77. <div class="value">{{numberFormat this.value decimals=0 sign=true}}</div>
  78. </a>
  79. {{/each}}
  80. </div>
  81. {{/if}}
  82. </div>
  83. </section>
  84. </div>
  85. </div>
  86. <hr>
  87. <div class="main-section">
  88. <div class="skill-sidebar">
  89. <!-- SKILLS -->
  90. <div class="section-container">
  91. <div class="section-header">
  92. <h4>{{localize "PF2E.Familiar.Skills"}}</h4>
  93. </div>
  94. <div class="section-body">
  95. <div class="skills-content">
  96. {{#if data.master.id}}
  97. <div class="skills-list">
  98. <div class="skill-name rollable perception" title="{{data.attributes.perception.breakdown}}" data-action="perception-check">
  99. <div class="score">{{numberFormat data.attributes.perception.value decimals=0 sign=true}}</div>
  100. <div class="name">{{localize "PF2E.Familiar.Perception"}}</div>
  101. </div>
  102. </div>
  103. <div class="skills-list">
  104. {{#each data.skills}}
  105. <div class="skill-name rollable" title="{{this.breakdown}}" data-skill="{{@key}}">
  106. <div class="score">{{numberFormat this.value decimals=0 sign=true}}</div>
  107. <div class="name">{{localize this.label}}</div>
  108. </div>
  109. {{/each}}
  110. </div>
  111. <div class="rollable skills-attack" title="{{data.attack.breakdown}}" data-attack-roll="">
  112. <strong>{{localize "PF2E.Familiar.AttackRoll"}}</strong>
  113. <span>{{numberFormat data.attack.value decimals=0 sign=true}}</span>
  114. </div>
  115. {{/if}}
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div class="main-container">
  121. <!-- FAMILIAR -->
  122. <div class="familiar-section section-container">
  123. <div class="section-header">
  124. <h4>{{localize "PF2E.Familiar.Familiar"}}</h4>
  125. </div>
  126. <div class="section-body">
  127. <div class="familiar-content">
  128. <!-- Species Name -->
  129. <div class="familiar-species">
  130. <div class="detail">
  131. <div class="detail-label" for="{{actor._id}}-species">{{localize "PF2E.Familiar.CreatureType"}}</div>
  132. <input id="{{actor._id}}-species" type="text" name="system.details.creature.value"
  133. value="{{data.details.creature.value}}" placeholder="Rat, imp, leshy, etc." />
  134. </div>
  135. </div>
  136. <!-- Master Ability Modifier -->
  137. {{#if data.master.id}}
  138. <div class="familiar-modifier">
  139. <div class="detail">
  140. <div class="detail-label">{{localize "PF2E.Familiar.MasterSpellcastingAbility"}}</div>
  141. <select id="{{actor._id}}-spellcasting-ability" name="system.master.ability">
  142. {{#select data.master.ability}}
  143. {{#each abilities as |ability abbr|}}
  144. <option value="{{abbr}}">{{localize ability}}</option>
  145. {{/each}}
  146. {{/select}}
  147. </select>
  148. </div>
  149. </div>
  150. {{/if}}
  151. </div>
  152. {{#if data.master.id}}
  153. <div class="familiar-content">
  154. <div class="detail">
  155. <div class="detail-label">{{localize "PF2E.Familiar.TotalNumberFamiliarAbilities"}}</div>
  156. <div>
  157. <h4>{{numberFormat familiarAbilities.value decimals=0}}</h4>
  158. </div>
  159. </div>
  160. </div>
  161. <div class="familiar-content">
  162. <!-- Speed -->
  163. <div class="familiar-senses">
  164. <div class="detail">
  165. <div class="detail-label">{{localize "PF2E.Speed"}}</div>
  166. <ol class="tags speeds">
  167. {{#with data.attributes.speed as |landSpeed|}}
  168. <li class="tag tag_alt" title="{{landSpeed.breakdown}}">{{localize landSpeed.label}}
  169. ({{landSpeed.total}})</li>
  170. {{/with}}
  171. {{#each data.attributes.speed.otherSpeeds as |speed k|}}
  172. <li class="tag tag_alt {{k}}" title="{{speed.breakdown}}">
  173. {{localize speed.label}} ({{speed.total}})
  174. </li>
  175. {{/each}}
  176. </ol>
  177. </div>
  178. </div>
  179. <!-- Senses -->
  180. <div class="familiar-senses">
  181. <div class="detail">
  182. <div class="detail-label">{{localize "PF2E.Senses"}}</div>
  183. <ol class="tags senses">
  184. {{#each data.traits.senses as |sense k|}}
  185. <li class="tag tag_alt {{k}}">
  186. {{localize sense.label}}
  187. </li>
  188. {{/each}}
  189. </ol>
  190. </div>
  191. </div>
  192. </div>
  193. {{/if}}
  194. </div>
  195. </div>
  196. <!-- ABILITIES -->
  197. <div class="section-container">
  198. <div class="section-header">
  199. <h4>{{localize "PF2E.Familiar.AbilitiesLabel"}}</h4>
  200. <div class="controls">
  201. <a class="action-browse" data-action-category="familiar"><i class="fa-solid fa-search"></i> {{localize "PF2E.BrowseLabel"}}</a>
  202. </div>
  203. </div>
  204. <div class="section-body">
  205. <ol class="actions-list item-list">
  206. {{#each familiarAbilities.items as |action|}}
  207. <li class="item action flexrow" data-item-id="{{action.id}}">
  208. <div class="action-header">
  209. <div class="action-name rollable">
  210. <h4><a>{{action.name}} {{{actionGlyph action.actionCost}}}</a></h4>
  211. {{#if action.system.frequency}}
  212. <section class="action-tracking">
  213. <input type="number" value="{{action.system.frequency.value}}" data-item-id="{{action._id}}" data-item-property="system.frequency.value"/>
  214. <span>
  215. /
  216. {{action.system.frequency.max}}
  217. {{localize "PF2E.Frequency.per"}}
  218. {{localize (lookup @root.frequencies action.system.frequency.per)}}
  219. </span>
  220. </section>
  221. {{/if}}
  222. </div>
  223. <div class="item-controls">
  224. <a class="item-chat chat" title="{{localize "PF2E.NPC.SendToChat"}}"><i class="fa-solid fa-fw fa-comment-alt"></i></a>
  225. {{#if @root.options.editable}}
  226. <a class="item-control item-edit" title="{{localize "PF2E.EditItemTitle"}}"><i class="fa-solid fa-fw fa-edit"></i></a>
  227. <a class="item-control item-delete" title="{{localize "PF2E.DeleteItemTitle"}}"><i class="fa-solid fa-fw fa-trash"></i></a>
  228. {{/if}}
  229. </div>
  230. </div>
  231. </li>
  232. {{/each}}
  233. </ol>
  234. </div>
  235. </div>
  236. <!-- CONDITIONS -->
  237. {{#if document.itemTypes.condition}}
  238. <div class="section-container">
  239. <div class="section-header">
  240. <h4>{{localize "PF2E.ConditionsLabel"}}</h4>
  241. </div>
  242. <div class="section-body">
  243. <ol class="effects-list item-list">
  244. {{> "systems/pf2e/templates/actors/partials/conditions.hbs"}}
  245. </ol>
  246. </div>
  247. </div>
  248. {{/if}}
  249. <!-- EFFECTS -->
  250. {{#if document.itemTypes.effect}}
  251. <div class="section-container">
  252. <div class="section-header">
  253. <h4>{{localize "PF2E.EffectsLabel"}}</h4>
  254. </div>
  255. <div class="section-body">
  256. <ol class="effects-list item-list">
  257. {{> "systems/pf2e/templates/actors/partials/conditions.hbs" conditions=document.itemTypes.effect}}
  258. </ol>
  259. </div>
  260. </div>
  261. {{/if}}
  262. </div>
  263. </div>
  264. </form>