parent
							
								
									71f6c9fda3
								
							
						
					
					
						commit
						a14bd9fd42
					
				|  | @ -85,21 +85,6 @@ export class OseActorSheetCharacter extends OseActorSheet { | ||||||
|       this._calculateMovement(data, totalWeight); |       this._calculateMovement(data, totalWeight); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Compute AC
 |  | ||||||
|     let baseAc = 9; |  | ||||||
|     let baseAac = 10; |  | ||||||
|     let shield = 0; |  | ||||||
|     data.owned.armors.forEach((a) => { |  | ||||||
|       if (a.data.equipped && a.data.type != "shield") { |  | ||||||
|         baseAc = a.data.ac.value; |  | ||||||
|         baseAac = a.data.aac.value; |  | ||||||
|       } else if (a.data.equipped && a.data.type == "shield") { |  | ||||||
|         shield = a.data.ac.value; |  | ||||||
|       } |  | ||||||
|     }); |  | ||||||
|     data.data.aac.value = baseAac + data.data.scores.dex.mod + shield; |  | ||||||
|     data.data.ac.value = baseAc - data.data.scores.dex.mod - shield; |  | ||||||
|     data.data.shield = shield; |  | ||||||
|     return data; |     return data; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,6 +12,7 @@ export class OseActor extends Actor { | ||||||
|     // Compute modifiers from actor scores
 |     // Compute modifiers from actor scores
 | ||||||
|     this.computeModifiers(); |     this.computeModifiers(); | ||||||
|     this._isSlow(); |     this._isSlow(); | ||||||
|  |     this.computeAC(); | ||||||
| 
 | 
 | ||||||
|     // Determine Initiative
 |     // Determine Initiative
 | ||||||
|     if (game.settings.get("ose", "individualInit")) { |     if (game.settings.get("ose", "individualInit")) { | ||||||
|  | @ -23,6 +24,7 @@ export class OseActor extends Actor { | ||||||
|       data.initiative.value = 0; |       data.initiative.value = 0; | ||||||
|     } |     } | ||||||
|     data.movement.encounter = data.movement.base / 3; |     data.movement.encounter = data.movement.base / 3; | ||||||
|  | 
 | ||||||
|   } |   } | ||||||
|   /* -------------------------------------------- */ |   /* -------------------------------------------- */ | ||||||
|   /*  Socket Listeners and Handlers |   /*  Socket Listeners and Handlers | ||||||
|  | @ -448,6 +450,31 @@ export class OseActor extends Actor { | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   computeAC() { | ||||||
|  |     if (this.data.type != "character") { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  |     // Compute AC
 | ||||||
|  |     let baseAc = 9; | ||||||
|  |     let baseAac = 10; | ||||||
|  |     let shield = 0; | ||||||
|  |     const data = this.data.data; | ||||||
|  |     data.aac.naked = baseAc + data.scores.dex.mod; | ||||||
|  |     data.ac.naked = baseAc - data.scores.dex.mod; | ||||||
|  |     const armors = this.data.items.filter(i => i.type == 'armor'); | ||||||
|  |     armors.forEach((a) => { | ||||||
|  |       if (a.data.equipped && a.data.type != "shield") { | ||||||
|  |         baseAc = a.data.ac.value; | ||||||
|  |         baseAac = a.data.aac.value; | ||||||
|  |       } else if (a.data.equipped && a.data.type == "shield") { | ||||||
|  |         shield = a.data.ac.value; | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |     data.aac.value = baseAac + data.scores.dex.mod + shield; | ||||||
|  |     data.ac.value = baseAc - data.scores.dex.mod - shield; | ||||||
|  |     data.shield = shield; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   computeModifiers() { |   computeModifiers() { | ||||||
|     if (this.data.type != "character") { |     if (this.data.type != "character") { | ||||||
|       return; |       return; | ||||||
|  | @ -489,6 +516,9 @@ export class OseActor extends Actor { | ||||||
|       data.scores.con.value |       data.scores.con.value | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|  |     data.ac.naked = 9 + data.scores.dex.mod; | ||||||
|  |     data.aac.naked = 10 - data.scores.dex.mod; | ||||||
|  | 
 | ||||||
|     const capped = { |     const capped = { | ||||||
|       0: -2, |       0: -2, | ||||||
|       3: -2, |       3: -2, | ||||||
|  |  | ||||||
|  | @ -104,7 +104,7 @@ export class OsePartySheet extends FormApplication { | ||||||
|           }, |           }, | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|     }).render(true); |     }, {height: "auto"}).render(true); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** @override */ |   /** @override */ | ||||||
|  |  | ||||||
|  | @ -6,8 +6,7 @@ | ||||||
|         "retainer": { |         "retainer": { | ||||||
|           "enabled": false, |           "enabled": false, | ||||||
|           "loyalty": 0, |           "loyalty": 0, | ||||||
|           "wage": 0, |           "wage": "" | ||||||
|           "upkeep": 0 |  | ||||||
|         }, |         }, | ||||||
|         "hp": { |         "hp": { | ||||||
|           "hd": "1d8", |           "hd": "1d8", | ||||||
|  |  | ||||||
|  | @ -81,11 +81,11 @@ | ||||||
|                 {{#if config.ascendingAC}} |                 {{#if config.ascendingAC}} | ||||||
|                 <div class="health-value health-top" title="{{localize 'OSE.ArmorClass'}}">{{data.aac.value}}</div> |                 <div class="health-value health-top" title="{{localize 'OSE.ArmorClass'}}">{{data.aac.value}}</div> | ||||||
|                 <div class="health-value health-bottom" title="{{localize 'OSE.ArmorClassNaked'}}"> |                 <div class="health-value health-bottom" title="{{localize 'OSE.ArmorClassNaked'}}"> | ||||||
|                     {{add 10 data.scores.dex.mod}}</div> |                     {{data.aac.naked}}</div> | ||||||
|                 {{else}} |                 {{else}} | ||||||
|                 <div class="health-value health-top" title="{{localize 'OSE.ArmorClass'}}">{{data.ac.value}}</div> |                 <div class="health-value health-top" title="{{localize 'OSE.ArmorClass'}}">{{data.ac.value}}</div> | ||||||
|                 <div class="health-value health-bottom" title="{{localize 'OSE.ArmorClassNaked'}}"> |                 <div class="health-value health-bottom" title="{{localize 'OSE.ArmorClassNaked'}}"> | ||||||
|                     {{subtract data.scores.dex.mod 9}}</div> |                     {{data.ac.naked}}</div> | ||||||
|                 {{/if}} |                 {{/if}} | ||||||
|                 {{#if data.shield}}<div class="shield" title="{{localize 'OSE.items.hasShield'}} ({{data.shield}})"><i |                 {{#if data.shield}}<div class="shield" title="{{localize 'OSE.items.hasShield'}} ({{data.shield}})"><i | ||||||
|                         class="fas fa-shield-alt"></i></div>{{/if}} |                         class="fas fa-shield-alt"></i></div>{{/if}} | ||||||
|  |  | ||||||
|  | @ -6,15 +6,10 @@ | ||||||
|   <ul class="summary flexrow"> |   <ul class="summary flexrow"> | ||||||
|     {{#if data.retainer.enabled}} |     {{#if data.retainer.enabled}} | ||||||
|     <li> |     <li> | ||||||
|       <input type="text" name="data.retainer.wage" value="{{data.retainer.wage}}" data-dtype="Number" |       <input type="text" name="data.retainer.wage" value="{{data.retainer.wage}}" data-dtype="String" | ||||||
|          /> |          /> | ||||||
|       <label>{{localize 'OSE.RetainerWage'}}</label> |       <label>{{localize 'OSE.RetainerWage'}}</label> | ||||||
|     </li> |     </li> | ||||||
|     <li> |  | ||||||
|       <input type="text" name="data.retainer.upkeep" value="{{data.retainer.upkeep}}" data-dtype="Number" |  | ||||||
|          /> |  | ||||||
|       <label>{{localize 'OSE.RetainerUpkeep'}}</label> |  | ||||||
|     </li> |  | ||||||
|     {{else}} |     {{else}} | ||||||
|     <li> |     <li> | ||||||
|       <input type="text" name="data.details.title" value="{{data.details.title}}" data-dtype="String" |       <input type="text" name="data.details.title" value="{{data.details.title}}" data-dtype="String" | ||||||
|  |  | ||||||
|  | @ -35,14 +35,17 @@ | ||||||
|       <div class="field-name"> |       <div class="field-name"> | ||||||
|         {{e.name}} |         {{e.name}} | ||||||
|       </div> |       </div> | ||||||
|  |       <div class="item-controls field-long"> | ||||||
|  |         <div class="item-control reaction-roll" title="Reaction Roll"><a><i class="fas fa-user"></i></a></div> | ||||||
|  |       </div> | ||||||
|       <div class="field-long"> |       <div class="field-long"> | ||||||
|         {{e.data.data.hp.value}}/{{e.data.data.hp.max}} |         {{e.data.data.hp.value}}/{{e.data.data.hp.max}} | ||||||
|       </div> |       </div> | ||||||
|       <div class="field-short"> |       <div class="field-short"> | ||||||
|         {{e.data.data.ac.value}} |         <strong>{{e.data.data.ac.value}}</strong> <sub>{{e.data.data.ac.naked}}</sub> | ||||||
|       </div> |       </div> | ||||||
|       <div class="field-short"> |       <div class="field-short"> | ||||||
|         {{e.data.data.thac0.value}} |         <sub>{{e.data.data.thac0.mod.melee}}</sub> <strong>{{e.data.data.thac0.value}}</strong> <sub>{{e.data.data.thac0.mod.missile}}</sub> | ||||||
|       </div> |       </div> | ||||||
|       <div class="field-short"> |       <div class="field-short"> | ||||||
|         {{e.data.data.movement.encounter}} |         {{e.data.data.movement.encounter}} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue