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",