summaryrefslogtreecommitdiff
path: root/resources/js/classes/utility/ItemEffect.js
diff options
context:
space:
mode:
Diffstat (limited to 'resources/js/classes/utility/ItemEffect.js')
-rw-r--r--resources/js/classes/utility/ItemEffect.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/resources/js/classes/utility/ItemEffect.js b/resources/js/classes/utility/ItemEffect.js
new file mode 100644
index 0000000..aa1c1df
--- /dev/null
+++ b/resources/js/classes/utility/ItemEffect.js
@@ -0,0 +1,51 @@
+class ItemEffect {
+ /**
+ * @type {string}
+ */
+ type = '';
+
+ /**
+ * @type {('increase')}
+ */
+ application = '';
+
+ /**
+ * @type {number}
+ */
+ amount = 0;
+
+ /**
+ * @param {string} effectCode
+ */
+ constructor (effectCode) {
+ if (effectCode.startsWith('heal')) {
+ this.type = 'heal';
+
+ this.amount = parseInt(effectCode.split(' ')[1]);
+ }
+
+ else if (effectCode.startsWith('revive')) {
+ this.type = 'revive';
+
+ this.amount = effectCode.split(' ')[1];
+ }
+
+ else if (effectCode.startsWith('learn_')) {
+ this.type = effectCode.split(' ')[0];
+
+ this.what = effectCode.split(' ')[1];
+ }
+
+ else if (Object.values(StatType).includes(effectCode.split(' ')[1] || '')) {
+ this.type = 'stat';
+
+ this.application = effectCode.split(' ')[0];
+ this.what = effectCode.split(' ')[1].split(',')[0];
+ this.amount = effectCode.split(' ')[1].split(',')[1];
+ }
+
+ else {
+ this.type = effectCode;
+ }
+ }
+}