diff --git a/.firebase/hosting.ZGlzdA.cache b/.firebase/hosting.ZGlzdA.cache index c9bf654..1711022 100644 --- a/.firebase/hosting.ZGlzdA.cache +++ b/.firebase/hosting.ZGlzdA.cache @@ -1,15 +1,15 @@ -favicon.ico,1637599368236,665ba81c9556ba00abb1a0fa575fe801b3c35f23481b17528a211b8c3021f7cd -index.html,1637599368236,ac716cd88526d5b7886cb5ed16e8cc3ebd3937446cf960e7a839075b132c7ed4 -img/add-icon.a0f313fe.svg,1637599368241,be43aa8b694c90777971ad2d7f611f52c7ee172131fe2e24a82348891bb6aa18 -img/higher-icon.68df973e.svg,1637599368241,258bcb0fc4c62a0ecd53681bfa4777451e0cb4b980e1094f68d89d4077fa657a -css/app.597ea605.css,1637599368238,42ecbe19eb686f2518b6618f385643f32452745016bb127455507aa5ae6975ca -img/lower-icon.7c306380.svg,1637599368241,286e1759ea8d4c11327f425f6d6af41603b329dab36c419b228acbea217c2080 -img/remove-icon.09c0dbc9.svg,1637599368241,1e01bccdf38cee755fc54c9768b4089fdb11d904a6b9aa86fcb20a2357dc8d61 -img/sub-icon.bfa10f67.svg,1637599368241,afa120d2f8afe18161a6ed011eb0482ef9604fd35c1d3be8cd93b1087b1138eb -img/randomize-icon.07a5b5e4.svg,1637599368243,4bda1cbd316c62073c0f5d97b5be7796b3e061d2e877a91025045957c33a9cd5 -img/swap-icon.c8ef8416.svg,1637599368236,b1c1d418526746e20b13076cc97cd4aa1b8f87956d38dfa71f3fb17d1df5c236 -img/logo.c9fcc748.svg,1637599368241,59a9ce681c6123558f2b025931a262148f1d0bb47d5a3300a14a2e9020a85bc9 -js/app.4cdf2238.js,1637599368238,956f55702e5894d47552349b19df6b7ae23d3faeb46e5f21e5c61dc7672809c1 -js/app.4cdf2238.js.map,1637599368243,a1dea43f2819347d7013bbd0fbc6951be3a541e8bf0b2a6efd498a4300ebd209 -js/chunk-vendors.c62977c4.js,1637599368243,7acc01b3da3406d5051323043fd4255883a8fd560be399c3791f4449f75b3e23 -js/chunk-vendors.c62977c4.js.map,1637599368243,9e67209b70ab93a9d5cf3b1d7ffe8277f7ba8054e5a9b240bbf60f5ddb11db56 +favicon.ico,1637925114691,665ba81c9556ba00abb1a0fa575fe801b3c35f23481b17528a211b8c3021f7cd +index.html,1637925114691,020f9f15270a09322dca8374dc4ebeb1980848183177c3534d5c0fd8f9bfed82 +img/add-icon.a0f313fe.svg,1637925114696,be43aa8b694c90777971ad2d7f611f52c7ee172131fe2e24a82348891bb6aa18 +img/higher-icon.68df973e.svg,1637925114696,258bcb0fc4c62a0ecd53681bfa4777451e0cb4b980e1094f68d89d4077fa657a +css/app.74ed3d43.css,1637925114693,0cafe8a1ddeb4eb6d5e8f338e0747ad91f3c6427e9479bcf005cb453dcac37e2 +img/lower-icon.7c306380.svg,1637925114696,286e1759ea8d4c11327f425f6d6af41603b329dab36c419b228acbea217c2080 +img/remove-icon.09c0dbc9.svg,1637925114696,1e01bccdf38cee755fc54c9768b4089fdb11d904a6b9aa86fcb20a2357dc8d61 +img/sub-icon.bfa10f67.svg,1637925114696,afa120d2f8afe18161a6ed011eb0482ef9604fd35c1d3be8cd93b1087b1138eb +img/swap-icon.c8ef8416.svg,1637925114691,b1c1d418526746e20b13076cc97cd4aa1b8f87956d38dfa71f3fb17d1df5c236 +img/logo.c9fcc748.svg,1637925114696,59a9ce681c6123558f2b025931a262148f1d0bb47d5a3300a14a2e9020a85bc9 +img/randomize-icon.07a5b5e4.svg,1637925114696,4bda1cbd316c62073c0f5d97b5be7796b3e061d2e877a91025045957c33a9cd5 +js/app.d9fee489.js,1637925114693,1fa9bf8fb1341e977f844fc1d4280e4c37b802549623e12b2478b6812ac2b57e +js/app.d9fee489.js.map,1637925114696,a80e9c9eaab7e817149dbe290da2b4e9781f4f0ba5c5560e9ae54eab38e190b5 +js/chunk-vendors.c62977c4.js,1637925114696,7acc01b3da3406d5051323043fd4255883a8fd560be399c3791f4449f75b3e23 +js/chunk-vendors.c62977c4.js.map,1637925114698,9e67209b70ab93a9d5cf3b1d7ffe8277f7ba8054e5a9b240bbf60f5ddb11db56 diff --git a/src/App.vue b/src/App.vue index 5c09ec0..6be2bcc 100644 --- a/src/App.vue +++ b/src/App.vue @@ -43,9 +43,13 @@ export default defineComponent({ logoSVG: require('@/assets/logo.svg'), }), - setup() { + async setup() { const store = inject('Store') as IStore; + const readyStockJSON = await (await fetch('https://spythere.github.io/api/readyStock.json')).json(); + + + return { store, }; diff --git a/src/components/ListSection.vue b/src/components/ListSection.vue index 2da629e..0eaf09d 100644 --- a/src/components/ListSection.vue +++ b/src/components/ListSection.vue @@ -28,13 +28,25 @@
{{ (store.chosenLoco || store.chosenCar)?.type }} -
{{ vehicleTypes[store.chosenLoco?.power || store.chosenCar?.useType || 'loco-e'] }}
-
- {{ (store.chosenCar || store.chosenLoco)?.length }}m | {{ (store.chosenCar || store.chosenLoco)?.mass }}t | - {{ (store.chosenCar || store.chosenLoco)?.maxSpeed }} km/h +
+ + {{ vehicleTypes[store.chosenLoco?.power || store.chosenCar?.useType || 'loco-e'] }} + +
+ {{ (store.chosenCar || store.chosenLoco)?.length }}m | {{ (store.chosenCar || store.chosenLoco)?.mass }}t | + {{ (store.chosenCar || store.chosenLoco)?.maxSpeed }} km/h +
+ +
Typ kabiny: {{ store.chosenLoco.cabinType }}
+ +
+ {{ + store.chosenCar.useType == 'car-cargo' + ? carUsage[store.chosenCar.constructionType] + : 'Typ konstrukcji: ' + store.chosenCar.constructionType + }} +
-
Typ kabiny: {{ store.chosenLoco.cabinType }}
-
{{ carUsage[store.chosenCar.constructionType] }}
@@ -184,7 +196,13 @@ export default defineComponent({ const attr = targetNode.attributes.getNamedItem('data-ignore-outside'); - if (!attr && !(this.$refs['list'] as Node).contains(targetNode)) this.store.chosenStockListIndex = -1; + if ( + !attr && + !(this.$refs['list'] as Node).contains(targetNode) && + targetNode.tagName.toLowerCase() != 'select' && + targetNode.tagName.toLowerCase() != 'option' + ) + this.store.chosenStockListIndex = -1; }); }, @@ -230,6 +248,11 @@ export default defineComponent({ methods: { copyToClipboard() { + if (Object.values(this.warnings).some((v) => v.value == true)) { + alert('Jazda tym pociągiem jest niezgodna z regulaminem symulatora! Zmień parametry zestawienia!'); + return; + } + navigator.clipboard.writeText(this.stockString); alert('Pociąg został skopiowany do schowka!'); @@ -341,12 +364,8 @@ export default defineComponent({ downloadStock() { if (Object.values(this.warnings).some((v) => v.value == true)) { - ``; - const allowDownload = confirm( - 'Jazda tym pociągiem może być niezgodna z regulaminem symulatora! Czy na pewno chcesz kontynuować?' - ); - - if (!allowDownload) return; + alert('Jazda tym pociągiem może być niezgodna z regulaminem symulatora! Zmień parametry zestawienia!'); + return; } const fileName = prompt('Nazwij plik:', 'pociag'); @@ -512,7 +531,7 @@ export default defineComponent({ font-size: 1.1em; b { - font-size: 1.2em; + font-size: 1.1em; } div { diff --git a/src/components/RandomizerCard.vue b/src/components/RandomizerCard.vue index f6cdee7..6ada760 100644 --- a/src/components/RandomizerCard.vue +++ b/src/components/RandomizerCard.vue @@ -145,6 +145,27 @@ export default defineComponent({ isPreviewLoading: false, loadableByDefault: false, + cargoTypes: [ + '203V', + '208Kf', + '209c', + '29R', + '304C', + '304Ca', + '401Ka', + '401Zb', + '408S', + '412W', + '412Z', + '424Z', + '426S', + '429W', + '441V', + '504a', + '612a', + '627Z', + ], + carUsage: carUsage as { [key: string]: string }, }), @@ -187,11 +208,6 @@ export default defineComponent({ return; } - if (this.chosenMass > 2500) { - alert('Masa składu nie powinna przekraczać 2500t!'); - return; - } - if (this.chosenLength > 650) { alert('Długość składu nie może przekraczać 650m dla pociągów towarowych!'); return; @@ -203,10 +219,13 @@ export default defineComponent({ if (this.store.stockList.length == 0 || !this.store.stockList[0].isLoco) { this.store.stockList.length = 0; - const locoSet = this.locoDataList + let locoSet = this.locoDataList .filter((loco) => loco.power == 'loco-e' || loco.power == 'loco-s') .filter((loco) => (!this.includeSupporterVehicles && loco.supportersOnly ? false : true)); + if (this.chosenCarTypes.some((car) => this.cargoTypes.includes(car))) + locoSet = locoSet.filter((loco) => !loco.type.startsWith('EP')); + const randLoco = locoSet[Math.floor(Math.random() * locoSet.length)]; this.addLoco(randLoco); diff --git a/src/data/carUsage.json b/src/data/carUsage.json index 5dc2e20..15ad685 100644 --- a/src/data/carUsage.json +++ b/src/data/carUsage.json @@ -15,11 +15,11 @@ "110a": "wagon pasażerski", "101a": "wagon pasażerski", "203V": "kruszywo, kamień wapienny, odpady kopalniane", - "208Kf": "drobnica, ładunki sypkie", + "208Kf": "drobnica, ładunki sypkie, ładunki sztukowe", "209c": "wagon techniczny", "29R": "produkty naftowe", "304Ca": "pojazd specjalny", - "401Ka": "drobnica, ładunki sypkie", + "401Ka": "drobnica, ładunki sypkie, ładunki sztukowe", "401Zb": "ładunki sypkie o dużej masie usypowej", "408S": "cement, wapno, popioły lotne, żużel", "412W": "drobnica, kruszywo, węgiel",