diff --git a/package-lock.json b/package-lock.json
index a857132b..d99393e0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,7 @@
"@vueform/multiselect": "^2.2.0",
"@vueuse/core": "^6.5.3",
"idb": "^6.1.4",
+ "pinia": "*",
"vue": "^3.2.19",
"vue-i18n": "^9.2.0-beta.9",
"vue-router": "^4.0.11",
@@ -7978,6 +7979,56 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/pinia": {
+ "version": "2.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.0-rc.12.tgz",
+ "integrity": "sha512-1MqXgyiju5fcJBfNO+aU5GP24ZxoaC5bjosSTVnb13fJYu8CfFxCZ/XWwMoD1QnZFq6JGbYigZNCaJDL2tmzQg==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.0.0-beta.18",
+ "vue-demi": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.2.3",
+ "typescript": "^4.4.3",
+ "vue": "^2.6.14 || ^3.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pinia/node_modules/vue-demi": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.11.4.tgz",
+ "integrity": "sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/pirates": {
"version": "4.0.1",
"dev": true,
@@ -16715,6 +16766,23 @@
"version": "2.3.0",
"dev": true
},
+ "pinia": {
+ "version": "2.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.0-rc.12.tgz",
+ "integrity": "sha512-1MqXgyiju5fcJBfNO+aU5GP24ZxoaC5bjosSTVnb13fJYu8CfFxCZ/XWwMoD1QnZFq6JGbYigZNCaJDL2tmzQg==",
+ "requires": {
+ "@vue/devtools-api": "^6.0.0-beta.18",
+ "vue-demi": "*"
+ },
+ "dependencies": {
+ "vue-demi": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.11.4.tgz",
+ "integrity": "sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==",
+ "requires": {}
+ }
+ }
+ },
"pirates": {
"version": "4.0.1",
"dev": true,
diff --git a/package.json b/package.json
index 3e6a8833..28101b45 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"@vueform/multiselect": "^2.2.0",
"@vueuse/core": "^6.5.3",
"idb": "^6.1.4",
+ "pinia": "*",
"vue": "^3.2.19",
"vue-i18n": "^9.2.0-beta.9",
"vue-router": "^4.0.11",
diff --git a/src/components/DamageCalculator.vue b/src/components/DamageCalculator.vue
index 823ea15b..07b258e8 100644
--- a/src/components/DamageCalculator.vue
+++ b/src/components/DamageCalculator.vue
@@ -66,18 +66,22 @@