From 1914e445e736884cd3b6f358656f9890af4c90fb Mon Sep 17 00:00:00 2001
From: Mees Buschman
Date: Wed, 11 Sep 2024 17:13:58 +0200
Subject: [PATCH] Elite ants
---
.eslintcache | 2 +-
src/stores/gameStore.ts | 35 ++++++++++++++-
src/stores/prestigeStore.ts | 79 ++++++++++++++++++++++++++++-----
src/views/AntResources.vue | 51 ++++++++++++++++++++-
src/views/PrestigeShop.vue | 88 +++++++++++++++++++++----------------
5 files changed, 204 insertions(+), 51 deletions(-)
diff --git a/.eslintcache b/.eslintcache
index d7b144b..a0a9811 100644
--- a/.eslintcache
+++ b/.eslintcache
@@ -1 +1 @@
-[{"C:\\Development\\IdleViteVue\\.eslintrc.js":"1","C:\\Development\\IdleViteVue\\postcss.config.js":"2","C:\\Development\\IdleViteVue\\tailwind.config.js":"3","C:\\Development\\IdleViteVue\\vite.config.js":"4","C:\\Development\\IdleViteVue\\src\\App.vue":"5","C:\\Development\\IdleViteVue\\src\\main.ts":"6","C:\\Development\\IdleViteVue\\src\\routes.ts":"7","C:\\Development\\IdleViteVue\\src\\shims-vue.d.ts":"8","C:\\Development\\IdleViteVue\\src\\store.ts":"9","C:\\Development\\IdleViteVue\\src\\components\\AntSimulation.vue":"10","C:\\Development\\IdleViteVue\\src\\views\\Adventure.vue":"11","C:\\Development\\IdleViteVue\\src\\views\\AntResources.vue":"12","C:\\Development\\IdleViteVue\\src\\views\\Home.vue":"13","C:\\Development\\IdleViteVue\\src\\views\\NotFound.vue":"14","C:\\Development\\IdleViteVue\\src\\stores\\adventureStore.ts":"15","C:\\Development\\IdleViteVue\\src\\stores\\gameStore.ts":"16","C:\\Development\\IdleViteVue\\src\\views\\Debugger.vue":"17","C:\\Development\\IdleViteVue\\src\\views\\Inventory.vue":"18","C:\\Development\\IdleViteVue\\src\\stores\\inventoryStore.ts":"19","C:\\Development\\IdleViteVue\\src\\components\\InventoryItem.vue":"20","C:\\Development\\IdleViteVue\\src\\types\\itemRegistry.ts":"21","C:\\Development\\IdleViteVue\\src\\firebase.ts":"22","C:\\Development\\IdleViteVue\\src\\components\\Modal.vue":"23","C:\\Development\\IdleViteVue\\src\\views\\PrestigeShop.vue":"24","C:\\Development\\IdleViteVue\\src\\views\\Settings.vue":"25","C:\\Development\\IdleViteVue\\src\\stores\\prestigeStore.ts":"26"},{"size":758,"mtime":1725657576729},{"size":83,"mtime":1725657576792},{"size":726,"mtime":1725826628130},{"size":177,"mtime":1725657576822},{"size":83,"mtime":1725657506695,"results":"27","hashOfConfig":"28"},{"size":1843,"mtime":1725898066056,"results":"29","hashOfConfig":"28"},{"size":272,"mtime":1725660566335,"results":"30","hashOfConfig":"28"},{"size":120,"mtime":1725474178300,"results":"31","hashOfConfig":"28"},{"size":90,"mtime":1725474178300,"results":"32","hashOfConfig":"28"},{"size":14778,"mtime":1725824992912,"results":"33","hashOfConfig":"28"},{"size":4523,"mtime":1725981855871,"results":"34","hashOfConfig":"28"},{"size":14557,"mtime":1725910395274,"results":"35","hashOfConfig":"28"},{"size":12608,"mtime":1725985763851,"results":"36","hashOfConfig":"28"},{"size":436,"mtime":1725474178301,"results":"37","hashOfConfig":"28"},{"size":18411,"mtime":1725987396788,"results":"38","hashOfConfig":"28"},{"size":23921,"mtime":1725987496709,"results":"39","hashOfConfig":"28"},{"size":3251,"mtime":1725899290112,"results":"40","hashOfConfig":"28"},{"size":5723,"mtime":1725987645837,"results":"41","hashOfConfig":"28"},{"size":6377,"mtime":1725987624231,"results":"42","hashOfConfig":"28"},{"size":1014,"mtime":1725986809266,"results":"43","hashOfConfig":"28"},{"size":4070,"mtime":1725900842399,"results":"44","hashOfConfig":"28"},{"size":1173,"mtime":1725903219799,"results":"45","hashOfConfig":"28"},{"size":1290,"mtime":1725801294724},{"size":5672,"mtime":1725895682524},{"size":1423,"mtime":1725824134747},{"size":11069,"mtime":1725983656715,"results":"46","hashOfConfig":"28"},{"filePath":"47","messages":"48","suppressedMessages":"49","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"adzkch",{"filePath":"50","messages":"51","suppressedMessages":"52","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"53","messages":"54","suppressedMessages":"55","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"56","messages":"57","suppressedMessages":"58","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"59","messages":"60","suppressedMessages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"62","messages":"63","suppressedMessages":"64","errorCount":0,"fatalErrorCount":0,"warningCount":9,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"65","messages":"66","suppressedMessages":"67","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","suppressedMessages":"70","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\Development\\IdleViteVue\\src\\App.vue",[],[],"C:\\Development\\IdleViteVue\\src\\main.ts",[],[],"C:\\Development\\IdleViteVue\\src\\routes.ts",[],[],"C:\\Development\\IdleViteVue\\src\\shims-vue.d.ts",[],[],"C:\\Development\\IdleViteVue\\src\\store.ts",[],[],"C:\\Development\\IdleViteVue\\src\\components\\AntSimulation.vue",["104","105","106","107","108","109","110","111","112"],[],"C:\\Development\\IdleViteVue\\src\\views\\Adventure.vue",[],[],"C:\\Development\\IdleViteVue\\src\\views\\AntResources.vue",["113","114"],[],"C:\\Development\\IdleViteVue\\src\\views\\Home.vue",[],[],"C:\\Development\\IdleViteVue\\src\\views\\NotFound.vue",[],[],"C:\\Development\\IdleViteVue\\src\\stores\\adventureStore.ts",[],[],"C:\\Development\\IdleViteVue\\src\\stores\\gameStore.ts",["115","116"],[],"C:\\Development\\IdleViteVue\\src\\views\\Debugger.vue",[],[],"C:\\Development\\IdleViteVue\\src\\views\\Inventory.vue",["117","118"],[],"C:\\Development\\IdleViteVue\\src\\stores\\inventoryStore.ts",[],[],"C:\\Development\\IdleViteVue\\src\\components\\InventoryItem.vue",["119"],[],"C:\\Development\\IdleViteVue\\src\\types\\itemRegistry.ts",[],[],"C:\\Development\\IdleViteVue\\src\\firebase.ts",["120","121","122"],[],"C:\\Development\\IdleViteVue\\src\\stores\\prestigeStore.ts",[],[],{"ruleId":"123","severity":1,"message":"124","line":252,"column":49,"nodeType":"125","messageId":"126","endLine":252,"endColumn":62,"suggestions":"127"},{"ruleId":"123","severity":1,"message":"124","line":254,"column":62,"nodeType":"125","messageId":"126","endLine":254,"endColumn":75,"suggestions":"128"},{"ruleId":"123","severity":1,"message":"124","line":256,"column":49,"nodeType":"125","messageId":"126","endLine":256,"endColumn":62,"suggestions":"129"},{"ruleId":"123","severity":1,"message":"124","line":258,"column":62,"nodeType":"125","messageId":"126","endLine":258,"endColumn":75,"suggestions":"130"},{"ruleId":"123","severity":1,"message":"124","line":281,"column":3,"nodeType":"125","messageId":"126","endLine":281,"endColumn":13,"suggestions":"131"},{"ruleId":"123","severity":1,"message":"124","line":294,"column":3,"nodeType":"125","messageId":"126","endLine":294,"endColumn":13,"suggestions":"132"},{"ruleId":"123","severity":1,"message":"124","line":295,"column":3,"nodeType":"125","messageId":"126","endLine":295,"endColumn":13,"suggestions":"133"},{"ruleId":"123","severity":1,"message":"124","line":295,"column":29,"nodeType":"125","messageId":"126","endLine":295,"endColumn":42,"suggestions":"134"},{"ruleId":"123","severity":1,"message":"124","line":295,"column":50,"nodeType":"125","messageId":"126","endLine":295,"endColumn":63,"suggestions":"135"},{"ruleId":"136","severity":1,"message":"137","line":313,"column":9,"nodeType":"138","messageId":"139","endLine":313,"endColumn":12},{"ruleId":"136","severity":1,"message":"140","line":314,"column":8,"nodeType":"138","messageId":"139","endLine":314,"endColumn":13},{"ruleId":"136","severity":1,"message":"141","line":165,"column":17,"nodeType":"138","messageId":"139","endLine":165,"endColumn":30},{"ruleId":"136","severity":1,"message":"142","line":356,"column":15,"nodeType":"138","messageId":"139","endLine":356,"endColumn":25},{"ruleId":"136","severity":1,"message":"143","line":71,"column":15,"nodeType":"138","messageId":"139","endLine":71,"endColumn":21},{"ruleId":"144","severity":1,"message":"145","line":110,"column":18,"nodeType":"146","messageId":"147","endLine":110,"endColumn":21,"suggestions":"148"},{"ruleId":"136","severity":1,"message":"149","line":22,"column":9,"nodeType":"138","messageId":"139","endLine":22,"endColumn":17},{"ruleId":"136","severity":1,"message":"150","line":2,"column":24,"nodeType":"138","messageId":"139","endLine":2,"endColumn":34},{"ruleId":"136","severity":1,"message":"151","line":4,"column":10,"nodeType":"138","messageId":"139","endLine":4,"endColumn":28},{"ruleId":"136","severity":1,"message":"152","line":4,"column":30,"nodeType":"138","messageId":"139","endLine":4,"endColumn":49},"@typescript-eslint/no-non-null-assertion","Forbidden non-null assertion.","TSNonNullExpression","noNonNull",["153"],["154"],["155"],["156"],["157"],["158"],["159"],["160"],["161"],"@typescript-eslint/no-unused-vars","'ref' is defined but never used.","Identifier","unusedVar","'Modal' is defined but never used.","'prestigeStore' is assigned a value but never used.","'credential' is assigned a value but never used.","'height' is assigned a value but never used.","@typescript-eslint/no-explicit-any","Unexpected any. Specify a different type.","TSAnyKeyword","unexpectedAny",["162","163"],"'useToast' is defined but never used.","'collection' is defined but never used.","'initializeAppCheck' is defined but never used.","'ReCaptchaV3Provider' is defined but never used.",{"messageId":"164","fix":"165","desc":"166"},{"messageId":"164","fix":"167","desc":"166"},{"messageId":"164","fix":"168","desc":"166"},{"messageId":"164","fix":"169","desc":"166"},{"messageId":"164","fix":"170","desc":"166"},{"messageId":"164","fix":"171","desc":"166"},{"messageId":"164","fix":"172","desc":"166"},{"messageId":"164","fix":"173","desc":"166"},{"messageId":"164","fix":"174","desc":"166"},{"messageId":"175","fix":"176","desc":"177"},{"messageId":"178","fix":"179","desc":"180"},"suggestOptionalChain",{"range":"181","text":"182"},"Consider using the optional chain operator `?.` instead. This operator includes runtime checks, so it is safer than the compile-only non-null assertion operator.",{"range":"183","text":"182"},{"range":"184","text":"182"},{"range":"185","text":"182"},{"range":"186","text":"182"},{"range":"187","text":"182"},{"range":"188","text":"182"},{"range":"189","text":"182"},{"range":"190","text":"182"},"suggestUnknown",{"range":"191","text":"192"},"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.","suggestNever",{"range":"191","text":"193"},"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.",[8615,8616],"?",[8758,8759],[8853,8854],[8992,8993],[9678,9679],[10057,10058],[10112,10113],[10141,10142],[10162,10163],[3553,3556],"unknown","never"]
\ No newline at end of file
+[{"C:\\Development\\IdleViteVue\\.eslintrc.js":"1","C:\\Development\\IdleViteVue\\postcss.config.js":"2","C:\\Development\\IdleViteVue\\tailwind.config.js":"3","C:\\Development\\IdleViteVue\\vite.config.js":"4","C:\\Development\\IdleViteVue\\src\\App.vue":"5","C:\\Development\\IdleViteVue\\src\\main.ts":"6","C:\\Development\\IdleViteVue\\src\\routes.ts":"7","C:\\Development\\IdleViteVue\\src\\shims-vue.d.ts":"8","C:\\Development\\IdleViteVue\\src\\store.ts":"9","C:\\Development\\IdleViteVue\\src\\components\\AntSimulation.vue":"10","C:\\Development\\IdleViteVue\\src\\views\\Adventure.vue":"11","C:\\Development\\IdleViteVue\\src\\views\\AntResources.vue":"12","C:\\Development\\IdleViteVue\\src\\views\\Home.vue":"13","C:\\Development\\IdleViteVue\\src\\views\\NotFound.vue":"14","C:\\Development\\IdleViteVue\\src\\stores\\adventureStore.ts":"15","C:\\Development\\IdleViteVue\\src\\stores\\gameStore.ts":"16","C:\\Development\\IdleViteVue\\src\\views\\Debugger.vue":"17","C:\\Development\\IdleViteVue\\src\\views\\Inventory.vue":"18","C:\\Development\\IdleViteVue\\src\\stores\\inventoryStore.ts":"19","C:\\Development\\IdleViteVue\\src\\components\\InventoryItem.vue":"20","C:\\Development\\IdleViteVue\\src\\types\\itemRegistry.ts":"21","C:\\Development\\IdleViteVue\\src\\firebase.ts":"22","C:\\Development\\IdleViteVue\\src\\components\\Modal.vue":"23","C:\\Development\\IdleViteVue\\src\\views\\PrestigeShop.vue":"24","C:\\Development\\IdleViteVue\\src\\views\\Settings.vue":"25","C:\\Development\\IdleViteVue\\src\\stores\\prestigeStore.ts":"26"},{"size":758,"mtime":1725657576729},{"size":83,"mtime":1725657576792},{"size":726,"mtime":1725826628130},{"size":177,"mtime":1725657576822},{"size":83,"mtime":1725657506695,"results":"27","hashOfConfig":"28"},{"size":1843,"mtime":1725898066056,"results":"29","hashOfConfig":"28"},{"size":272,"mtime":1725660566335,"results":"30","hashOfConfig":"28"},{"size":120,"mtime":1725474178300,"results":"31","hashOfConfig":"28"},{"size":90,"mtime":1725474178300,"results":"32","hashOfConfig":"28"},{"size":14778,"mtime":1725824992912,"results":"33","hashOfConfig":"28"},{"size":4523,"mtime":1725981855871,"results":"34","hashOfConfig":"28"},{"size":14626,"mtime":1726061889001,"results":"35","hashOfConfig":"28"},{"size":12638,"mtime":1726058787031,"results":"36","hashOfConfig":"28"},{"size":436,"mtime":1725474178301,"results":"37","hashOfConfig":"28"},{"size":18620,"mtime":1726059122921,"results":"38","hashOfConfig":"28"},{"size":25214,"mtime":1726061943882,"results":"39","hashOfConfig":"28"},{"size":4051,"mtime":1726063245524,"results":"40","hashOfConfig":"28"},{"size":6359,"mtime":1726062914087,"results":"41","hashOfConfig":"28"},{"size":6377,"mtime":1725987624231,"results":"42","hashOfConfig":"28"},{"size":1434,"mtime":1726063071378,"results":"43","hashOfConfig":"28"},{"size":4066,"mtime":1726063372838,"results":"44","hashOfConfig":"28"},{"size":1173,"mtime":1725903219799,"results":"45","hashOfConfig":"28"},{"size":1290,"mtime":1725801294724},{"size":6785,"mtime":1726062018255},{"size":1423,"mtime":1725824134747},{"size":11402,"mtime":1726059547657,"results":"46","hashOfConfig":"28"},{"filePath":"47","messages":"48","suppressedMessages":"49","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"adzkch",{"filePath":"50","messages":"51","suppressedMessages":"52","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"53","messages":"54","suppressedMessages":"55","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"56","messages":"57","suppressedMessages":"58","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"59","messages":"60","suppressedMessages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"62","messages":"63","suppressedMessages":"64","errorCount":0,"fatalErrorCount":0,"warningCount":9,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"65","messages":"66","suppressedMessages":"67","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","suppressedMessages":"70","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\Development\\IdleViteVue\\src\\App.vue",[],[],"C:\\Development\\IdleViteVue\\src\\main.ts",[],[],"C:\\Development\\IdleViteVue\\src\\routes.ts",[],[],"C:\\Development\\IdleViteVue\\src\\shims-vue.d.ts",[],[],"C:\\Development\\IdleViteVue\\src\\store.ts",[],[],"C:\\Development\\IdleViteVue\\src\\components\\AntSimulation.vue",["104","105","106","107","108","109","110","111","112"],[],"C:\\Development\\IdleViteVue\\src\\views\\Adventure.vue",[],[],"C:\\Development\\IdleViteVue\\src\\views\\AntResources.vue",["113","114"],[],"C:\\Development\\IdleViteVue\\src\\views\\Home.vue",[],[],"C:\\Development\\IdleViteVue\\src\\views\\NotFound.vue",[],[],"C:\\Development\\IdleViteVue\\src\\stores\\adventureStore.ts",[],[],"C:\\Development\\IdleViteVue\\src\\stores\\gameStore.ts",["115","116"],[],"C:\\Development\\IdleViteVue\\src\\views\\Debugger.vue",[],[],"C:\\Development\\IdleViteVue\\src\\views\\Inventory.vue",["117","118"],[],"C:\\Development\\IdleViteVue\\src\\stores\\inventoryStore.ts",[],[],"C:\\Development\\IdleViteVue\\src\\components\\InventoryItem.vue",["119"],[],"C:\\Development\\IdleViteVue\\src\\types\\itemRegistry.ts",[],[],"C:\\Development\\IdleViteVue\\src\\firebase.ts",["120","121","122"],[],"C:\\Development\\IdleViteVue\\src\\stores\\prestigeStore.ts",[],[],{"ruleId":"123","severity":1,"message":"124","line":252,"column":49,"nodeType":"125","messageId":"126","endLine":252,"endColumn":62,"suggestions":"127"},{"ruleId":"123","severity":1,"message":"124","line":254,"column":62,"nodeType":"125","messageId":"126","endLine":254,"endColumn":75,"suggestions":"128"},{"ruleId":"123","severity":1,"message":"124","line":256,"column":49,"nodeType":"125","messageId":"126","endLine":256,"endColumn":62,"suggestions":"129"},{"ruleId":"123","severity":1,"message":"124","line":258,"column":62,"nodeType":"125","messageId":"126","endLine":258,"endColumn":75,"suggestions":"130"},{"ruleId":"123","severity":1,"message":"124","line":281,"column":3,"nodeType":"125","messageId":"126","endLine":281,"endColumn":13,"suggestions":"131"},{"ruleId":"123","severity":1,"message":"124","line":294,"column":3,"nodeType":"125","messageId":"126","endLine":294,"endColumn":13,"suggestions":"132"},{"ruleId":"123","severity":1,"message":"124","line":295,"column":3,"nodeType":"125","messageId":"126","endLine":295,"endColumn":13,"suggestions":"133"},{"ruleId":"123","severity":1,"message":"124","line":295,"column":29,"nodeType":"125","messageId":"126","endLine":295,"endColumn":42,"suggestions":"134"},{"ruleId":"123","severity":1,"message":"124","line":295,"column":50,"nodeType":"125","messageId":"126","endLine":295,"endColumn":63,"suggestions":"135"},{"ruleId":"136","severity":1,"message":"137","line":328,"column":9,"nodeType":"138","messageId":"139","endLine":328,"endColumn":12},{"ruleId":"136","severity":1,"message":"140","line":329,"column":8,"nodeType":"138","messageId":"139","endLine":329,"endColumn":13},{"ruleId":"136","severity":1,"message":"141","line":174,"column":17,"nodeType":"138","messageId":"139","endLine":174,"endColumn":30},{"ruleId":"136","severity":1,"message":"142","line":378,"column":15,"nodeType":"138","messageId":"139","endLine":378,"endColumn":25},{"ruleId":"136","severity":1,"message":"143","line":71,"column":15,"nodeType":"138","messageId":"139","endLine":71,"endColumn":21},{"ruleId":"144","severity":1,"message":"145","line":110,"column":18,"nodeType":"146","messageId":"147","endLine":110,"endColumn":21,"suggestions":"148"},{"ruleId":"136","severity":1,"message":"149","line":27,"column":9,"nodeType":"138","messageId":"139","endLine":27,"endColumn":17},{"ruleId":"136","severity":1,"message":"150","line":2,"column":24,"nodeType":"138","messageId":"139","endLine":2,"endColumn":34},{"ruleId":"136","severity":1,"message":"151","line":4,"column":10,"nodeType":"138","messageId":"139","endLine":4,"endColumn":28},{"ruleId":"136","severity":1,"message":"152","line":4,"column":30,"nodeType":"138","messageId":"139","endLine":4,"endColumn":49},"@typescript-eslint/no-non-null-assertion","Forbidden non-null assertion.","TSNonNullExpression","noNonNull",["153"],["154"],["155"],["156"],["157"],["158"],["159"],["160"],["161"],"@typescript-eslint/no-unused-vars","'ref' is defined but never used.","Identifier","unusedVar","'Modal' is defined but never used.","'prestigeStore' is assigned a value but never used.","'credential' is assigned a value but never used.","'height' is assigned a value but never used.","@typescript-eslint/no-explicit-any","Unexpected any. Specify a different type.","TSAnyKeyword","unexpectedAny",["162","163"],"'useToast' is defined but never used.","'collection' is defined but never used.","'initializeAppCheck' is defined but never used.","'ReCaptchaV3Provider' is defined but never used.",{"messageId":"164","fix":"165","desc":"166"},{"messageId":"164","fix":"167","desc":"166"},{"messageId":"164","fix":"168","desc":"166"},{"messageId":"164","fix":"169","desc":"166"},{"messageId":"164","fix":"170","desc":"166"},{"messageId":"164","fix":"171","desc":"166"},{"messageId":"164","fix":"172","desc":"166"},{"messageId":"164","fix":"173","desc":"166"},{"messageId":"164","fix":"174","desc":"166"},{"messageId":"175","fix":"176","desc":"177"},{"messageId":"178","fix":"179","desc":"180"},"suggestOptionalChain",{"range":"181","text":"182"},"Consider using the optional chain operator `?.` instead. This operator includes runtime checks, so it is safer than the compile-only non-null assertion operator.",{"range":"183","text":"182"},{"range":"184","text":"182"},{"range":"185","text":"182"},{"range":"186","text":"182"},{"range":"187","text":"182"},{"range":"188","text":"182"},{"range":"189","text":"182"},{"range":"190","text":"182"},"suggestUnknown",{"range":"191","text":"192"},"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.","suggestNever",{"range":"191","text":"193"},"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.",[8615,8616],"?",[8758,8759],[8853,8854],[8992,8993],[9678,9679],[10057,10058],[10112,10113],[10141,10142],[10162,10163],[3553,3556],"unknown","never"]
\ No newline at end of file
diff --git a/src/stores/gameStore.ts b/src/stores/gameStore.ts
index 49a6754..0ba1032 100644
--- a/src/stores/gameStore.ts
+++ b/src/stores/gameStore.ts
@@ -14,6 +14,9 @@ export const useGameStore = defineStore('gameStore', {
loggedIn: false,
larvae: 0,
ants: 0,
+ eliteAnts: 0,
+
+ eliteAntsUnlocked: false,
larvaeAccumulator: 0, // To accumulate fractional larvae production
seedAccumulator: 0, // To accumulate fractional seed production
@@ -27,12 +30,14 @@ export const useGameStore = defineStore('gameStore', {
maxLarvae: 10, // Initial larvae storage capacity
maxAnts: 100, // Initial ant storage capacity
maxQueens: 2, // Initial queen storage capacity
+ maxEliteAnts: 1,
// Initial resource caps
initialMaxSeeds: 1000,
initialMaxLarvae: 10,
initialMaxAnts: 100,
initialMaxQueens: 2,
+ initialMaxEliteAnts: 1,
// Upgrade variables
seedStorageUpgradeCost: 500, // Initial cost to upgrade seed storage
@@ -47,10 +52,14 @@ export const useGameStore = defineStore('gameStore', {
collectionRatePerAnt: 60, // Seeds collected per ant per minute
seedCostPerLarva: 100, // Cost in seeds to create one larva
seedCostPerAnt: 50, // Cost in seeds to create one ant
+ seedCostPerEliteAnt: 100,
larvaCostPerAnt: 1, // Cost in larvae to create one ant
+ larvaCostPerEliteAnt: 5,
antCostPerQueen: 100, // Ants required to buy one queen
seedCostPerQueen: 250, // Seeds required to buy one queen
+ multiplierPerEliteAnt: 1.5,
+
// Adventure-related variables
attackPerAnt: 2, // Attack value per ant
healthPerAnt: 10, // Health value per ant
@@ -67,7 +76,7 @@ export const useGameStore = defineStore('gameStore', {
// Calculate larvae production per second for real-time updates
larvaePerSecond: (state) => (state.queens * state.larvaeProductionRate) / 60,
// Calculate seed production per second based on ants
- seedsPerSecond: (state) => (state.collectionRatePerAnt * state.ants) / 60,
+ seedsPerSecond: (state) => (state.collectionRatePerAnt * state.ants * (state.eliteAnts * state.multiplierPerEliteAnt)) / 60,
},
actions: {
@@ -111,6 +120,21 @@ export const useGameStore = defineStore('gameStore', {
this.ants += maxAntsToCreate
}
},
+ // Function to create ants using larvae and seeds
+ createEliteAnts() {
+ if (this.larvae >= this.larvaCostPerEliteAnt && this.seeds >= this.seedCostPerEliteAnt && this.eliteAnts < this.maxEliteAnts) {
+ this.eliteAnts += 1
+ this.larvae -= this.larvaCostPerEliteAnt
+ this.seeds -= this.seedCostPerEliteAnt
+ return true
+ }
+
+ return false
+ },
+ // Create max ants based on available larvae and seeds
+ createEliteMaxAnts() {
+ while (this.createEliteAnts()) {}
+ },
// Function to buy more queens
buyQueen() {
if (this.ants >= this.antCostPerQueen && this.seeds >= this.seedCostPerQueen && this.queens < this.maxQueens) {
@@ -446,12 +470,14 @@ export const useGameStore = defineStore('gameStore', {
const prestigeStore = usePrestigeStore()
return {
ants: this.ants,
+ eliteAnts: this.eliteAnts,
seeds: this.seeds,
queens: this.queens,
larvae: this.larvae,
maxSeeds: this.maxSeeds,
maxLarvae: this.maxLarvae,
maxAnts: this.maxAnts,
+ maxEliteAnts: this.maxEliteAnts,
maxQueens: this.maxQueens,
seedStorageUpgradeCost: this.seedStorageUpgradeCost,
larvaeStorageUpgradeCost: this.larvaeStorageUpgradeCost,
@@ -519,12 +545,14 @@ export const useGameStore = defineStore('gameStore', {
loadStateFromFirebase(savedState) {
this.ants = savedState.ants ?? this.ants
+ this.eliteAnts = savedState.eliteAnts ?? this.eliteAnts
this.seeds = savedState.seeds ?? this.seeds
this.queens = savedState.queens ?? this.queens
this.larvae = savedState.larvae ?? this.larvae
this.maxSeeds = savedState.maxSeeds ?? this.maxSeeds
this.maxLarvae = savedState.maxLarvae ?? this.maxLarvae
this.maxAnts = savedState.maxAnts ?? this.maxAnts
+ this.maxEliteAnts = savedState.maxEliteAnts ?? this.maxEliteAnts
this.maxQueens = savedState.maxQueens ?? this.maxQueens
this.seedStorageUpgradeCost = savedState.seedStorageUpgradeCost ?? this.seedStorageUpgradeCost
this.larvaeStorageUpgradeCost = savedState.larvaeStorageUpgradeCost ?? this.larvaeStorageUpgradeCost
@@ -537,6 +565,8 @@ export const useGameStore = defineStore('gameStore', {
const prestigeStore = usePrestigeStore()
prestigeStore.loadPrestigeState(savedState)
+
+ this.eliteAntsUnlocked = prestigeStore.upgradePurchased('eliteAnts')
},
async loadOtherStoreStates() {
@@ -594,6 +624,7 @@ export const useGameStore = defineStore('gameStore', {
this.ants = 0
this.seeds = 10
this.queens = 1
+ this.eliteAnts = 0
this.larvaeProductionRate = 1
this.collectionRatePerAnt = 60
@@ -601,6 +632,7 @@ export const useGameStore = defineStore('gameStore', {
this.maxSeeds = this.initialMaxSeeds
this.maxLarvae = this.initialMaxLarvae
this.maxAnts = this.initialMaxAnts
+ this.maxEliteAnts = this.initialMaxEliteAnts
this.maxQueens = this.initialMaxQueens
this.seedStorageUpgradeCost = 500
@@ -626,6 +658,7 @@ export const useGameStore = defineStore('gameStore', {
resetDebugState() {
const prestigeStore = usePrestigeStore()
prestigeStore.prestigePoints = 0
+ prestigeStore.timesPrestiged = 0
prestigeStore.purchasedUpgrades = []
this.healthPerAnt = 10
diff --git a/src/stores/prestigeStore.ts b/src/stores/prestigeStore.ts
index 392f874..21429bf 100644
--- a/src/stores/prestigeStore.ts
+++ b/src/stores/prestigeStore.ts
@@ -1,6 +1,7 @@
import {defineStore} from 'pinia'
import {useGameStore} from './gameStore'
import {useInventoryStore} from './inventoryStore'
+import {useToast} from 'vue-toast-notification'
interface PrestigeShopItem {
@@ -10,7 +11,8 @@ interface PrestigeShopItem {
cost: number
oneTimePurchase?: boolean
applyOnPrestige?: boolean
- category?: 'auto' | 'production' | 'storage' | 'combat' | 'expansion'
+ category?: 'auto' | 'production' | 'storage' | 'combat' | 'expansion',
+ unlockedWhen?: () => boolean // Function to determine if the upgrade is unlocked
}
export const usePrestigeStore = defineStore('prestige', {
@@ -58,7 +60,15 @@ export const usePrestigeStore = defineStore('prestige', {
{
id: 'betterAnts',
name: 'Stronger Ants',
- description: 'Increase ant strength by 10%',
+ description: 'Increase ants army strength by 10%',
+ cost: 50,
+ applyOnPrestige: false,
+ category: 'combat',
+ },
+ {
+ id: 'betterAntsDefense',
+ name: 'Stronger Ants Defense',
+ description: 'Increase ants army defense by 10%',
cost: 50,
applyOnPrestige: false,
category: 'combat',
@@ -71,6 +81,18 @@ export const usePrestigeStore = defineStore('prestige', {
applyOnPrestige: true,
category: 'expansion',
},
+ {
+ id: 'eliteAnts',
+ name: 'Elite Ants',
+ description: 'Unlock elite ants',
+ cost: 2500,
+ applyOnPrestige: true,
+ oneTimePurchase: true,
+ category: 'expansion',
+ unlockedWhen: () => {
+ return usePrestigeStore().timesPrestiged >= 5
+ },
+ },
{
id: 'storageUpgrade',
name: 'Storage Upgrade',
@@ -78,6 +100,17 @@ export const usePrestigeStore = defineStore('prestige', {
cost: 5,
category: 'storage',
},
+ {
+ id: 'eliteAntsStoreUpgrade',
+ name: 'Elite Ants Store Upgrade',
+ description: 'Increase the amount of elite ants you can store by 100%',
+ cost: 100,
+ applyOnPrestige: false,
+ category: 'storage',
+ unlockedWhen: () => {
+ return usePrestigeStore().timesPrestiged >= 5
+ },
+ },
{
id: 'productionBoost',
name: 'Production Boost',
@@ -154,6 +187,11 @@ export const usePrestigeStore = defineStore('prestige', {
this.prestigePoints += earnedPrestigePoints
this.timesPrestiged += 1
+ if (this.timesPrestiged === 5) {
+ const $toast = useToast()
+ $toast.info('You have unlocked the Elite Ants upgrade in the prestige shop!')
+ }
+
// Reset the game state for prestige without deleting the Firestore doc
gameStore.resetLocalGameState({isDebug: false})
@@ -186,9 +224,10 @@ export const usePrestigeStore = defineStore('prestige', {
return false
},
buyMaxUpgrade(upgradeId: string): boolean {
- while (this.buyUpgrade(upgradeId)) {}
+ while (this.buyUpgrade(upgradeId)) {
+ }
- return true
+ return true
},
// Apply a purchased upgrade
applyPrestigeUpgrade(upgradeId, fromPrestige = false) {
@@ -210,6 +249,9 @@ export const usePrestigeStore = defineStore('prestige', {
gameStore.maxAnts *= 2 // Increase ant storage
gameStore.maxQueens *= 1.5 // Increase queen storage
},
+ eliteAntsStoreUpgrade: () => {
+ gameStore.maxEliteAnts *= 2 // Increase elite ant storage
+ },
productionBoost: () => {
gameStore.larvaeProductionRate *= 1.2
gameStore.collectionRatePerAnt *= 1.2
@@ -224,6 +266,10 @@ export const usePrestigeStore = defineStore('prestige', {
gameStore.attackPerAnt *= 1.1
gameStore.setupAdventureStats()
},
+ betterAntsDefense: () => {
+ gameStore.defensePerAnt *= 1.1
+ gameStore.setupAdventureStats()
+ },
autoAnts: () => {
this.autoAntCreation = true
},
@@ -237,6 +283,9 @@ export const usePrestigeStore = defineStore('prestige', {
gameStore.ants += 1
this.antsFromPrestigeShop += 1
},
+ eliteAnts: () => {
+ gameStore.eliteAntsUnlocked = true
+ },
}
// Execute the appropriate upgrade or log an error if the upgrade ID is invalid
@@ -258,23 +307,28 @@ export const usePrestigeStore = defineStore('prestige', {
getPrestigeState() {
return {
prestigePoints: this.prestigePoints,
+ timesPrestiged: this.timesPrestiged,
purchasedUpgrades: this.purchasedUpgrades,
storagePrestigeCost: this.prestigeShop.find(u => u.id === 'storageUpgrade')?.cost ?? 5,
+ eliteAntsStoreUpgradeCost: this.prestigeShop.find(u => u.id === 'eliteAntsStoreUpgrade')?.cost ?? 100,
productionPrestigeCost: this.prestigeShop.find(u => u.id === 'productionBoost')?.cost ?? 10,
queenPrestigeCost: this.prestigeShop.find(u => u.id === 'queenEfficiency')?.cost ?? 15,
betterAntsPrestigeCost: this.prestigeShop.find(u => u.id === 'betterAnts')?.cost ?? 50,
+ betterAntsDefensePrestigeCost: this.prestigeShop.find(u => u.id === 'betterAntsDefense')?.cost ?? 50,
startWithAntsPrestigeCost: this.prestigeShop.find(u => u.id === 'startWithAnts')?.cost ?? 15,
autoLarvaeCreation: this.autoLarvaeCreation,
autoAntCreation: this.autoAntCreation,
autoQueenCreation: this.autoQueenCreation,
autoSeedStorageUpgrade: this.autoSeedStorageUpgrade,
+ eliteAntsUnlocked: this.upgradePurchased('eliteAnts'),
}
},
loadPrestigeState(savedState) {
this.prestigePoints = savedState.prestigePoints ?? this.prestigePoints
+ this.timesPrestiged = savedState.timesPrestiged ?? this.timesPrestiged
this.purchasedUpgrades = savedState.purchasedUpgrades ?? this.purchasedUpgrades
this.autoLarvaeCreation = savedState.autoLarvaeCreation ?? this.autoLarvaeCreation
@@ -284,27 +338,30 @@ export const usePrestigeStore = defineStore('prestige', {
// Load prestige shop costs
this.prestigeShop.forEach(shop => {
- if (shop.id === 'storageUpgrade') shop.cost = savedState.storagePrestigeCost
- if (shop.id === 'productionBoost') shop.cost = savedState.productionPrestigeCost
- if (shop.id === 'queenEfficiency') shop.cost = savedState.queenPrestigeCost
- if (shop.id === 'betterAnts') shop.cost = savedState.betterAntsPrestigeCost
- if (shop.id === 'startWithAnts') shop.cost = savedState.startWithAntsPrestigeCost
+ if (shop.id === 'storageUpgrade') shop.cost = savedState.storagePrestigeCost ?? 5
+ if (shop.id === 'eliteAntsStoreUpgrade') shop.cost = savedState.eliteAntsStoreUpgradeCost ?? 100
+ if (shop.id === 'productionBoost') shop.cost = savedState.productionPrestigeCost ?? 10
+ if (shop.id === 'queenEfficiency') shop.cost = savedState.queenPrestigeCost ?? 15
+ if (shop.id === 'betterAnts') shop.cost = savedState.betterAntsPrestigeCost ?? 50
+ if (shop.id === 'betterAntsDefense') shop.cost = savedState.betterAntsDefensePrestigeCost ?? 50
+ if (shop.id === 'startWithAnts') shop.cost = savedState.startWithAntsPrestigeCost ?? 15
})
},
resetPrestigeShopCosts() {
this.prestigeShop.forEach(shop => {
if (shop.id === 'storageUpgrade') shop.cost = 5
+ if (shop.id === 'eliteAntsStoreUpgrade') shop.cost = 100
if (shop.id === 'productionBoost') shop.cost = 10
if (shop.id === 'queenEfficiency') shop.cost = 15
if (shop.id === 'autoLarvae') shop.cost = 10
if (shop.id === 'betterAnts') shop.cost = 50
+ if (shop.id === 'betterAntsDefense') shop.cost = 50
if (shop.id === 'autoAnts') shop.cost = 20
if (shop.id === 'autoQueens') shop.cost = 20
if (shop.id === 'startWithAnts') shop.cost = 15
+ if (shop.id === 'eliteAnts') shop.cost = 2500
})
},
-
-
},
})
diff --git a/src/views/AntResources.vue b/src/views/AntResources.vue
index 2708255..52ac41d 100644
--- a/src/views/AntResources.vue
+++ b/src/views/AntResources.vue
@@ -5,7 +5,7 @@
I will be adding more features and balancing the game over time.
- Also, any progress made may be reset at any time.
+ Also, any progress made may be reset at any time during current development stage.
@@ -240,6 +240,55 @@
+
+
+
+
+ Elite Ants
+
+
+ Elite Ants help the ants to collect resources faster.
+
+
+
+
+
+ Count: {{ formatNumber(gameStore.eliteAnts, 0) }}/{{ formatNumber(gameStore.maxEliteAnts, 0) }}
+
+
+
+
+ Create Ant ({{ formatNumber(gameStore.seedCostPerEliteAnt) }} seeds, {{
+ formatNumber(gameStore.larvaCostPerEliteAnt)
+ }} larvae)
+
+
+ Max
+
+
+
+
+
+
+ LOCKED
+
+
+
diff --git a/src/views/PrestigeShop.vue b/src/views/PrestigeShop.vue
index 77dc0ea..7537bb7 100644
--- a/src/views/PrestigeShop.vue
+++ b/src/views/PrestigeShop.vue
@@ -20,10 +20,12 @@
- Seeds: Prestige points start at 2000 seeds. After that, points increase slowly on a logarithmic scale.
+ Seeds: Prestige points start at 2000 seeds. After that, points increase slowly on a
+ logarithmic scale.
- Ants: For every 50 ants (excluding those bought via the Prestige Shop), you earn 1 prestige point.
+ Ants: For every 50 ants (excluding those bought via the Prestige Shop), you earn 1 prestige
+ point.
Queens: After the first queen, every additional queen gives 2 prestige points.
@@ -31,7 +33,7 @@
-
Prestige Points: {{ formatNumber(prestigeStore.prestigePoints) }}
+
Prestige Points: {{ formatNumber(prestigeStore.prestigePoints) }} Prestige Times: {{ formatNumber(prestigeStore.timesPrestiged) }}
-
-
- {{ upgrade.name }} {{
- !upgrade.oneTimePurchase && prestigeStore.amountOfUpgrade(upgrade.id) > 0 ? `(${prestigeStore.amountOfUpgrade(upgrade.id)})` : ''
- }}
-
-
-
-
-
- Purchased
-
+
+
+
+ {{ upgrade.name }} {{
+ !upgrade.oneTimePurchase && prestigeStore.amountOfUpgrade(upgrade.id) > 0 ? `(${prestigeStore.amountOfUpgrade(upgrade.id)})` : ''
+ }}
+
+
+
+
+
+ Purchased
+
+
+
+
+ Buy for {{ formatNumber(upgrade.cost) }} Points
+
+
+ Buy max
+
+
-
-
- Buy for {{ formatNumber(upgrade.cost) }} Points
-
-
- Buy max
-
+
@@ -112,7 +126,7 @@