Add int fields, implement checkboxes for whole sheet
This commit is contained in:
		
							parent
							
								
									f5b414b6b0
								
							
						
					
					
						commit
						e56c65629f
					
				| @ -2,6 +2,12 @@ import { HenchDataModel } from "./module/data-models.mjs"; | ||||
| 
 | ||||
| import { HenchDebugSheet } from "./module/sheets/hench-debug.mjs"; | ||||
| 
 | ||||
| Handlebars.registerHelper('int2checkbox', (size, threshold, options) => { | ||||
|     return new Array(size).fill(0).map( | ||||
|         (e, i) => options.fn({index: i + 1, marked: i < threshold}) | ||||
|     ); | ||||
| }); | ||||
| 
 | ||||
| Hooks.once("init", () => { | ||||
|     CONFIG.Actor.dataModels = { | ||||
|         hench: HenchDataModel, | ||||
|  | ||||
| @ -75,6 +75,7 @@ export function updateField(actor, dataPathString, value) { | ||||
| 
 | ||||
|     console.log(`Converted ${dataPathString} to:`); | ||||
|     console.log(dataPath); | ||||
|     console.log(`Writing: ${value}`); | ||||
| 
 | ||||
|     if(dataPath.isArray) { | ||||
|         const initial = getValueAtPath(actor, dataPath.path); | ||||
|  | ||||
| @ -13,6 +13,10 @@ export class HenchDebugSheet extends ActorSheet { | ||||
| 
 | ||||
|         context.playbookKeys = [...playbookKeys, 'test'].map((k) => ({ key: k, selected: k === this.actor.system.playbook})); | ||||
| 
 | ||||
|         // TODO define system constants for these
 | ||||
|         context.maxStress = 12; | ||||
|         context.maxExp = 5; | ||||
| 
 | ||||
|         return context; | ||||
|     } | ||||
| 
 | ||||
| @ -33,6 +37,18 @@ export class HenchDebugSheet extends ActorSheet { | ||||
| 
 | ||||
|             updateField(this.actor, path, value); | ||||
|         }); | ||||
| 
 | ||||
|         // int checkboxes
 | ||||
|         html.find('.hench-checkbox-int-field').on('change', (event) => { | ||||
|             const element = event.currentTarget; | ||||
|             const path = element.dataset.fieldPath; | ||||
|             const checked = element.checked; | ||||
|             const valueData = parseInt(element.dataset.value); | ||||
| 
 | ||||
|             const value = checked ? valueData : valueData - 1; | ||||
| 
 | ||||
|             updateField(this.actor, path, value); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     _changePlaybook(newPlaybookKeyEvent) { | ||||
|  | ||||
| @ -41,9 +41,10 @@ | ||||
| 
 | ||||
|         <h3>Gear</h3> | ||||
|         <ul> | ||||
|             {{#each actor.system.gear}} | ||||
|             {{#each actor.system.fixedGear}} | ||||
|                 <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.fixedGear[{{@index}}].marked" {{#if this.marked}}checked{{/if}}/> {{this.description}}</li> | ||||
|             {{/each}} | ||||
|             <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.customGear.marked" {{#if system.customGear.marked}}checked{{/if}}/> {{system.customGear.description}}</li> | ||||
|         </ul> | ||||
| 
 | ||||
|         <h3> Harm: </h3> | ||||
| @ -51,45 +52,55 @@ | ||||
|             <h4>Level 1:</h4> | ||||
|             <ul> | ||||
|                 {{#each actor.system.harm.levelOne}} | ||||
|                     <li><b>{{#if this.marked}} X {{else}} O {{/if}}</b> {{this.description}}</li> | ||||
|                     <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.harm.levelOne[{{@index}}].marked" {{#if this.marked}}checked{{/if}} /> {{this.description}}</li> | ||||
|                 {{/each}} | ||||
|             </ul> | ||||
|             <h4>Level 2:</h4> | ||||
|             <ul> | ||||
|                 {{#each actor.system.harm.levelTwo}} | ||||
|                     <li><b>{{#if this.marked}} X {{else}} O {{/if}}</b> {{this.description}}</li> | ||||
|                     <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.harm.levelTwo[{{@index}}].marked" {{#if this.marked}}checked{{/if}} /> {{this.description}}</li> | ||||
|                 {{/each}} | ||||
|             </ul> | ||||
|             <h4>Level 3:</h4> | ||||
|             <ul> | ||||
|                 {{#each actor.system.harm.levelThree}} | ||||
|                     <li><b>{{#if this.marked}} X {{else}} O {{/if}}</b> {{this.description}}</li> | ||||
|                     <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.harm.levelThree[{{@index}}].marked" {{#if this.marked}}checked{{/if}} /> {{this.description}}</li> | ||||
|                 {{/each}} | ||||
|             </ul> | ||||
|             <h4>Level 3:</h4> | ||||
|             <ul> | ||||
|                 {{#each actor.system.harm.levelFour}} | ||||
|                     <li><b>{{#if this.marked}} X {{else}} O {{/if}}</b> {{this.description}}</li> | ||||
|                     <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.harm.levelFour[{{@index}}].marked" {{#if this.marked}}checked{{/if}} /> {{this.description}}</li> | ||||
|                 {{/each}} | ||||
|             </ul> | ||||
|         </div> | ||||
|         <p>Stress: {{ actor.system.stress }}</p> | ||||
|         <ul> | ||||
|             {{#int2checkbox maxStress actor.system.stress}} | ||||
|                 <li style="display:inline"><input type="checkbox" class="hench-checkbox-int-field" data-field-path="system.stress" data-value="{{index}}" {{#if marked}}checked{{/if}} /> </li> | ||||
|             {{/int2checkbox}} | ||||
|         </ul> | ||||
|         <h3>Experience Triggers</h3> | ||||
|         <ul> | ||||
|             {{#each actor.system.experienceTriggers}} | ||||
|                 <li><b>{{#if this.marked}} X {{else}} O {{/if}}</b> {{this.description}}</li> | ||||
|                 <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.experienceTriggers[{{@index}}].marked" {{#if this.marked}}checked{{/if}} /> {{this.description}}</li> | ||||
|             {{/each}} | ||||
|         </ul> | ||||
|         <p>Experience: {{ actor.system.experience }}</p> | ||||
|         <ul> | ||||
|             {{#int2checkbox maxExp actor.system.experience}} | ||||
|                 <li style="display:inline"><input type="checkbox" class="hench-checkbox-int-field" data-field-path="system.experience" data-value="{{index}}" {{#if marked}}checked{{/if}} /> </li> | ||||
|             {{/int2checkbox}} | ||||
|         </ul> | ||||
| 
 | ||||
|         <h3>Advancements</h3> | ||||
|         <ul> | ||||
|             {{#each actor.system.baseAdvancements}} | ||||
|                 <li><b>{{#if this.marked}} X {{else}} O {{/if}}</b> {{this.description}}</li> | ||||
|                 <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.baseAdvancements[{{@index}}].marked" {{#if this.marked}}checked{{/if}} /> {{this.description}}</li> | ||||
|             {{/each}} | ||||
|             <hr /> | ||||
|             {{#each actor.system.exAdvancements}} | ||||
|                 <li><b>{{#if this.marked}} X {{else}} O {{/if}}</b> {{this.description}}</li> | ||||
|                 <li><input type="checkbox" class="hench-checkbox-toggle-field" data-field-path="system.exAdvancements[{{@index}}].marked" {{#if this.marked}}checked{{/if}} /> {{this.description}}</li> | ||||
|             {{/each}} | ||||
|         </ul> | ||||
|     </div> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 walcutt
						walcutt