Zwergenhort #4
|
|
@ -94,6 +94,8 @@
|
|||
"midgard5.currency-gold": "Gold",
|
||||
"midgard5.currency-silver": "Silber",
|
||||
"midgard5.currency-copper": "Kupfer",
|
||||
"midgard5.hoard": "Hort",
|
||||
"midgard5.hoardNext": "Hort für nächsten Grad",
|
||||
|
Le-Frique marked this conversation as resolved
Outdated
|
||||
|
||||
"midgard5.exp-overall": "Erfahrungsschatz",
|
||||
"midgard5.exp-available": "Erfahrungspunkte",
|
||||
|
|
|
|||
|
|
@ -86,6 +86,8 @@ export enum M5Stats {
|
|||
PROTECTION_AP = "apProtection",
|
||||
PERCEPTION = "perception",
|
||||
DRINKING = "drinking",
|
||||
HOARD = "hoard",
|
||||
HOARD_NEXT = "hoardNext",
|
||||
}
|
||||
|
||||
export enum M5ModType {
|
||||
|
|
@ -173,6 +175,8 @@ export interface M5CharacterCalculatedData {
|
|||
perceptionFW: number;
|
||||
drinking: M5ModResult;
|
||||
drinkingFW: number;
|
||||
hoard: number;
|
||||
hoardNext: number;
|
||||
};
|
||||
skillMods: {};
|
||||
skills: {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { valueInArray } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/data/validators.mjs";
|
||||
import { M5Item } from "../items/M5Item";
|
||||
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned } from "../M5Base";
|
||||
import M5ModAggregate from "./M5ModAggregate";
|
||||
|
|
@ -71,6 +72,7 @@ export class M5Character extends Actor {
|
|||
perceptionFW: 0,
|
||||
drinking: { value: 0, mods: [] },
|
||||
drinkingFW: 0,
|
||||
hoard: 0,
|
||||
},
|
||||
skillMods: {},
|
||||
skills: {
|
||||
|
|
@ -98,7 +100,7 @@ export class M5Character extends Actor {
|
|||
if (!data) return null;
|
||||
|
||||
ret.level = M5Character.levelFromExp(data.es);
|
||||
|
||||
|
||||
ret.attributes.st.value = M5Character.attributeMinMax(data.attributes.st); // TODO item effects
|
||||
ret.attributes.gs.value = M5Character.attributeMinMax(data.attributes.gs);
|
||||
ret.attributes.gw.value = M5Character.attributeMinMax(data.attributes.gw);
|
||||
|
|
@ -143,7 +145,9 @@ export class M5Character extends Actor {
|
|||
ret.stats.perceptionFW = 6;
|
||||
ret.stats.drinking = this.modResult(0);
|
||||
ret.stats.drinkingFW = Math.floor(ret.attributes.ko.value / 10);
|
||||
|
Le-Frique marked this conversation as resolved
Outdated
Byroks
commented
Das funktioniert so leider nicht ist aber ein guter Anfang. Wir können den wert aber als Eingabe neben den anderen Goldeinträgen hinzufügen um damit die Hortgröße zu bestimmen. Das funktioniert so leider nicht ist aber ein guter Anfang. Wir können den wert aber als Eingabe neben den anderen Goldeinträgen hinzufügen um damit die Hortgröße zu bestimmen.
Le-Frique
commented
Hab ich jetzt so ähnlich gemacht, ziehe aber den Hort aus dem levelTreshold direkt. Hab ich jetzt so ähnlich gemacht, ziehe aber den Hort aus dem levelTreshold direkt.
|
||||
|
||||
ret.stats.hoard = M5Character.hoardFromExp(data.es);
|
||||
ret.stats.hoardNext = M5Character.hoardNextFromExp(data.es);
|
||||
|
||||
if (!skip?.mods) {
|
||||
const aggregate = new M5ModAggregate(data, ret);
|
||||
|
||||
|
|
@ -371,6 +375,18 @@ export class M5Character extends Actor {
|
|||
const ret = M5Character.levelThreshold.findIndex((val) => val > exp);
|
||||
return ret === -1 ? M5Character.levelThreshold.length : ret;
|
||||
}
|
||||
static hoardFromExp(exp: number): number {
|
||||
|
Le-Frique marked this conversation as resolved
Outdated
Byroks
commented
Sollte nicht benötigt werden außer ich verstehe den gewollten nutzen falsch Sollte nicht benötigt werden außer ich verstehe den gewollten nutzen falsch
|
||||
const ret = M5Character.levelThreshold.findIndex((val) => val > exp);
|
||||
const hoard = Math.floor(exp / 2)
|
||||
return hoard;
|
||||
}
|
||||
static hoardNextFromExp(exp: number): number {
|
||||
const ret = M5Character.levelThreshold.findIndex((val) => val > exp);
|
||||
const currentLevel = ret === -1 ? M5Character.levelThreshold.length : ret;
|
||||
const nextLevelExp = M5Character.levelThreshold[currentLevel];
|
||||
const hoardNext = (nextLevelExp /2);
|
||||
return hoardNext;
|
||||
}
|
||||
|
||||
static readonly defenseThreshold: Array<[number, number]> = [
|
||||
[30, 18],
|
||||
|
|
|
|||
|
|
@ -65,6 +65,18 @@
|
|||
text-align: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
.hoard {
|
||||
text-align: center;
|
||||
color: rgb(255, 230, 0);
|
||||
font-weight: bold;
|
||||
font-size: larger;
|
||||
}
|
||||
.hoardNext {
|
||||
text-align: center;
|
||||
color: rgb(255, 255, 255);
|
||||
font-weight: bold;
|
||||
font-size: medium;
|
||||
}
|
||||
|
||||
table {
|
||||
background-color: beige;
|
||||
|
|
|
|||
|
|
@ -4,14 +4,23 @@
|
|||
<tr height = 5px></tr>
|
||||
<tr>
|
||||
<td style="text-align: left;" colspan="4" rowspan="2"><img style="border: 0px solid black;" src="/systems/midgard5/assets/icons/logo/midgard.webp" alt="Midgard"></td>
|
||||
<td></td>
|
||||
<td colspan="5" style="font-size: x-large; font-weigh: bold;"><input name="name" type="text" value="{{actor.name}}" data-dtype="String" /></td>
|
||||
<td style="font-size: x-large; font-weigh: bold; text-align: center; text-align-vertical: middle;" ><div style="border: 2px solid black; border-radius: 10px; background-color: white;">{{data.calc.level}}</div></td>
|
||||
{{#if (eq data.info.race "Zwerg")}}
|
||||
|
Le-Frique marked this conversation as resolved
Outdated
Byroks
commented
Bricht leider den abstand bei den Prüfwürfen, allgemein finde ich das etwas sehr groß.
Und oben dann etwas kleiner nur den aktuellen Hort anzeigen Bricht leider den abstand bei den Prüfwürfen, allgemein finde ich das etwas sehr groß.
Ist das vielleicht bei den Berechneten Werten unten besser aufgehoben? Dort steht gerade eh 2 mal Gifttolleranz. Man könnte es dann entweder als:
`Hort: x von y` --> x der Aktuelle Hort und y der ES/2
`Hort: x benötigt für nächsten Grad` --> x wäre in dem fall der noch benötigte aka rest von ES/2 - Aktueller Hort
oder
`(Gesamt)Hort für nächsten Grad: x` --> Einfach nur ES/2
Und oben dann etwas kleiner nur den aktuellen Hort anzeigen
Le-Frique
commented
So umgesetzt und Vermögensmanagment aktuellen Hort dort auch platziert, es waren auch Resi doppelt. So umgesetzt und Vermögensmanagment aktuellen Hort dort auch platziert, es waren auch Resi doppelt.
|
||||
<td style="font-size: x-large; font-weigh: bold; text-align: center; text-align-vertical: middle;">
|
||||
<div style="border: 2px solid black; border-radius: 10px; background-color: white; background-image: url('icons/commodities/currency/coins-wheat-stack-copper.webp');background-size: cover; background-position: center;">
|
||||
<span class="hoard">{{data.calc.stats.hoard}} GS</span><br>
|
||||
<span class="hoardNext">Hort für nächsten Grad: {{data.calc.stats.hoardNext}} GS</span>
|
||||
</div>
|
||||
</td>
|
||||
{{/if}}
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="5"><b>Name</b></td>
|
||||
<td style="text-align: center;"><b>Grad</b></td>
|
||||
<td style="text-align: center;"><b>Grad</b></td>
|
||||
{{#if (eq data.info.race "Zwerg")}}
|
||||
<td style="text-align: center;"><b>Hort</b></td>
|
||||
{{/if}}
|
||||
</tr>
|
||||
<tr height = 10px></tr>
|
||||
<tr>
|
||||
|
|
|
|||
Bitte im Style von den anderen localizations halten (hoard-next)