diff --git a/frontend/src/lib/shadorwun/character.svelte b/frontend/src/lib/shadorwun/character.svelte index 0045804..0a07871 100644 --- a/frontend/src/lib/shadorwun/character.svelte +++ b/frontend/src/lib/shadorwun/character.svelte @@ -16,8 +16,14 @@ characterData.Connections ??= []; characterData.RangedWeapons ??= []; characterData.MeleeWeapons ??= []; + characterData.Armor ??= []; characterData.Cyberware ??= []; characterData.Bioware ??= []; + characterData.PositiveQualities ??= []; + characterData.NegativeQualities ??= []; + characterData.PysicalCondition ??= Defaults.PysicalCondition + characterData.StunCondition ??= Defaults.StunCondition + characterData.Notes ??= "" const characterInfoTypes = { Metatype: "text", @@ -60,10 +66,10 @@ let inventory = currentCharacter?.inventory || []; -

Name: {currentCharacter.name}

Character Info

+
{#each Object.entries(characterData.Info) as [key, value], i}
@@ -71,11 +77,14 @@ id={"field-" + i} type={characterInfoTypes[key]} bind:value={characterData.Info[key]} - min={characterInfoTypes[key] === "number" ? 0 : null} /> + min={characterInfoTypes[key] === "number" ? 0 : null} + max={characterInfoTypes[key] === "number" ? 100 : null} />
{/each} +

Attributes

+
{#each Object.entries(characterData.Attributes) as [key, value], i}
@@ -83,11 +92,12 @@ id={"field-" + i} type="number" bind:value={characterData["Attributes"][key]} - min=0 /> + min=0 + max=100 />
{/each} +
-

Skills

@@ -122,7 +132,6 @@
-

Contacts

@@ -218,93 +227,203 @@
-

Cyberware

-
- Cyberware - Rating - Essence - Notes - -
-{#each characterData.Cyberware as Cyberware, i} -
- - - - - -
-{/each} - +

Armor

+ + + + + + + + + + + + + {#each characterData.Armor as armor, i} + + + + + + + + + {/each} + +
ArmorBallisticImpactPage
+ +

Cyberware

+ + + + + + + + + + + + + + {#each characterData.Cyberware as Cyberware, i} + + + + + + + + + + {/each} + +
CyberwareRatingEssenceNotesPage
+

Bioware

-
- Bioware - Rating - Essence - Notes - -
-{#each characterData.Bioware as Bioware, i} -
- - - - - -
-{/each} - + + + + + + + + + + + + + + {#each characterData.Bioware as Bioware, i} + + + + + + + + + + {/each} + +
BiowareRatingEssenceNotesPage
+ +

Qualities

+ +

Positive

+ + + + + + + + + + + {#each characterData.PositiveQualities as qualitiy, i} + + + + + + + {/each} + +
QualityPage
+ + +

Negative

+ + + + + + + + + + + {#each characterData.NegativeQualities as qualitiy, i} + + + + + + + {/each} + +
QualityPage
+ + +

Pysical Condition

+ + + {#each characterData.PysicalCondition as row, rowIndex} + + {#each row as cell, colIndex} + + {/each} + + {/each} + +
+ +
+ +

Stun Condition

+ + + {#each characterData.StunCondition as row, rowIndex} + + {#each row as cell, colIndex} + + {/each} + + {/each} + +
+ +
+ +

Notes

+
+
\ No newline at end of file diff --git a/frontend/src/lib/shadorwun/defaults.svelte b/frontend/src/lib/shadorwun/defaults.svelte index 5f9aae5..38c98c1 100644 --- a/frontend/src/lib/shadorwun/defaults.svelte +++ b/frontend/src/lib/shadorwun/defaults.svelte @@ -65,6 +65,22 @@ const Implant = { Notes: "", } +const Qualitiy = { + Qualitiy : "" +} + +const PysicalCondition = Array.from({ length: 6 }, () => + Array.from({ length: 3 }, () => false)) + +const StunCondition = Array.from({ length: 4 }, () => + Array.from({ length: 3 }, () => false)) + +const Armor = { + Armor: "", + Ballistic: 0, + Impact: 0 +} + export const Defaults = { Info: Info, Attributes: Attributes, @@ -74,6 +90,11 @@ export const Defaults = { MeleeWeapons : MeleeWeapon, Cyberware : Implant, Bioware : Implant, + PositiveQualities : Qualitiy, + NegativeQualities : Qualitiy, + PysicalCondition : PysicalCondition, + StunCondition : StunCondition, + Armor : Armor, } diff --git a/src/shadowrun/ShadowrunDb.hpp b/src/shadowrun/ShadowrunDb.hpp index 7f3406c..d99576e 100644 --- a/src/shadowrun/ShadowrunDb.hpp +++ b/src/shadowrun/ShadowrunDb.hpp @@ -21,6 +21,8 @@ namespace shadowrun { MeleeWeapons = 6, Cyberware = 7, Bioware = 8, + PositiveQualities = 9, + NegativeQualities = 10, }; struct ShadowrunCharacter {