ENH: Armor class
parent
0c9282b8a5
commit
ded5e00aa5
|
@ -75,6 +75,29 @@ export class OseActorSheetCharacter extends OseActorSheet {
|
||||||
encumbered: totalWeight > data.data.encumbrance.max,
|
encumbered: totalWeight > data.data.encumbrance.max,
|
||||||
value: totalWeight
|
value: totalWeight
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Compute AC
|
||||||
|
if (data.config.ascendingAC) {
|
||||||
|
let baseAc = 10;
|
||||||
|
data.owned.armors.forEach(a => {
|
||||||
|
if (a.data.equipped) {
|
||||||
|
baseAc += a.data.aac.value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
data.data.aac.value = baseAc + data.data.scores.dex.mod;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
let baseAc = 9;
|
||||||
|
let shield = 0;
|
||||||
|
data.owned.armors.forEach(a => {
|
||||||
|
if (a.data.equipped && a.data.type != 'shield') {
|
||||||
|
baseAc = a.data.ac.value;
|
||||||
|
} else if (a.data.equipped && a.data.type == 'shield') {
|
||||||
|
shield = a.data.ac.value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
data.data.ac.value = baseAc - data.data.scores.dex.mod - shield;
|
||||||
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ export class OseActor extends Actor {
|
||||||
|
|
||||||
// Compute modifiers from actor scores
|
// Compute modifiers from actor scores
|
||||||
this.computeModifiers();
|
this.computeModifiers();
|
||||||
this.computeAttack();
|
|
||||||
|
|
||||||
// Determine Initiative
|
// Determine Initiative
|
||||||
if (game.settings.get("ose", "individualInit")) {
|
if (game.settings.get("ose", "individualInit")) {
|
||||||
|
@ -375,21 +374,4 @@ export class OseActor extends Actor {
|
||||||
data.scores.dex.init = OseActor._cappedMod(this.data.data.scores.dex.value);
|
data.scores.dex.init = OseActor._cappedMod(this.data.data.scores.dex.value);
|
||||||
data.scores.cha.npc = OseActor._cappedMod(this.data.data.scores.cha.value);
|
data.scores.cha.npc = OseActor._cappedMod(this.data.data.scores.cha.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
computeAttack() {
|
|
||||||
const data = this.data.data;
|
|
||||||
let ascending = game.settings.get("ose", "ascendingAC");
|
|
||||||
data.thac0.missile = ascending ? data.thac0.bba : data.thac0.value;
|
|
||||||
data.thac0.melee = ascending ? data.thac0.bba : data.thac0.value;
|
|
||||||
if (this.data.type != "character") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (ascending) {
|
|
||||||
data.thac0.missile += data.scores.dex.mod + data.thac0.mod.missile;
|
|
||||||
data.thac0.melee += data.scores.str.mod + data.thac0.mod.melee;
|
|
||||||
} else {
|
|
||||||
data.thac0.missile -= data.scores.dex.mod - data.thac0.mod.missile;
|
|
||||||
data.thac0.melee -= data.scores.str.mod - data.thac0.mod.melee;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,12 +113,12 @@
|
||||||
<div class="health armor-class">
|
<div class="health armor-class">
|
||||||
{{#if config.ascendingAC}}
|
{{#if config.ascendingAC}}
|
||||||
<input class="health-top" name="data.aac.value" type="text" value="{{data.aac.value}}"
|
<input class="health-top" name="data.aac.value" type="text" value="{{data.aac.value}}"
|
||||||
data-dtype="Number" placeholder="0" title="{{localize 'OSE.ArmorClass'}}" />
|
data-dtype="Number" placeholder="0" title="{{localize 'OSE.ArmorClass'}}" disabled/>
|
||||||
<input class="health-bottom" type="text" value="{{add 10 data.scores.dex.mod}}"
|
<input class="health-bottom" type="text" value="{{add 10 data.scores.dex.mod}}"
|
||||||
title="{{localize 'OSE.ArmorClassNaked'}}" disabled />
|
title="{{localize 'OSE.ArmorClassNaked'}}" disabled />
|
||||||
{{else}}
|
{{else}}
|
||||||
<input class="health-top" name="data.ac.value" type="text" value="{{data.ac.value}}" data-dtype="Number"
|
<input class="health-top" name="data.ac.value" type="text" value="{{data.ac.value}}" data-dtype="Number"
|
||||||
placeholder="0" title="{{localize 'OSE.ArmorClass'}}" />
|
placeholder="0" title="{{localize 'OSE.ArmorClass'}}" disabled/>
|
||||||
<input class="health-bottom" type="text" value="{{subtract data.scores.dex.mod 9}}"
|
<input class="health-bottom" type="text" value="{{subtract data.scores.dex.mod 9}}"
|
||||||
title="{{localize 'OSE.ArmorClass'}}" disabled />
|
title="{{localize 'OSE.ArmorClass'}}" disabled />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -153,17 +153,10 @@
|
||||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.Melee'}}">
|
<h4 class="attribute-name box-title" title="{{localize 'OSE.Melee'}}">
|
||||||
<a>{{localize 'OSE.MeleeShort'}}</a></h4>
|
<a>{{localize 'OSE.MeleeShort'}}</a></h4>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
{{#if config.ascendingAC}}
|
|
||||||
<div class="attribute-value"
|
|
||||||
title="{{localize 'OSE.AB'}}({{data.thac0.bba}}) + {{localize 'OSE.scores.str.long'}}({{data.scores.str.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.melee}})">
|
|
||||||
{{data.thac0.melee}}
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="attribute-value"
|
<div class="attribute-value"
|
||||||
title="{{localize 'OSE.scores.str.long'}}({{data.scores.str.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.melee}})">
|
title="{{localize 'OSE.scores.str.long'}}({{data.scores.str.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.melee}})">
|
||||||
{{add data.scores.str.mod data.thac0.mod.melee}}
|
{{add data.scores.str.mod data.thac0.mod.melee}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#if config.ascendingAC}}
|
{{#if config.ascendingAC}}
|
||||||
|
@ -193,17 +186,10 @@
|
||||||
<h4 class="attribute-name box-title" title="{{localize 'OSE.Missile'}}">
|
<h4 class="attribute-name box-title" title="{{localize 'OSE.Missile'}}">
|
||||||
<a>{{localize 'OSE.MissileShort'}}</a></h4>
|
<a>{{localize 'OSE.MissileShort'}}</a></h4>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
{{#if config.ascendingAC}}
|
|
||||||
<div class="attribute-value"
|
|
||||||
title="{{localize 'OSE.AB'}}({{data.thac0.bba}}) + {{localize 'OSE.scores.dex.long'}}({{data.scores.dex.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.missile}})">
|
|
||||||
{{data.thac0.missile}}
|
|
||||||
</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="attribute-value"
|
<div class="attribute-value"
|
||||||
title="{{localize 'OSE.scores.dex.long'}}({{data.scores.dex.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.missile}})">
|
title="{{localize 'OSE.scores.dex.long'}}({{data.scores.dex.mod}}) + {{localize 'OSE.Modifier'}}({{data.thac0.mod.missile}})">
|
||||||
{{add data.scores.dex.mod data.thac0.mod.missile}}
|
{{add data.scores.dex.mod data.thac0.mod.missile}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in New Issue