diff --git a/character-builder/data/index.json b/character-builder/data/index.json index 23dc195..0839683 100644 --- a/character-builder/data/index.json +++ b/character-builder/data/index.json @@ -47,5 +47,11 @@ "nodes": 22, "edges": 22 } - ] + ], + "icons": { + "directory": "frontend/public/icons", + "served_at": "/icons/", + "count": 154, + "missing": [] + } } \ No newline at end of file diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityassaultseeker_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityassaultseeker_d.webp new file mode 100644 index 0000000..57214fa Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityassaultseeker_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitybattlecry_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitybattlecry_d.webp new file mode 100644 index 0000000..2775a1b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitybattlecry_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitybindunervestrike_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitybindunervestrike_d.webp new file mode 100644 index 0000000..d7afbc0 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitybindunervestrike_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityblindspot_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityblindspot_d.webp new file mode 100644 index 0000000..62447f5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityblindspot_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitybreakingreposte_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitybreakingreposte_d.webp new file mode 100644 index 0000000..7f50f46 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitybreakingreposte_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitycollapsegrenade_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitycollapsegrenade_d.webp new file mode 100644 index 0000000..6015e4b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitycollapsegrenade_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitycripplingstrike_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitycripplingstrike_d.webp new file mode 100644 index 0000000..e071066 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitycripplingstrike_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitydash_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitydash_d.webp new file mode 100644 index 0000000..48e115b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitydash_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitydeflection_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitydeflection_d.webp new file mode 100644 index 0000000..79b5dfe Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitydeflection_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityenergycapsule_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityenergycapsule_d.webp new file mode 100644 index 0000000..7492f93 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityenergycapsule_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityinjuringreposte_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityinjuringreposte_d.webp new file mode 100644 index 0000000..094d557 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityinjuringreposte_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitykneecharge_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitykneecharge_d.webp new file mode 100644 index 0000000..5ef23c1 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitykneecharge_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitylitanyagainstfear_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitylitanyagainstfear_d.webp new file mode 100644 index 0000000..7b09316 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitylitanyagainstfear_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitypoisonmine_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitypoisonmine_d.webp new file mode 100644 index 0000000..bf0dbfc Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitypoisonmine_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityportablegenerator_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityportablegenerator_d.webp new file mode 100644 index 0000000..6c38239 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityportablegenerator_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitysolidodecoy_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitysolidodecoy_d.webp new file mode 100644 index 0000000..6258ea8 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitysolidodecoy_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitystunnerdart_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitystunnerdart_d.webp new file mode 100644 index 0000000..847c838 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitystunnerdart_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorblast_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorblast_d.webp new file mode 100644 index 0000000..a88b347 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorblast_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorpad_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorpad_d.webp new file mode 100644 index 0000000..1e87d6d Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorpad_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorwall_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorwall_d.webp new file mode 100644 index 0000000..d3a23e6 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitysuspensorwall_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitythevoicecompel_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitythevoicecompel_d.webp new file mode 100644 index 0000000..d101d54 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitythevoicecompel_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityturretseeker_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityturretseeker_d.webp new file mode 100644 index 0000000..3ef80e5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityturretseeker_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityvoicestop_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityvoicestop_d.webp new file mode 100644 index 0000000..abe11cc Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityvoicestop_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilityweirdingstep_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilityweirdingstep_d.webp new file mode 100644 index 0000000..3e986fb Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilityweirdingstep_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconabilitywhirlwind_d.webp b/character-builder/frontend/public/icons/t_ui_iconabilitywhirlwind_d.webp new file mode 100644 index 0000000..2be913b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconabilitywhirlwind_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetamplificationgrenade_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetamplificationgrenade_d.webp new file mode 100644 index 0000000..9b709be Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetamplificationgrenade_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetamplificationremotemine_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetamplificationremotemine_d.webp new file mode 100644 index 0000000..f28940f Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetamplificationremotemine_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetfraggrenades_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetfraggrenades_d.webp new file mode 100644 index 0000000..c5d49cc Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetfraggrenades_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgethunterseeker_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgethunterseeker_d.webp new file mode 100644 index 0000000..025ada7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgethunterseeker_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetpoisoncapsulelauncher_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetpoisoncapsulelauncher_d.webp new file mode 100644 index 0000000..3c54403 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetpoisoncapsulelauncher_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetreductionremotemine_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetreductionremotemine_d.webp new file mode 100644 index 0000000..2b76777 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetreductionremotemine_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetreductionsuspensorgrenade_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetreductionsuspensorgrenade_d.webp new file mode 100644 index 0000000..e8931c7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetreductionsuspensorgrenade_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetshigmultitoolmagneticattractor_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetshigmultitoolmagneticattractor_d.webp new file mode 100644 index 0000000..512c4d8 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetshigmultitoolmagneticattractor_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_icongadgetshigmultitoolsardaukarpull_d.webp b/character-builder/frontend/public/icons/t_ui_icongadgetshigmultitoolsardaukarpull_d.webp new file mode 100644 index 0000000..5c47841 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_icongadgetshigmultitoolsardaukarpull_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamage_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamage_d.webp new file mode 100644 index 0000000..471a096 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamage_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusgun_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusgun_d.webp new file mode 100644 index 0000000..2f625ab Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusgun_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusheavyweapon_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusheavyweapon_d.webp new file mode 100644 index 0000000..464e13a Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusheavyweapon_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusrifle_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusrifle_d.webp new file mode 100644 index 0000000..d39e3fb Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusrifle_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusscattergun_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusscattergun_d.webp new file mode 100644 index 0000000..94db152 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonusscattergun_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonussmg_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonussmg_d.webp new file mode 100644 index 0000000..d6865c7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagebonussmg_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagemitigation_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagemitigation_d.webp new file mode 100644 index 0000000..da1a3d4 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributedamagemitigation_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributeheadshotbonus_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributeheadshotbonus_d.webp new file mode 100644 index 0000000..ab9eed3 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributeheadshotbonus_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributemaxhpbonus_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributemaxhpbonus_d.webp new file mode 100644 index 0000000..d29de9f Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributemaxhpbonus_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributemineralyield_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributemineralyield_d.webp new file mode 100644 index 0000000..b5d1653 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributemineralyield_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributepoisedefense_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributepoisedefense_d.webp new file mode 100644 index 0000000..e626093 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributepoisedefense_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributepoisondefense_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributepoisondefense_d.webp new file mode 100644 index 0000000..fb71e2a Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributepoisondefense_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributerepair_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributerepair_d.webp new file mode 100644 index 0000000..dd00cf1 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributerepair_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributerepairefficiency_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributerepairefficiency_d.webp new file mode 100644 index 0000000..e2d7539 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributerepairefficiency_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributescanningbonus_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributescanningbonus_d.webp new file mode 100644 index 0000000..6a8f9e5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributescanningbonus_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributespice_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributespice_d.webp new file mode 100644 index 0000000..a970328 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributespice_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributespiceyield_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributespiceyield_d.webp new file mode 100644 index 0000000..121b8d2 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributespiceyield_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributestamina_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributestamina_d.webp new file mode 100644 index 0000000..7cf79f7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributestamina_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributesundefense_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributesundefense_d.webp new file mode 100644 index 0000000..8c67705 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributesundefense_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributevehicle_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributevehicle_d.webp new file mode 100644 index 0000000..74b1abc Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributevehicle_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatherbonus_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatherbonus_d.webp new file mode 100644 index 0000000..4d792df Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatherbonus_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatherdefense_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatherdefense_d.webp new file mode 100644 index 0000000..3735557 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatherdefense_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatheryield_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatheryield_d.webp new file mode 100644 index 0000000..1f896f9 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeattributewatheryield_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreebenegesseritcooldown_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreebenegesseritcooldown_d.webp new file mode 100644 index 0000000..c864730 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreebenegesseritcooldown_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreebindudodge_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreebindudodge_d.webp new file mode 100644 index 0000000..d0d5a46 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreebindudodge_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreebindustability_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreebindustability_d.webp new file mode 100644 index 0000000..d227e71 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreebindustability_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeheatmanagement_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeheatmanagement_d.webp new file mode 100644 index 0000000..a17432f Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeheatmanagement_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeironwill_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeironwill_d.webp new file mode 100644 index 0000000..4940b1d Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeironwill_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreemetabolizeposion_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreemetabolizeposion_d.webp new file mode 100644 index 0000000..aa6dd57 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreemetabolizeposion_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbackstabber_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbackstabber_d.webp new file mode 100644 index 0000000..e1ae429 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbackstabber_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbatteryexpert_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbatteryexpert_d.webp new file mode 100644 index 0000000..c12ba26 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbatteryexpert_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbladechaining_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbladechaining_d.webp new file mode 100644 index 0000000..df3cab3 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkbladechaining_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkcentralaim_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkcentralaim_d.webp new file mode 100644 index 0000000..48f66aa Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkcentralaim_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkdeathfromabove_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkdeathfromabove_d.webp new file mode 100644 index 0000000..b26e7b8 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkdeathfromabove_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkhealingfactor_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkhealingfactor_d.webp new file mode 100644 index 0000000..8af3a55 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkhealingfactor_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkheavyweaponnaib_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkheavyweaponnaib_d.webp new file mode 100644 index 0000000..d80e35d Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkheavyweaponnaib_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkmarksman_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkmarksman_d.webp new file mode 100644 index 0000000..8425c24 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkmarksman_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeperkrunner_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkrunner_d.webp new file mode 100644 index 0000000..bf158f7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeperkrunner_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreepoisontooth_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreepoisontooth_d.webp new file mode 100644 index 0000000..9ccea1c Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreepoisontooth_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreepreciseparry_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreepreciseparry_d.webp new file mode 100644 index 0000000..13dd58f Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreepreciseparry_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeprescientstrike_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeprescientstrike_d.webp new file mode 100644 index 0000000..c2c1216 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeprescientstrike_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreereflexivereload_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreereflexivereload_d.webp new file mode 100644 index 0000000..ce01dea Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreereflexivereload_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreescreech_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreescreech_d.webp new file mode 100644 index 0000000..f3f850d Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreescreech_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeshieldovercharge_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeshieldovercharge_d.webp new file mode 100644 index 0000000..8c0e7dc Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeshieldovercharge_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeskillbrawler_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillbrawler_d.webp new file mode 100644 index 0000000..cd9f6e7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillbrawler_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeskillclimber_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillclimber_d.webp new file mode 100644 index 0000000..ce00251 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillclimber_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeskillhealingmultiplier_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillhealingmultiplier_d.webp new file mode 100644 index 0000000..e2e6671 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillhealingmultiplier_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeskillhydration_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillhydration_d.webp new file mode 100644 index 0000000..284045f Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillhydration_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeskillmaxhealth_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillmaxhealth_d.webp new file mode 100644 index 0000000..92d855f Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillmaxhealth_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeskillobservation_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillobservation_d.webp new file mode 100644 index 0000000..42c594e Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillobservation_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreeskillpowerefficiency_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillpowerefficiency_d.webp new file mode 100644 index 0000000..a377ab5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreeskillpowerefficiency_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreespiceeffectexploitweakness_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreespiceeffectexploitweakness_d.webp new file mode 100644 index 0000000..47ebfca Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreespiceeffectexploitweakness_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreesuspensordash_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreesuspensordash_d.webp new file mode 100644 index 0000000..802e5cc Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreesuspensordash_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreethriveondanger_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreethriveondanger_d.webp new file mode 100644 index 0000000..9805dc7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreethriveondanger_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreetoughlunge_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreetoughlunge_d.webp new file mode 100644 index 0000000..5dc72bf Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreetoughlunge_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreetroopercooldown_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreetroopercooldown_d.webp new file mode 100644 index 0000000..902f3db Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreetroopercooldown_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconskilltreevoiceanalysis_d.webp b/character-builder/frontend/public/icons/t_ui_iconskilltreevoiceanalysis_d.webp new file mode 100644 index 0000000..5dbd3da Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconskilltreevoiceanalysis_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combamaxhealth_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combamaxhealth_d.webp new file mode 100644 index 0000000..5101950 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combamaxhealth_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combamaxstamina_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combamaxstamina_d.webp new file mode 100644 index 0000000..1c15fe9 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combamaxstamina_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints1_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints1_d.webp new file mode 100644 index 0000000..ca65e56 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints1_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints3_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints3_d.webp new file mode 100644 index 0000000..6fcff6b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints3_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints5_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints5_d.webp new file mode 100644 index 0000000..424b3de Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_combaskillpoints5_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsarmor_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsarmor_d.webp new file mode 100644 index 0000000..bba7ab5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsarmor_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsmelee_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsmelee_d.webp new file mode 100644 index 0000000..6f12a9d Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsmelee_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsranged_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsranged_d.webp new file mode 100644 index 0000000..7a56dba Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_augmentslotsranged_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_craftingjackpot_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_craftingjackpot_d.webp new file mode 100644 index 0000000..efe538b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_craftingjackpot_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_ghostdataability_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_ghostdataability_d.webp new file mode 100644 index 0000000..9620994 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_ghostdataability_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_recipedecreaseupgradeitems_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_recipedecreaseupgradeitems_d.webp new file mode 100644 index 0000000..4f6d98b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_recipedecreaseupgradeitems_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_recyclejackpot_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_recyclejackpot_d.webp new file mode 100644 index 0000000..707e0e3 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_recyclejackpot_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_repairmaxdurability_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_repairmaxdurability_d.webp new file mode 100644 index 0000000..e368aa5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_repairmaxdurability_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_schematicswhenrecycle_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_schematicswhenrecycle_d.webp new file mode 100644 index 0000000..d4eb634 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_schematicswhenrecycle_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_upgradingfragmentsability_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_upgradingfragmentsability_d.webp new file mode 100644 index 0000000..0937a94 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_crafting_upgradingfragmentsability_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_buriedtreasurebonus_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_buriedtreasurebonus_d.webp new file mode 100644 index 0000000..0fb63eb Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_buriedtreasurebonus_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_lesswormthreat_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_lesswormthreat_d.webp new file mode 100644 index 0000000..196f446 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_lesswormthreat_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_lootpoolalterations_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_lootpoolalterations_d.webp new file mode 100644 index 0000000..d89a17a Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_lootpoolalterations_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_playerinventoryslots_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_playerinventoryslots_d.webp new file mode 100644 index 0000000..e8d7773 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_playerinventoryslots_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_suspensorpowerdrain_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_suspensorpowerdrain_d.webp new file mode 100644 index 0000000..b037002 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_suspensorpowerdrain_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_vehicledamageresistance_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_vehicledamageresistance_d.webp new file mode 100644 index 0000000..7aa6824 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_exploration_vehicledamageresistance_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_additionalyieldspickups_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_additionalyieldspickups_d.webp new file mode 100644 index 0000000..c9c45e0 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_additionalyieldspickups_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_bonusyieldscrap_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_bonusyieldscrap_d.webp new file mode 100644 index 0000000..ecb03cc Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_bonusyieldscrap_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_compactorgatherrange_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_compactorgatherrange_d.webp new file mode 100644 index 0000000..9a9e20c Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_compactorgatherrange_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_jellyfingcorpse_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_jellyfingcorpse_d.webp new file mode 100644 index 0000000..039ff3b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_jellyfingcorpse_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_yieldjackpot_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_yieldjackpot_d.webp new file mode 100644 index 0000000..cbbedad Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_gathering_yieldjackpot_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_bribinglandsraad_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_bribinglandsraad_d.webp new file mode 100644 index 0000000..5d083ef Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_bribinglandsraad_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_contributionlandsraad_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_contributionlandsraad_d.webp new file mode 100644 index 0000000..468b2f8 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_contributionlandsraad_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_extraloot_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_extraloot_d.webp new file mode 100644 index 0000000..1489c70 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_extraloot_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_headshotdmg_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_headshotdmg_d.webp new file mode 100644 index 0000000..d1c2bb5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_headshotdmg_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_morehousecredits_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_morehousecredits_d.webp new file mode 100644 index 0000000..ebebaf0 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_morehousecredits_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_reducetimescanned_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_reducetimescanned_d.webp new file mode 100644 index 0000000..51e2287 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystonemajor_sabotage_reducetimescanned_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_chemicalrefiningyields_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_chemicalrefiningyields_d.webp new file mode 100644 index 0000000..62f4d1e Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_chemicalrefiningyields_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_consumablebatchcraftingbonus_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_consumablebatchcraftingbonus_d.webp new file mode 100644 index 0000000..15a9cc2 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_consumablebatchcraftingbonus_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_craftingrefiningspeed_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_craftingrefiningspeed_d.webp new file mode 100644 index 0000000..90a26e1 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_craftingrefiningspeed_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_recycleyield_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_recycleyield_d.webp new file mode 100644 index 0000000..13c87a6 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_recycleyield_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_refiningyields_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_refiningyields_d.webp new file mode 100644 index 0000000..19a981f Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_refiningyields_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_spicerefiningyields_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_spicerefiningyields_d.webp new file mode 100644 index 0000000..9e7d560 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_crafting_spicerefiningyields_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_climbingstamina_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_climbingstamina_d.webp new file mode 100644 index 0000000..43a1d77 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_climbingstamina_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_fastervehicleheat_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_fastervehicleheat_d.webp new file mode 100644 index 0000000..54130e1 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_fastervehicleheat_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_fogwarrevealradius_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_fogwarrevealradius_d.webp new file mode 100644 index 0000000..76cf8e5 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_fogwarrevealradius_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_reducecostvehiclerecovery_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_reducecostvehiclerecovery_d.webp new file mode 100644 index 0000000..a3aed20 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_reducecostvehiclerecovery_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_sandstormdamagereduction_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_sandstormdamagereduction_d.webp new file mode 100644 index 0000000..dbd92f8 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_sandstormdamagereduction_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_scanningrange_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_scanningrange_d.webp new file mode 100644 index 0000000..680f26c Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_scanningrange_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_surveyingtimedecrease_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_surveyingtimedecrease_d.webp new file mode 100644 index 0000000..1bd9974 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_surveyingtimedecrease_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehicleboostheatreduction_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehicleboostheatreduction_d.webp new file mode 100644 index 0000000..4c25645 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehicleboostheatreduction_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehiclefuelefficiency_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehiclefuelefficiency_d.webp new file mode 100644 index 0000000..71016c7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehiclefuelefficiency_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehiclespeedbonus_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehiclespeedbonus_d.webp new file mode 100644 index 0000000..61b7af7 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_exploration_vehiclespeedbonus_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_additionalbloodcorpses_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_additionalbloodcorpses_d.webp new file mode 100644 index 0000000..eb8ee6c Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_additionalbloodcorpses_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_additionalwaterplants_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_additionalwaterplants_d.webp new file mode 100644 index 0000000..4e8b323 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_additionalwaterplants_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_byproductsalvage_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_byproductsalvage_d.webp new file mode 100644 index 0000000..d343404 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_byproductsalvage_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_compactorthreatgeneration_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_compactorthreatgeneration_d.webp new file mode 100644 index 0000000..c057544 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_compactorthreatgeneration_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_toolusagecostspower_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_toolusagecostspower_d.webp new file mode 100644 index 0000000..ceb0109 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_gathering_toolusagecostspower_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_moredamageexplosivebarrels_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_moredamageexplosivebarrels_d.webp new file mode 100644 index 0000000..aa730be Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_moredamageexplosivebarrels_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducedistancenpcsense_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducedistancenpcsense_d.webp new file mode 100644 index 0000000..2e570c3 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducedistancenpcsense_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducerangescanned_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducerangescanned_d.webp new file mode 100644 index 0000000..d852592 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducerangescanned_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducerecognitionspeed_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducerecognitionspeed_d.webp new file mode 100644 index 0000000..d9b2ac8 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_reducerecognitionspeed_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_trapstriggerdetonate_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_trapstriggerdetonate_d.webp new file mode 100644 index 0000000..d4bc14b Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_keystoneminor_sabotage_trapstriggerdetonate_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_combamalehelmet01_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_combamalehelmet01_d.webp new file mode 100644 index 0000000..41fc581 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_combamalehelmet01_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_crafting_malehelmet01_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_crafting_malehelmet01_d.webp new file mode 100644 index 0000000..4def009 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_crafting_malehelmet01_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_exploration_malehelmet01_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_exploration_malehelmet01_d.webp new file mode 100644 index 0000000..4724969 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_exploration_malehelmet01_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_gathering_malehelmet01_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_gathering_malehelmet01_d.webp new file mode 100644 index 0000000..c125d60 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_gathering_malehelmet01_d.webp differ diff --git a/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_sabotage_malehelmet01_d.webp b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_sabotage_malehelmet01_d.webp new file mode 100644 index 0000000..7482e60 Binary files /dev/null and b/character-builder/frontend/public/icons/t_ui_iconspecialization_reward_sabotage_malehelmet01_d.webp differ diff --git a/character-builder/frontend/src/components/SkillTree.vue b/character-builder/frontend/src/components/SkillTree.vue index 9c60dd4..6b36638 100644 --- a/character-builder/frontend/src/components/SkillTree.vue +++ b/character-builder/frontend/src/components/SkillTree.vue @@ -193,10 +193,18 @@ function onContext(tag: string, e: MouseEvent) { @contextmenu="(e) => onContext(n.tag, e)" :title="`${n.name} (${n.kind})`" > -
{{ n.name }}
+ +
{{ n.name }}
{{ pointsFor(n.tag) }}/{{ n.maxPoints }}
-
{{ n.kind }}
+
{{ n.name }}
diff --git a/character-builder/frontend/src/components/XpProgressCard.vue b/character-builder/frontend/src/components/XpProgressCard.vue index 29ae089..99b79f0 100644 --- a/character-builder/frontend/src/components/XpProgressCard.vue +++ b/character-builder/frontend/src/components/XpProgressCard.vue @@ -128,6 +128,15 @@ function fmt(n: number): string { :class="['perk', p.unlockLevel > level ? 'locked' : '']" > L{{ p.unlockLevel }} + + {{ p.name }} @@ -195,12 +204,27 @@ function fmt(n: number): string { } .perk { display: grid; - grid-template-columns: 36px 1fr; + grid-template-columns: 36px 32px 1fr; gap: 8px; padding: 6px 8px; background: var(--bg); border: 1px solid var(--line-soft); border-radius: 3px; + align-items: center; +} +.perk-icon { + width: 32px; + height: 32px; + object-fit: contain; + align-self: start; + margin-top: 2px; + filter: brightness(0.95); +} +.perk-icon-placeholder { + display: block; +} +.perk.locked .perk-icon { + filter: grayscale(0.5) brightness(0.7); } .perk.locked { opacity: 0.42; diff --git a/character-builder/frontend/src/styles.css b/character-builder/frontend/src/styles.css index 6aceadc..24c7818 100644 --- a/character-builder/frontend/src/styles.css +++ b/character-builder/frontend/src/styles.css @@ -553,6 +553,20 @@ button:disabled { padding: 4px; color: var(--ink-dim); } +.tree-node .node-icon { + width: 72px; + height: 72px; + object-fit: contain; + filter: brightness(0.7) saturate(0.85); + transition: filter 0.15s; + pointer-events: none; + user-select: none; +} +.tree-node:hover .node-icon { filter: brightness(0.95); } +.tree-node.allocated .node-icon { filter: brightness(1) saturate(1.1); } +.tree-node.maxed .node-icon { + filter: brightness(1.1) saturate(1.2) drop-shadow(0 0 6px var(--sand-2)); +} .tree-edges { position: absolute; inset: 0; diff --git a/character-builder/scripts/extract.py b/character-builder/scripts/extract.py index 14086b6..9a6c3d5 100644 --- a/character-builder/scripts/extract.py +++ b/character-builder/scripts/extract.py @@ -7,15 +7,47 @@ Outputs JSON files into ../data/: - faction-{atreides,harkonnen}.json - skills-{benegesserit,mentat,planetologist,swordmaster,trooper}.json - index.json (manifest) + +Also copies every referenced icon webp from sample-data/*/ into +../frontend/public/icons/ so the SPA can serve them as /icons/.webp. """ import json import re +import shutil from html.parser import HTMLParser from pathlib import Path SAMPLE = Path(__file__).resolve().parents[2] / "sample-data" OUT = Path(__file__).resolve().parents[1] / "data" +ICONS_OUT = Path(__file__).resolve().parents[1] / "frontend" / "public" / "icons" OUT.mkdir(parents=True, exist_ok=True) +ICONS_OUT.mkdir(parents=True, exist_ok=True) + + +def find_icon_source(name: str) -> Path | None: + """Locate an icon webp inside any sample-data/*_files/ subdirectory.""" + for sub in SAMPLE.iterdir(): + if sub.is_dir() and sub.name.endswith("_files"): + candidate = sub / name + if candidate.exists(): + return candidate + return None + + +def copy_icons(names: set[str]) -> tuple[int, list[str]]: + """Copy referenced icons into ICONS_OUT. Returns (copied, missing).""" + copied = 0 + missing: list[str] = [] + for n in names: + src = find_icon_source(n) + if not src: + missing.append(n) + continue + dst = ICONS_OUT / n + if not dst.exists() or src.stat().st_size != dst.stat().st_size: + shutil.copy2(src, dst) + copied += 1 + return copied, missing # ---------- generic extractor ---------- @@ -391,6 +423,30 @@ def main(): } ) + # ---------- copy referenced icon webps ---------- + icon_names: set[str] = set() + for cls_name, cls_id in classes: + path = OUT / f"skills-{cls_id}.json" + if path.exists(): + tree = json.loads(path.read_text()) + for n in tree["nodes"]: + if n.get("icon"): + icon_names.add(n["icon"]) + for spec in specs: + slug = spec.lower() + spec_data = json.loads((OUT / f"spec-{slug}.json").read_text()) + for r in spec_data["rows"]: + for p in r.get("perks", []): + if p.get("icon"): + icon_names.add(p["icon"]) + copied, missing = copy_icons(icon_names) + manifest["icons"] = { + "directory": "frontend/public/icons", + "served_at": "/icons/", + "count": copied, + "missing": missing, + } + (OUT / "index.json").write_text(json.dumps(manifest, indent=2)) # Print summary @@ -405,6 +461,10 @@ def main(): print(f" faction {fac:9s} tiers: {len(d['tiers'])} cols: {d['header']}") for s in manifest["skills"]: print(f" skills {s['id']:14s} nodes: {s['nodes']:3d} edges: {s['edges']:3d}") + print( + f" icons copied: {manifest['icons']['count']}" + + (f" missing: {len(manifest['icons']['missing'])}" if manifest['icons']['missing'] else "") + ) if __name__ == "__main__":