ENH: Creation summary
							parent
							
								
									2f3c91d72c
								
							
						
					
					
						commit
						642c368f38
					
				|  | @ -252,7 +252,6 @@ | |||
|   "OSE.messages.InflictsDamage": "Inflicts damage!", | ||||
|   "OSE.messages.applyDamage": "Apply Damage", | ||||
|   "OSE.messages.applyHealing": "Apply Healing", | ||||
|   "OSE.messages.creationFinished": "Character {name} creation finished", | ||||
| 
 | ||||
|   "OSE.colors.green": "Green", | ||||
|   "OSE.colors.red": "Red", | ||||
|  |  | |||
|  | @ -41,6 +41,11 @@ export class OseCharacterCreator extends FormApplication { | |||
|       con: 0, | ||||
|       gold: 0 | ||||
|     } | ||||
|     data.stats = { | ||||
|       sum: 0, | ||||
|       avg: 0, | ||||
|       std: 0 | ||||
|     } | ||||
|     return data; | ||||
|   } | ||||
| 
 | ||||
|  | @ -64,9 +69,16 @@ export class OseCharacterCreator extends FormApplication { | |||
|     stats.find('.sum').text(sum); | ||||
|     stats.find('.avg').text(Math.round(10 * sum / n) / 10); | ||||
|     stats.find('.std').text(Math.round(100 * std) / 100); | ||||
| 
 | ||||
|     if (n >= 6) { | ||||
|       $(ev.currentTarget).closest('form').find('button[type="submit"]').removeAttr('disabled'); | ||||
|     } | ||||
| 
 | ||||
|     this.object.data.stats = { | ||||
|       sum: sum, | ||||
|       avg: Math.round(10 * sum / n) / 10, | ||||
|       std: Math.round(100 * std) / 100 | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   rollScore(score, options = {}) { | ||||
|  | @ -97,9 +109,25 @@ export class OseCharacterCreator extends FormApplication { | |||
| 
 | ||||
|   async close() { | ||||
|     super.close(); | ||||
|     // Gather scores
 | ||||
|     let scores = {}; | ||||
|     $(this.form.children).find(".score-roll").each((_, d) => { | ||||
|       let gr = $(d).closest('.form-group'); | ||||
|       let val = gr.find(".score-value").val(); | ||||
|       scores[gr.data("score")] = val; | ||||
|     }) | ||||
|     const gold = $(this.form.children).find('.gold-value').val(); | ||||
|     const speaker = ChatMessage.getSpeaker({ actor: this }); | ||||
|     const templateData = { | ||||
|       config: CONFIG.OSE, | ||||
|       scores: scores, | ||||
|       title: game.i18n.localize("OSE.dialog.generator"), | ||||
|       stats: this.object.data.stats, | ||||
|       gold: gold | ||||
|     } | ||||
|     const content = await renderTemplate("/systems/ose/templates/chat/roll-creation.html", templateData) | ||||
|     ChatMessage.create({ | ||||
|       content: game.i18n.format("OSE.messages.creationFinished", {name: this.object.name}), | ||||
|       content: content, | ||||
|       speaker, | ||||
|     }); | ||||
|   } | ||||
|  |  | |||
|  | @ -0,0 +1,29 @@ | |||
| <section class="ose chat-message"> | ||||
|     <div class="ose chat-block"> | ||||
|         <div class="flexrow chat-header"> | ||||
|             <div class="chat-title"><h2>{{title}}</h2></div> | ||||
|             <div class="chat-img" style="background-image:url('{{data.img}}')"></div> | ||||
|         </div> | ||||
|         <div class="flexrow"> | ||||
|             <ol class="flex2"> | ||||
|                 {{#each scores as |score id|}} | ||||
|                 <li class="flexrow"> | ||||
|                     <div style="text-align:right;"> | ||||
|                         {{lookup ../config.scores id}} | ||||
|                     </div> | ||||
|                     <div style="text-align:center;"> | ||||
|                         {{score}} | ||||
|                     </div> | ||||
|                 </li> | ||||
|                 {{/each}} | ||||
|             </ol> | ||||
|             <div style="margin: 0.5em 0"> | ||||
|                 <div>Sum: {{stats.sum}}</div> | ||||
|                 <div>Avg: {{stats.avg}}</div> | ||||
|                 <div>σ: {{stats.std}}</div> | ||||
|                 <hr> | ||||
|                 <div>Gold: {{gold}}</div> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| </section> | ||||
		Loading…
	
		Reference in New Issue