Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tudo-fsinfo/events/workadventure-dialogs
  • nicolas.lenz/workadventure-dialogs
2 results
Show changes
Commits on Source (80)
Showing
with 738 additions and 75 deletions
include:
- template: Security/License-Scanning.gitlab-ci.yml
pages:
needs: []
image: node:14-alpine
stage: deploy
script:
- npm install
- npm run build
- "npm install"
- "npm run build"
- "apk add parallel brotli gzip"
- "parallel --will-cite \"gzip -9 -k {} && brotli -k {}\" ::: ./public/**/*.*"
artifacts:
paths:
- public
......
_Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)_
# Work Adventure Dialog & Quest System (WADQS?)
---
## Structure:
# svelte app
This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template.
To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
```bash
npx degit sveltejs/template svelte-app
cd svelte-app
```
_Note that you will need to have [Node.js](https://nodejs.org) installed._
├── public
│ ├── dialogs (dialog data, each file is a dialogset for one npc)
│ ├── images (images to link to in dialogs)
├── src (source code for svelte dialog webapp)
```
## Get started
......@@ -32,72 +26,19 @@ npm run dev
Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes.
**DialogSets are loaded via this url schema:**
`http://localhost:5000/?dialogSet=hans`
By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`.
If you're using [Visual Studio Code](https://code.visualstudio.com/) we recommend installing the official extension [Svelte for VS Code](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). If you are using other editors you may need to install a plugin in order to get syntax highlighting and intellisense.
## Building and running in production mode
To create an optimised version of the app:
To create an optimized version of the app:
```bash
npm run build
```
You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com).
## Single-page app mode
By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere.
If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for _any_ path. You can make it so by editing the `"start"` command in package.json:
```js
"start": "sirv public --single"
```
## Using TypeScript
This template comes with a script to set up a TypeScript development environment, you can run it immediately after cloning the template with:
```bash
node scripts/setupTypeScript.js
```
Or remove the script via:
```bash
rm scripts/setupTypeScript.js
```
## Deploying to the web
### With [Vercel](https://vercel.com)
Install `vercel` if you haven't already:
```bash
npm install -g vercel
```
Then, from within your project folder:
```bash
cd public
vercel deploy --name my-project
```
### With [surge](https://surge.sh/)
Install `surge` if you haven't already:
```bash
npm install -g surge
```
Then, from within your project folder:
```bash
npm run build
surge public my-project.surge.sh
```
......@@ -105,6 +105,21 @@
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true
},
"@types/lodash": {
"version": "4.14.168",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz",
"integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==",
"dev": true
},
"@types/lodash.debounce": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz",
"integrity": "sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==",
"dev": true,
"requires": {
"@types/lodash": "*"
}
},
"@types/node": {
"version": "14.14.31",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz",
......@@ -511,6 +526,11 @@
"resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz",
"integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw=="
},
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
},
"magic-string": {
"version": "0.25.7",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
......@@ -909,6 +929,12 @@
}
}
},
"svelte-local-storage-store": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/svelte-local-storage-store/-/svelte-local-storage-store-0.1.4.tgz",
"integrity": "sha512-XlSJqMdV1UAROsKHYQSKwI9xU0u8En/nQ6ti2flmUhBA0PM+oqXjvCyM2849ONb5JbrpyUO18CwXcSJgxYCR8w==",
"dev": true
},
"svelte-preprocess": {
"version": "4.6.9",
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.6.9.tgz",
......@@ -921,6 +947,12 @@
"strip-indent": "^3.0.0"
}
},
"svelte-typewriter": {
"version": "2.4.5",
"resolved": "https://registry.npmjs.org/svelte-typewriter/-/svelte-typewriter-2.4.5.tgz",
"integrity": "sha512-ObsLgIuLkZ14noqTHf6KNZCYgL8xqoJN6S1IaTJoaMBE1pG3MaqpVorXfCn5uQcFzzThfwoGyiYvjyRFQI3fbw==",
"dev": true
},
"terser": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz",
......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - AStA</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - AStA</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/d2e28209-3cc8-4423-a4c8-5e9df0d5381f?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Audimax</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Audimax</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/4cd5fe6a-afb5-4596-a5c5-7a48178caae3?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Bibliothek</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Bibliothek</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/681adff5-90fc-478f-8f03-644ff0034604?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Chemiegebäude</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Chemiegebäude</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/6d05fbed-42db-4eda-801e-aba78093df91?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Emil-Figge-Straße 50</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Emil-Figge-Straße 50</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/9d37797f-6de6-45e5-8043-81abb6d9286c?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Emil-Figge-Straße 61</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Emil-Figge-Straße 61</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/98cc0ed0-3c9c-4cd7-b26c-8e318e340094?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Hörsaalgebäude 2</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Hörsaalgebäude 2</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/957c6950-05d9-476d-87c3-400028530102?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Mathetower</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Mathetower</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/60bf13eb-23e1-45e7-814f-ad7067668f0c?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Mensa</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Mensa</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/867c04a8-5df3-4923-ac40-547161c2cae6?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - OH12</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - OH12</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/3b8db9f2-305e-429f-a85b-b674960158ae?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - OH14</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - OH14</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/10757272-7fe7-406b-9a16-5dc000532453?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Campusführung - Seminarraumgebäude</title>
<link rel="icon" type="image/png" href="./favicon.png" />
<link rel="stylesheet" href="../global.css" />
</head>
<body>
<h1>Campusführung - Seminarraumgebäude</h1></h1>
<iframe
height="450"
sandbox="allow-same-origin allow-scripts allow-popups"
src="https://video.oh14.de/videos/embed/a71c7bf3-b92d-4200-a0ce-5458d47144b0?autoplay=1&title=0&warningTitle=0&peertubeLink=0"
frameborder="0"
allowfullscreen
></iframe>
</body>
</html>
{
"$schema": "../../src/dialogSet.schema.json",
"title": "Frank Thorsten Breuer – Studienkoordinator",
"imageUrl": "./images/Breuer_Frank_Thorsten.jpg",
"startDialogName": "start",
"dialogs": {
"start": {
"text": "",
"options": [
{
"text": "Hallo Herr Breuer, ich grüße sie recht herzlich!",
"linksToDialog": "greetBreuer",
"forbiddenFacts": [
"ftb/acceptedFtbMateQuest",
"kitchenWaste/carriesStinkingBag"
]
},
{
"text": "Geht es ihnen gut? Sie sehen etwas bleich aus.",
"linksToDialog": "mayIBringSomething",
"forbiddenFacts": [
"ftb/acceptedFtbMateQuest",
"kitchenWaste/carriesStinkingBag"
]
},
{
"text": "Ich habe ihnen ihre Mate gebracht!",
"linksToDialog": "giveMate",
"requiredFacts": ["ftb/collectedFtbMate"],
"forbiddenFacts": [
"ftb/completedFtbMateQuest",
"kitchenWaste/carriesStinkingBag"
]
},
{
"text": "Hallo, ich suche den Hörsaal E23",
"forbiddenFacts": [
"ftb/askedFtbForHs",
"kitchenWaste/carriesStinkingBag"
],
"linksToDialog": "seekHS"
},
{
"text": "Wollen sie vielleicht Alumni-Mitglied werden?",
"requiredFacts": ["hans/acceptQuestToFindNewAlumniMembers"],
"forbiddenFacts": [
"ftb/askedHimToJoinAlumni",
"kitchenWaste/carriesStinkingBag"
],
"linksToDialog": "askToJoinAlumni"
},
{
"text": "Hallo?",
"requiredFacts": ["kitchenWaste/carriesStinkingBag"],
"linksToDialog": "kitchenBagResponse"
}
]
},
"kitchenBagResponse": {
"text": "Was wollen sie hier mit einem Müllbeutel? Raus mit ihnen, und vergessen sie ihren Beutel nicht!",
"options": []
},
"mayIBringSomething": {
"text": "Oh ja!\nIch verdurste fast, könnten sie mir eine Mate bringen?\nIch kann hier leider erstmal nicht weg und das selbst tun, zu viel Arbeit...",
"options": [
{
"text": "Klar, warum nicht.",
"linksToDialog": "acceptFtbMateQuest"
},
{
"text": "Danke, kein Interesse",
"linksToDialog": "rejectFtbMateQuest"
}
]
},
"giveMate": {
"text": "Ah, das tut gut. Vielen Dank, das war jetzt nötig. Sie haben was gut bei mir.",
"addFacts": ["ftb/completedFtbMateQuest"],
"options": [
{
"text": "Gern geschehen.",
"linksToDialog": "start"
}
]
},
"acceptFtbMateQuest": {
"text": "Ich danke ihnen. Der Kiosk ist leider geschlossen, aber sie finden sicher irgendwo noch eine Flasche Mate.",
"addFacts": ["ftb/acceptedFtbMateQuest"],
"options": [
{
"text": "Ok",
"linksToDialog": "start"
}
]
},
"rejectFtbMateQuest": {
"text": "Schade. Sollten sie sich noch umentscheiden, melden sie sich gerne bei mir.",
"options": [
{
"text": "Ok",
"linksToDialog": "start"
}
]
},
"seekHS": {
"text": "Da müssen sie den Flur wieder zurück gehen und im Foyer nach hinten durchgehen. Den Hörsaal erkennen sie an der großen Doppeltür",
"addFacts": ["ftb/askedFtbForHs"],
"options": [
{
"text": "Ah, danke",
"linksToDialog": "start"
}
]
},
"greetBreuer": {
"text": "Ich grüße sie auch recht herzlich, studieren sie zufälligerweise Informatik?",
"options": [
{
"text": "Ich habe gerade damit angefangen",
"linksToDialog": "startedToStudy"
},
{
"text": "Ich studiere hier schon länger",
"linksToDialog": "longTimeStudent"
}
]
},
"longTimeStudent": {
"text": "Dann sollten sie mal schnell weiter studieren gehen!",
"options": []
},
"startedToStudy": {
"text": "Das freut mich, herzlich willkommen hier bei uns. Ich bin leider gerade noch etwas beschäftigt. Viele Leute sind krank und ich muss daher einen Menge Arbeit erledigen. Kommen sie doch an einem anderen Tag mal wieder, da habe ich hoffentlich mehr Zeit.",
"options": [{ "text": "Ok", "linksToDialog": "start" }]
},
"denyHelp": {
"text": "Schade, ich dachte sie hätten das Zeug dazu. Nun gut, gehen sie studieren, ich finde schon selbst eine Lösung.",
"options": []
},
"agreeToHelp": {
"text": "Wunderbar, sobald mehr Story geschrieben wurde, erhalten sie hier eine epische Quest um die Fakultät vor Schmach und Schande zu retten.",
"options": []
},
"askToJoinAlumni": {
"text": "Danke, nein.",
"addFacts": ["ftb/askedHimToJoinAlumni"],
"options": [
{
"text": "Schade.",
"linksToDialog": "start"
}
]
}
}
}
{
"$schema": "../../src/dialogSet.schema.json",
"title": "Hans Decker",
"imageUrl": "./images/portrait_decker.png",
"startDialogName": "start",
"dialogs": {
"start": {
"text": "",
"options": [
{
"text": "Stehen sie öfter in Kellern herum, wenn ihnen langweilig ist? ",
"forbiddenFacts": [
"hans/madeFirstContact",
"kitchenWaste/carriesStinkingBag",
"kitchenWaste/sentToOutsideWasteBin"
],
"linksToDialog": "firstContact"
},
{
"text": "Stehen sie öfter in Kellern herum, wenn ihnen langweilig ist? ",
"forbiddenFacts": [
"hans/madeFirstContact",
"kitchenWaste/sentToOutsideWasteBin"
],
"requiredFacts": ["kitchenWaste/carriesStinkingBag"],
"linksToDialog": "firstContactButCarriesWaste"
},
{
"text": "Darf ich ihnen meine Unterstützung anbieten?",
"requiredFacts": ["hans/madeFirstContact"],
"forbiddenFacts": [
"hans/acceptedQuestToFindNewAlumniMembers",
"kitchenWaste/carriesStinkingBag"
],
"linksToDialog": "offerToHelp"
},
{
"text": "Hallo?",
"requiredFacts": [
"hans/madeFirstContact",
"kitchenWaste/carriesStinkingBag"
],
"forbiddenFacts": ["kitchenWaste/sentToOutsideWasteBin"],
"linksToDialog": "kitchenBagResponse"
},
{
"text": "Hallo?",
"requiredFacts": [
"kitchenWaste/carriesStinkingBag",
"kitchenWaste/sentToOutsideWasteBin"
],
"linksToDialog": "kitchenBagResponse2"
},
{
"text": "Hallo Herr Decker!",
"requiredFacts": ["hans/acceptedQuestToFindNewAlumniMembers"],
"forbiddenFacts": [
"hans/completedQuestToFindNewAlumniMembers",
"kitchenWaste/carriesStinkingBag"
],
"linksToDialog": "askForQuestStatus"
}
]
},
"kitchenBagResponse": {
"text": "Sie haben Nerven, mich mit ihrem Müllbeutel zu bedrängen. Weg damit!",
"options": []
},
"kitchenBagResponse2": {
"text": "Sie scheinen diesen Beutel ja echt ins Herz geschlossen zu haben.\nFalls das mit dem Informatik-Studium nichts wird, empfehle ich sie gerne bei der EGD.",
"options": []
},
"firstContact": {
"text": "Oh, nett dass sie fragen. Ich habe hier mein Büro.\nHaben sie schon einmal darüber nachgedacht, bei den Alumni Mitglied zu werden? ",
"options": [
{
"text": "Nein, darf ich fragen, wer sie sind?",
"linksToDialog": "firstContact2"
},
{
"text": "Ich bin bereits Alumni-Mitglied",
"linksToDialog": "start"
}
]
},
"firstContact2": {
"text": "Ich bin Hans Decker aus dem Vorstand der Alumni.\nWussten sie schon, dass die Mitgliedschaft bei den Alumni für Studierende bis ein Jahr nach dem Verlassen der Uni kostenlos ist?",
"options": [
{
"text": "Aha",
"linksToDialog": "askToJoinAlumni"
}
]
},
"askToJoinAlumni": {
"text": "Wollen sie vielleicht Mitglied bei den Alumni werden?",
"addFacts": ["hans/madeFirstContact"],
"options": [
{
"text": "Später vielleicht",
"linksToDialog": "declineToBecomeAlumniMember"
}
]
},
"declineToBecomeAlumniMember": {
"text": "Na gut, aber wenn sie es sich doch noch anders überlegen, melden sie sich gerne bei mir.",
"addFacts": ["hans/madeFirstContact"],
"options": [
{
"text": "Versprochen.",
"linksToDialog": "start"
}
]
},
"firstContactButCarriesWaste": {
"text": "Und laufen sie überall mit ihrem Müllbeutel herum? Herrgott, das stinkt ja vielleicht...",
"options": []
},
"offerToHelp": {
"text": "Wenn sie wollen, gerne: Kennen sie vielleicht noch Leute, die Mitglied bei den Alumni werden wollen? ",
"options": [
{
"text": "Nein, ich melde mich aber bei ihnen, sollte ich welche finden.",
"linksToDialog": "acceptQuestToFindNewAlumniMembers"
}
]
},
"acceptQuestToFindNewAlumniMembers": {
"text": "Vielen Dank. Denken sie daran, die Mitgliedschaft bei den Alumni ist für Studierende kostenlos!",
"addFacts": ["hans/acceptedQuestToFindNewAlumniMembers"],
"options": []
},
"askForQuestStatus": {
"text": "Hallo, nett sie zu sehen! Haben sie neue Mitglieder für die Alumni gefunden?",
"options": [
{
"text": "Nein, leider noch nicht, aber ich werde mich weiter umschauen.",
"linksToDialog": "hasNotFoundNewMembersYet"
}
]
},
"hasNotFoundNewMembersYet": {
"text": "Schade, melden sie sich bitte bei mir, sobald sie Erfolg hatten.",
"options": []
}
}
}
{
"title": "Ein Kasten Mate im Foyer",
"imageUrl": "./images/matekasten.jpg",
"startDialogName": "start",
"dialogs": {
"start": {
"text": "",
"options": [
{
"text": "Flasche Mate nehmen",
"linksToDialog": "takeMateBottle",
"requiredFacts": ["ftb/acceptedFtbMateQuest"],
"forbiddenFacts": ["ftb/collectedFtbMate"]
}
]
},
"takeMateBottle": {
"text": "",
"addFacts": ["ftb/collectedFtbMate"],
"options": []
}
}
}
{
"$schema": "../../src/dialogSet.schema.json",
"title": "Zotteliger Studi in der Küche",
"imageUrl": "./images/pirat_kitchen.jpg",
"startDialogName": "start",
"dialogs": {
"start": {
"text": "",
"options": [
{
"text": "Boah, was stinkt denn hier so?",
"linksToDialog": "askSmell",
"forbiddenFacts": ["kitchenWaste/acceptedQuest"]
},
{
"text": "Der Müllraum ist verschlossen, was soll ich jetzt machen?",
"requiredFacts": ["kitchenWaste/attemptedToOpenWasteRoomDoor"],
"forbiddenFacts": ["kitchenWaste/sentToOutsideWasteBin"],
"linksToDialog": "askWhatToDoWasteRoomLocked"
},
{
"text": "Ich habe den Müll rausgebracht!",
"requiredFacts": ["kitchenWaste/ejectedWaste"],
"forbiddenFacts": ["kitchenWaste/finishedQuest"],
"linksToDialog": "ejectedWaste"
}
]
},
"ejectedWaste": {
"text": "Toll. Hat den sonst immer deine Mutter raus gebracht, oder weshalb bist du da jetzt so stolz drauf? Aber wie dem auch sei, danke dir.",
"addFacts": ["kitchenWaste/finishedQuest"],
"options": [
{
"text": "Gern geschehen",
"linksToDialog": "start"
}
]
},
"askSmell": {
"text": "Jemand hat teuren französischen Käse über die Ferien hier gelassen. Ich habe mir mal erlaubt ihn wegzuschmeißen. Bring den Müllbeutel bitte weg, bevor das noch den ganzen Flur voll mieft!",
"options": [
{
"text": "Gerne, schnell weg damit! Wohin soll ich das bringen?",
"linksToDialog": "acceptQuest"
},
{
"text": "Das fasse ich doch nicht an!",
"linksToDialog": "rejectQuest"
}
]
},
"acceptQuest": {
"text": "Am Besten auf direktem Wege in den Müllraum.\nDas ist direkt der erste Raum den du auf dem Kellerflur siehst.",
"options": [
{
"text": "Okay, bin schon unterwegs.",
"linksToDialog": "sendOnQuest"
}
]
},
"sendOnQuest": {
"text": "",
"addFacts": [
"kitchenWaste/acceptedQuest",
"kitchenWaste/carriesStinkingBag"
],
"options": []
},
"rejectQuest": {
"text": "Schade, ich will das auch nicht machen. Soll sich jemand anderes darum kümmern.",
"addFacts": ["kitchenWaste/rejectedQuest"],
"options": []
},
"askWhatToDoWasteRoomLocked": {
"text": "Das ist natürlich ungünstig.",
"options": [
{
"text": "Was du nicht sagst...",
"linksToDialog": "askWhatToDoWasteRoomLocked2"
}
]
},
"askWhatToDoWasteRoomLocked2": {
"text": "Na gut, geh mal wieder in den Keller, aber diesmal den ganzen Kellerflur entlang. Am Ende raus, da sollte vor der Tür direkt ein Müllcontainer stehen.",
"options": [
{
"text": "Ok.",
"linksToDialog": "askWhatToDoWasteRoomLocked3"
}
]
},
"askWhatToDoWasteRoomLocked3": {
"addFacts": ["kitchenWaste/sentToOutsideWasteBin"],
"text": "Na dann lauf. Du solltest den Gestank ja beseitigen, nicht im ganzen Gebäude verteilen!",
"options": []
}
}
}