Sneak Fixes
Changes: + EP Input vergrößert + Verstecke Ungelernte Fähigkeiten auf Spieler Bogen wie bei NPC Bogen + Fix Mods (again) + nutze richtige movement wert bei NPC Bogen
This commit is contained in:
parent
918b32fda0
commit
1852f2bf08
|
|
@ -152,6 +152,7 @@ export class M5Character extends Actor {
|
||||||
|
|
||||||
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
|
ret.level = M5Character.levelFromExp(data.info.race === "Zwerg" ? Math.min(data.calc.stats?.hoard * 2 || 0, data.es) : data.es);
|
||||||
|
|
||||||
|
//Set all values that are not dependent on another Value
|
||||||
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
||||||
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
||||||
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
|
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
|
||||||
|
|
@ -172,6 +173,17 @@ export class M5Character extends Actor {
|
||||||
ret.attributes.pa.bonus = M5Character.attributeBonus(data.attributes.pa);
|
ret.attributes.pa.bonus = M5Character.attributeBonus(data.attributes.pa);
|
||||||
ret.attributes.wk.bonus = M5Character.attributeBonus(data.attributes.wk);
|
ret.attributes.wk.bonus = M5Character.attributeBonus(data.attributes.wk);
|
||||||
|
|
||||||
|
ret.stats.lp = this.modResult(data.lp);
|
||||||
|
ret.stats.ap = this.modResult(data.ap);
|
||||||
|
ret.stats.lpProtection = this.modResult(0);
|
||||||
|
ret.stats.apProtection = this.modResult(0);
|
||||||
|
ret.stats.movement = this.modResult(data.movement);
|
||||||
|
ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
|
||||||
|
ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
|
||||||
|
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3));
|
||||||
|
ret.stats.hoard = 0;
|
||||||
|
ret.stats.encumbrance = 0;
|
||||||
|
|
||||||
if (!skip?.mods) {
|
if (!skip?.mods) {
|
||||||
const aggregate = new M5ModAggregate(data, ret);
|
const aggregate = new M5ModAggregate(data, ret);
|
||||||
|
|
||||||
|
|
@ -192,15 +204,10 @@ export class M5Character extends Actor {
|
||||||
ret.skillMods = aggregate.calculate();
|
ret.skillMods = aggregate.calculate();
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.stats.lp = this.modResult(data.lp);
|
|
||||||
ret.stats.ap = this.modResult(data.ap);
|
|
||||||
ret.stats.lpProtection = this.modResult(0);
|
|
||||||
ret.stats.apProtection = this.modResult(0);
|
|
||||||
ret.stats.defense = this.modResult(M5Character.defenseFromLevel(ret.level));
|
ret.stats.defense = this.modResult(M5Character.defenseFromLevel(ret.level));
|
||||||
ret.stats.damageBonus = this.modResult(Math.floor(ret.attributes.st.value / 20) + Math.floor(ret.attributes.gs.value / 30) - 3);
|
ret.stats.damageBonus = this.modResult(Math.floor(ret.attributes.st.value / 20) + Math.floor(ret.attributes.gs.value / 30) - 3);
|
||||||
ret.stats.attackBonus = this.modResult(ret.attributes.gs.bonus);
|
ret.stats.attackBonus = this.modResult(ret.attributes.gs.bonus);
|
||||||
ret.stats.defenseBonus = this.modResult(ret.attributes.gw.bonus);
|
ret.stats.defenseBonus = this.modResult(ret.attributes.gw.bonus);
|
||||||
ret.stats.movement = this.modResult(data.movement);
|
|
||||||
ret.stats.resistanceMind = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.in.bonus : this.raceBonus(data.info.race)));
|
ret.stats.resistanceMind = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.in.bonus : this.raceBonus(data.info.race)));
|
||||||
ret.stats.resistanceBody = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.ko.bonus : this.raceBonus(data.info.race)));
|
ret.stats.resistanceBody = this.modResult(ret.stats.defense.value + (data.info.race === "Mensch" ? ret.attributes.ko.bonus : this.raceBonus(data.info.race)));
|
||||||
ret.stats.spellCasting = this.modResult((data.info.magicUsing ? M5Character.spellCastingFromLevel(ret.level) : 3) + ret.attributes.zt.bonus);
|
ret.stats.spellCasting = this.modResult((data.info.magicUsing ? M5Character.spellCastingFromLevel(ret.level) : 3) + ret.attributes.zt.bonus);
|
||||||
|
|
@ -211,15 +218,10 @@ export class M5Character extends Actor {
|
||||||
ret.stats.deprivationCold = this.modResult(Math.floor(ret.attributes.ko.value / 2));
|
ret.stats.deprivationCold = this.modResult(Math.floor(ret.attributes.ko.value / 2));
|
||||||
ret.stats.deprivationHeat = this.modResult(Math.floor(ret.attributes.ko.value / 2));
|
ret.stats.deprivationHeat = this.modResult(Math.floor(ret.attributes.ko.value / 2));
|
||||||
ret.stats.deprivationFood = this.modResult(Math.floor(40 + ret.attributes.ko.value / 2));
|
ret.stats.deprivationFood = this.modResult(Math.floor(40 + ret.attributes.ko.value / 2));
|
||||||
ret.stats.hoardMin = M5Character.levelThreshold.at(ret.level - 1) / 2;
|
|
||||||
ret.stats.hoardNext = M5Character.levelThreshold.at(ret.level) / 2;
|
|
||||||
ret.stats.wealth = parseFloat((data.info.gold + data.info.silver / 10 + data.info.copper / 100).toPrecision(3));
|
|
||||||
ret.stats.hoard = 0;
|
|
||||||
ret.stats.load = M5Character.loadValue(data.attributes.st);
|
ret.stats.load = M5Character.loadValue(data.attributes.st);
|
||||||
ret.stats.heavyLoad = M5Character.heavyLoadValue(data.attributes.st);
|
ret.stats.heavyLoad = M5Character.heavyLoadValue(data.attributes.st);
|
||||||
ret.stats.loadMax = M5Character.maxLoadValue(data.attributes.st);
|
ret.stats.loadMax = M5Character.maxLoadValue(data.attributes.st);
|
||||||
ret.stats.thrustLoad = M5Character.thrustLoadValue(data.attributes.st);
|
ret.stats.thrustLoad = M5Character.thrustLoadValue(data.attributes.st);
|
||||||
ret.stats.encumbrance = 0;
|
|
||||||
|
|
||||||
if (!skip?.containers) {
|
if (!skip?.containers) {
|
||||||
context.items
|
context.items
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<td>{{localize "midgard5.grace"}}</td>
|
<td>{{localize "midgard5.grace"}}</td>
|
||||||
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
<td><input name="data.gg" type="text" value="{{data.gg}}" data-dtype="Number" /></td>
|
||||||
<td>{{localize "midgard5.exp-overall"}}</td>
|
<td>{{localize "midgard5.exp-overall"}}</td>
|
||||||
<td><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
|
<td width="40%"><input name="data.es" type="text" value="{{data.es}}" data-dtype="Number" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{localize "midgard5.destiny"}}</td>
|
<td>{{localize "midgard5.destiny"}}</td>
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,8 @@
|
||||||
|
|
||||||
<div class="flexpart">
|
<div class="flexpart">
|
||||||
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.unlearned-skills"}}</div>
|
<div class="flexpart-header"><img src="icons/sundries/gaming/dice-pair-white-green.webp" class="flexpart-icon">{{localize "midgard5.unlearned-skills"}}</div>
|
||||||
|
<input id="data.info.showUnlearned" class="checkbox" type="checkbox" name="data.info.showUnlearned" {{checked data.info.showUnlearned}} style="float: right;">
|
||||||
|
<label for="data.info.showUnlearned" style="font-size: small; font-weight: normal; font-style: italic; float: right;">{{localize "midgard5.showUnlearned"}} </label>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
@ -154,6 +156,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
{{#unless (not data.info.showUnlearned)}}
|
||||||
{{#each data.skills.general as |skill key|}}
|
{{#each data.skills.general as |skill key|}}
|
||||||
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
{{#unless (isSkillInList (localizeMidgard key) ../actor.system.calc.skills.general) }}
|
||||||
<tr data-skill="{{key}}">
|
<tr data-skill="{{key}}">
|
||||||
|
|
@ -166,6 +169,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
{{/unless}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="git" attribute=data.attributes.git}}
|
{{> "systems/midgard5/templates/sheets/npc/attribute.hbs" attributeId="git" attribute=data.attributes.git}}
|
||||||
<div class="sheet-npc">
|
<div class="sheet-npc">
|
||||||
<div class="attribute-header">{{localize "midgard5.movementRange"}}</div>
|
<div class="attribute-header">{{localize "midgard5.movementRange"}}</div>
|
||||||
<div class="attribute-value"><input name="data.movement" type="text" value="{{data.calc.stats.movement.mods.0.value}}" data-dtype="Number" /></div>
|
<div class="attribute-value"><input name="data.movement" type="text" value="{{data.movement}}" data-dtype="Number" /></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sheet-npc">
|
<div class="sheet-npc">
|
||||||
<div class="attribute-header">{{localize "midgard5.exp-overall"}}</div>
|
<div class="attribute-header">{{localize "midgard5.exp-overall"}}</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue