From c055b73e0d9aa36c8422bffac7d51d4225050ba2 Mon Sep 17 00:00:00 2001
From: T2brozz <42860763+T2brozz@users.noreply.github.com>
Date: Wed, 6 Oct 2021 22:34:48 +0200
Subject: [PATCH 1/5] synchronized Account, Filesystem and Workloadsystem to
current state
---
Cryptic/Gamedesign/Backend/Account/Account.md | 15 +-
.../Backend/Filesystem/Filesystem.md | 23 +--
.../Backend/Workloadsystem/Workloadsystem.md | 158 +++++++++---------
3 files changed, 99 insertions(+), 97 deletions(-)
diff --git a/Cryptic/Gamedesign/Backend/Account/Account.md b/Cryptic/Gamedesign/Backend/Account/Account.md
index 2049911..bd6d175 100644
--- a/Cryptic/Gamedesign/Backend/Account/Account.md
+++ b/Cryptic/Gamedesign/Backend/Account/Account.md
@@ -1,6 +1,6 @@
## **1.1 Account/User**
-erstellt von [Allen]
+
>Abgeschlossen: Security, Tristan, Jannik \
Datum: 29.06.2021
@@ -15,19 +15,20 @@ Wir managen die User-Accounts nicht selbst, sondern verwenden [OAuth2](https://o
### **1.1.2 Erster Login**
-Bei dem ersten Login muss der Nutzer einen Benutzername festlegen. Dieser muss folgende Kriterien erfüllen:
+Bei dem ersten Login muss der Nutzer einen Benutzernamen festlegen. Dieser muss folgende Kriterien erfüllen:
-* Länge zwischen 4 und 32 Zeichen
-* Darf nur Buchstaben (a-z, A-Z) und Zahlen (0-9) enthalten
-* Derselbe Benutzername darf nicht mehrfach vergeben werden
+* RegEx: [a-zA-Z0-9]{4,32}
+ * Länge zwischen 4 und 32 Zeichen
+ * Darf nur Buchstaben (a-z, A-Z) und Zahlen (0-9) enthalten
+* Derselbe Benutzername darf nicht mehrfach vergeben werden
* Kein Name von der Blacklist
+
### **1.1.3 Benutzerverwaltung**
-* Der Benutzer kann seinen Nutzernamen monatlich 1x ändern
- * Anforderungen s. [Erster Login](Account.md#112-erster-login)
+* [zukünftig: Der Benutzer kann seinen Nutzernamen monatlich 1x ändern]
diff --git a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md
index 69374ff..584ce05 100644
--- a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md
+++ b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md
@@ -23,15 +23,17 @@ Anm. Devs: (PC mit mehreren Festplatten)
* Ordner können weitere Ordner und Dateien enthalten.
* Ordner sind vom Spieler zu benennen: - auch beim Umbenennen beachten
* kein Name von der [Blacklist](Filesystem.md#144-blacklist)
- * 1 bis 32 Zeichen im Namen
- * Namen dürfen nur Buchstaben, Ziffern und `.-_` enthalten. (ASCII 45-46, 65-90, 95, 97-122)
+ * RegEx: [a-zA-z0-9.\-_]{1,32}
+ * 1 bis 32 Zeichen im Namen
+ * Namen dürfen nur Buchstaben, Ziffern und \`.-_\` enthalten. (ASCII Großbuchstaben, Kleinbuchstaben, Punkt, Unterstrich, Minus, Ziffern (0-9) - die Namen “..” und “.” sind Verboten
+
* Ordner können verschoben werden (mit Inhalt).
* Ordner können gelöscht werden. Im Ordner enthaltene Dateien und Ordner werden dann rekursiv gelöscht.
* Ordner können kopiert werden (mit Inhalt, nur vollständig)
* Ordner können umbenannt werden.
* Ordner können sichtbar oder unsichtbar sein.
* Es kann abgerufen werden, welche Ordner und Dateien in einem Ordner enthalten sind (nicht rekursiv).
- * Art (Ordner/Datei), Stufe und Name
+ * Art (Ordner/Datei), Rechte und Name
@@ -39,11 +41,7 @@ Anm. Devs: (PC mit mehreren Festplatten)
* Dateien enthalten Texte.
* Inhalte werden auf Blacklist-Begriffe geprüft.
-* Es sind alle gängigen Buchstaben, Zahlen und Sonderzeichen zulässig (Inhalt der Datei). UTF-8
-* Dateiname ist vom Spieler anzugeben:
- * kein Name von der [Blacklist](Filesystem.md#144-blacklist)
- * 1 bis 32 Zeichen im Namen
- * Namen dürfen nur Buchstaben, Ziffern und `.-_` enthalten. (ASCII 45-46, 65-90, 95, 97-122)
+* Inhalt muss UTF-8 konform sein.
* Dateien sind vom Spieler zu benennen:
* Siehe [1.4.1 Ordnerstruktur](Filesystem.md#141-ordnerstruktur)
* Dateien können sichtbar oder unsichtbar sein, siehe 1.6.1.1.5.2 Stufensystem
@@ -54,10 +52,6 @@ Anm. Devs: (PC mit mehreren Festplatten)
* Der Inhalt einer Datei kann vom Spieler abgerufen werden.
* Der Inhalt einer Datei kann vom Spieler geändert werden. Abhängig vom Rechtesystem - siehe 1.6.1.1.5 Benutzerverwaltung
* Die Dateigröße kann vom Spieler abgerufen werden, abhängig von Rechten.
-* Während der Bearbeitung kann mit der Datei weiter agiert werden.
- * während der Bearbeitung wird bearbeitet: jede Bearbeitung wird gespeichert, die letzte ist dann die letzte
- * während der Bearbeitung wird gelöscht: Die Bearbeitung ist eine neue Datei mit gleichem Namen an alter Stelle (wenn genug Speicherplatz)
- * während der Bearbeitung wird verschoben: An der alten Stelle wird die Bearbeitung als neue Datei gespeichert. (wenn genug Speicherplatz)
* Der Inhalt einer Datei darf max. 1’800 Zeichen betragen ``(ThisIsForGameParameters /filesystem/file/maxcharsperfile)``
@@ -70,9 +64,8 @@ Anm. Devs: (PC mit mehreren Festplatten)
* 1.000 TB = 1 PB
* Es können nur Ordner und Dateien angelegt werden, wenn Platz auf der verbauten Hardware (ingame Festplatte) ist.\
Anm. Dev: (Speicherbedarf bevor der Aktion ausrechnen) (Jede Festplatte einzeln betrachtet)
-* Ordner verbrauchen jeweils 1 MB (Ingame) ``(ThisIsForGameParameters /filesystem/folder/needsspace)``
-* Dateien verbrauchen je begonnene 20 Zeichen 5 MB (Ingame) ``(ThisIsForGameParameters /filesystem/file/needspaceper20chars)``
-
+* Ordner verbrauchen jeweils 1 MB (Ingame)
+* Dateien verbrauchen je begonnene 20 Zeichen 5 MB (Ingame) \
**Vorgehensweise:**
Anzahl Zeichen | Speicher in MB
diff --git a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md
index 7b4b4c5..10efffe 100644
--- a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md
+++ b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md
@@ -2,34 +2,37 @@
erstellt von [Maulwurf, Tristan]
->Abgeschlossen: Maulwurf, TNT, Tristan
-Datum: 31.01.2021
+> Abgeschlossen: Maulwurf, TNT, Tristan \
+Datum: 31.01.2021
Grundlegende Funktionen
-* Regulierung der Auslastung der Hardware.
-* Zuweisung von Leistung an die Programme/Prozesse.
+
+* Regulierung der Auslastung der Hardware.
+* Zuweisung von Leistung an die Programme/Prozesse.
## **1.5.1 Leistung der Hardware**
-* Für jede Hardware-Art gibt es bestimmte Leistungspunkte (CPU, RAM, GPU, Netzwerk (NET)). E.g: Zwei RAM Sticks haben in Summe nur einmal “RAM-Leistungspunkte”
-* Ausnahme: Die Festplatte wird im Workloadsystem nicht beachtet.
+* Für jede Hardware-Art gibt es bestimmte Leistungspunkte (CPU, RAM, GPU, Netzwerk (NET)).
+* Werte zweier gleicher Hardware werden addiert. E.g: Zwei RAM Sticks haben in Summe nur einmal “RAM-Leistungspunkte”
+* Bei GPU und NET sind die Besonderheiten unter Hardwarekompatibilität zu beachten.
+* Ausnahme: Die Festplatte wird im Workloadsystem nicht beachtet.
* Die Leistungspunkte werden für jedes Hardwareteil einzeln festgelegt - siehe [Computer](Computer.md).
## **1.5.2 Leistungsverbrauch Prozesse**
-* Jeder Prozess zieht Leistung, je nach Aktivität wird unterschieden (Angabe bei den Prozessen):
-Leistungsstufe 0 (Grundlast), wenn Prozess an ist (kann 0 sein)
- * Verbrauch bei Leistungsstufe 1
- * Verbrauch bei Leistungsstufe 2 (nicht bei jedem Prozess erforderlich)
- * Verbrauch bei Leistungsstufe 3 (nicht bei jedem Prozess erforderlich)
- * Der Verbrauch steigt von Stufe 0 zu 3 an
-* Der Leistungsverbrauch wird stufenweise (0, 1, 2, 3) für jeden Prozess einzeln festgelegt (auch per Formel möglich)
-* Der Leistungsverbrauch kann abhängig von der verbauten Hardware sein
-z.B. 20% der verbauten CPU-Leistung
-* Der Leistungsverbrauch schwankt zufällig um diesen Wert in einer gewissen Spanne (Prozentsatz) (Angabe bei den Prozessen)
-* Mit jeder Aktion des Prozesses wird der Verbrauch neu ermittelt.
-* Prozesse brauchen Leistung beim Starten und Beenden. (Angabe bei den Prozessen)
+* Jeder Prozess zieht Leistung, je nach Aktivität wird unterschieden (Angabe bei den Prozessen):
+ * Leistungsstufe 0 (Grundlast), wenn Prozess an ist (kann 0 sein)
+ * Verbrauch bei Leistungsstufe 1
+ * Verbrauch bei Leistungsstufe 2 (nicht bei jedem Prozess erforderlich)
+ * Verbrauch bei Leistungsstufe 3 (nicht bei jedem Prozess erforderlich)
+ * Der Verbrauch steigt von Stufe 0 zu 3 an
+* Der Leistungsverbrauch wird stufenweise (0, 1, 2, 3) für jeden Prozess einzeln festgelegt (auch per Formel möglich)
+* Der Leistungsverbrauch kann abhängig von der verbauten Hardware sein z.B. 20% der verbauten CPU-Leistung
+* Der Leistungsverbrauch schwankt zufällig um diesen Wert in einer gewissen Spanne (Prozentsatz) (Angabe bei den
+ Prozessen)
+* Mit jeder Aktion des Prozesses wird der Verbrauch neu ermittelt.
+* Prozesse brauchen Leistung beim Starten und Beenden. (Angabe bei den Prozessen)
## **1.5.3 Sonstiger Leistungsverbrauch (durch Frontend)**
@@ -37,72 +40,77 @@ z.B. 20% der verbauten CPU-Leistung
## **1.5.4 Prioritätensystem**
-* Es gibt 4 verschiedene Prioritäten
- * Priorität 1: Sehr wichtig, Leistungsreduzierung möglich. (E.g. später Betriebssystem)
- * Priorität 2: Wichtig, Prozess wird vorrangig Leistung zugewiesen. Reduzierung nur, wenn keine Prozesse auf Prio 3 und 4 aktiv sind und nach 1.5.5.
- * Priorität 3: Standard für alle Prozesse und Apps. Reduzierung erfolgt, wenn keine Prozesse auf Prio 4 aktiv sind und nach 1.5.5.
- * Priorität 4: Unwichtig, Reduzierung erfolgt vorrangig. Reduzierung kann pro Prozess nur vollständig erfolgen (aktiv oder inaktiv).
-* Der Spieler kann den Prozessen die Prioritäten 2-4 frei zuordnen. Standard ist Priorität 3 soweit nichts anderes bestimmt ist. Priorität 1 kann nicht vergeben werden.
-* Ein Prozess kann geupgradet werden.
-* Die Priorität eines Prozesses kann ab einem bestimmten Level des Prozesses durch den Spieler geändert werden. (Benötigtes Prozesslevel x zur Änderung steht bei den Prozessen)
- >(ThisIsForGameParameters /process/*/priority/playercanchangeonlevel)
-
- * Ab einschließlich Level x (x ∈ ℤ) kann die Priorität geändert werden.
- * Bei x = -1 kann die Priorität nicht geändert werden.
+* Es gibt 4 verschiedene Prioritäten
+ * Priorität 1: Sehr wichtig, Leistungsreduzierung möglich. (E.g. später Betriebssystem)
+ * Priorität 2: Wichtig, Prozess wird vorrangig Leistung zugewiesen. Reduzierung nur, wenn keine Prozesse auf Prio 3
+ und 4 aktiv sind und nach 1.5.5.
+ * Priorität 3: Standard für alle Prozesse und Apps. Reduzierung erfolgt, wenn keine Prozesse auf Prio 4 aktiv sind
+ und nach 1.5.5.
+ * Priorität 4: Unwichtig, Reduzierung erfolgt vorrangig. Reduzierung kann pro Prozess nur vollständig erfolgen (
+ aktiv oder inaktiv).
+* Der Spieler kann den Prozessen die Prioritäten 2-4 frei zuordnen. *(Funktion wird zur v0.3.0 noch nicht für Spieler
+ nutzbar sein. Später muss das im Frontend eingebaut werden. Backendseitig wird die Funktion bereits implementiert,
+ aber gesperrt (-1 für jeden Prozess in der Config)).*
+* Standard ist Priorität 3 soweit nichts anderes bestimmt ist. Priorität 1 kann nicht vergeben werden.
+* Die Priorität eines Prozesses kann ab einem bestimmten Level des Prozesses durch den Spieler geändert werden. (
+ Benötigtes Prozesslevel x zur Änderung steht bei den Prozessen)
+ * Ab einschließlich Level x (x ∈ ℤ) kann die Priorität geändert werden.
+ * Bei x = -1 kann die Priorität nicht geändert werden.
## **1.5.5 Begrenzung des Leistungsverbrauchs (“Reduzierung”)**
-1. Kann die geforderte Leistung nicht bereitgestellt werden, ist eine Reduktion der zugewiesenen Leistung von Prozessen durchzuführen.
--> Es wird weniger Leistung zugewiesen als gefordert.
-2. Die Reduktion erfolgt innerhalb der Prioritäten proportional bei allen Prozessen gleichermaßen (z.B. Reduktion pro Prozess um 5%)(außer bei Prio 4, s.u.)
-3. Bei Priorität 4 kann jeder Prozess nur deaktiviert werden.
-4. Innerhalb einer Priorität kann nur Leistung reduziert werden, wenn in allen niedrigeren Prioritäten keine Prozesse aktiv sind (erst Prio 4, dann 3, dann 2).
-5. Sollten mehrere Prozesse gleichzeitig die Schwelle zum Abstürzen überschreiten, stürzt zuerst der ab, der am meisten Leistung benötigt. Im Zweifel wird zufällig entschieden, welcher abstürzt.
-6. Es wird nicht zwischen startenden und aktiven Prozessen unterschieden.
-7. Die von einem Prozess beanspruchte Leistung kann abgerufen werden (in % pro Hardwareart).
-8. Die Reduzierung pro Prozess kann abgerufen werden (in %).
-9. Die Hardwareauslastung ist für jede Hardware-Art abrufbar (genutzte LP pro gesamt verfügbare LP in %).
+1. Kann die geforderte Leistung nicht bereitgestellt werden, ist eine Reduktion der zugewiesenen Leistung von Prozessen
+ durchzuführen. -> Es wird weniger Leistung zugewiesen als gefordert.
+2. Die Reduktion erfolgt innerhalb der Prioritäten proportional bei allen Prozessen gleichermaßen (z.B. Reduktion pro
+ Prozess um 5%)(außer bei Prio 4, s.u.)
+3. Bei Priorität 4 kann jeder Prozess nur deaktiviert werden.
+4. Innerhalb einer Priorität kann nur Leistung reduziert werden, wenn in allen niedrigeren Prioritäten keine Prozesse
+ aktiv sind (erst Prio 4, dann 3, dann 2).
+5. Sollten mehrere Prozesse gleichzeitig die Schwelle zum Abstürzen überschreiten, stürzt zuerst der ab, der am meisten
+ Leistung benötigt. Im Zweifel wird zufällig entschieden, welcher abstürzt.
+6. Es wird nicht zwischen startenden und aktiven Prozessen unterschieden.
## **1.5.6 Auswirkungen reduzierter Leistung auf Prozesse**
### **1.5.6.1 Bei aktiven Prozessen**
-1. Die Definition, welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt.
-2. Auswirkungen hängen von der Stärke der Reduzierung ab.
- - Prozesse geben eine Leistungsgrenze für jede Auswirkung an.
- - Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben.
- - Die verfügbaren Auswirkungen sind fix.
- - Beispiel:
- - crashBelowPercentage: 0.5
- - ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er.
-3. Ein Prio 1 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen.
-4. Ein Prio 4 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen.
-
-5. Folgende Auswirkungen sind möglich:
- - Prozess stürzt ab
- - Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert.
- - Prozess startet beim nächsten Mal langsamer (nach Absturz)
- - Nächste Startzeit nach Crash ist länger.
- - Prozess antwortet nicht
- - Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die Leistungsgrenze wieder nach oben überschreitet. (E.g: Es werden keine Morphcoins berechnet / Es werden keine Befehle dieses Prozesses ausgeführt)
- - Prozess kann nicht “rechnen”
- - Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt.
- - Prozess arbeitet ineffektiver
- - z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt
- - Der Ineffektivitätsfaktor wird von dem
-Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert
-
- (Beispiel:
- Grenze e) < 100%; Grenze d) < 80%
- zugewiesene Leistung = 90%
- -> mittig zwischen beiden Grenzen -> nur noch zu 50% effizient.)
+1. Die Definition, welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt.
+2. Auswirkungen hängen von der Stärke der Reduzierung ab.
+ - Prozesse geben eine Leistungsgrenze für jede Auswirkung an.
+ - Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben.
+ - Die verfügbaren Auswirkungen sind fix.
+ - Beispiel:
+ - crashBelowPercentage: 0.5
+ - ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er.
+3. Ein Prio 1 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen.
+4. Ein Prio 4 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen.
+
+5. Folgende Auswirkungen sind möglich:
+ - Prozess stürzt ab
+ - Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert.
+ - Prozess startet beim nächsten Mal langsamer (nach Absturz)
+ - Nächste Startzeit nach Crash ist länger.
+ - Prozess antwortet nicht
+ - Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die
+ Leistungsgrenze wieder nach oben überschreitet. (E.g: Es werden keine Morphcoins berechnet / Es werden keine
+ Befehle dieses Prozesses ausgeführt)
+ - Prozess kann nicht “rechnen”
+ - Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt.
+ - Prozess arbeitet ineffektiver
+ - z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt
+ - Der Ineffektivitätsfaktor wird von dem Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert
+
+ (Beispiel:
+ Grenze e) < 100%; Grenze d) < 80% zugewiesene Leistung = 90% -> mittig zwischen beiden Grenzen -> nur noch zu
+ 50% effizient.)
### **1.5.6.2 Bei startenden/stoppenden Prozessen**
-* Während der Start-Stop-Phase können Reduzierungen eintreten.
-* Welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt.
-* Folgende Auswirkungen sind möglich:
- * Die Start- bzw. Stoppzeit wird um die Zeit verlängert, die nicht die ganze Leistung zur Verfügung stand (“Die Uhr hält an”). Pendant zum freezen
- * ggf. nur anteilige Verlängerung der Startzeit. Pendant zum ineffektiven Rechnen
- * Die Startzeit beim nächsten Starten verlängert sich, wenn er beim Stoppen reduziert wurde.
+* Während der Start-Stop-Phase können Reduzierungen eintreten.
+* Welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt.
+* Folgende Auswirkungen sind möglich:
+ * Die Start- bzw. Stoppzeit wird um die Zeit verlängert, die nicht die ganze Leistung zur Verfügung stand (“Die Uhr
+ hält an”). Pendant zum freezen
+ * ggf. nur anteilige Verlängerung der Startzeit. Pendant zum ineffektiven Rechnen
+ * Die Startzeit beim nächsten Starten verlängert sich, wenn er beim Stoppen reduziert wurde.
From 4158c9c40dd0c31f2e897ae92d43b007df15b486 Mon Sep 17 00:00:00 2001
From: T2brozz <42860763+T2brozz@users.noreply.github.com>
Date: Thu, 7 Oct 2021 22:47:05 +0200
Subject: [PATCH 2/5] Added Wallet and Krptowaehrung chapter ; Added Links
---
Cryptic/Gamedesign/Backend/Account/Account.md | 4 +-
.../Backend/Filesystem/Filesystem.md | 5 +-
.../Backend/Kryptowaehrung/Kryptowaehrung.md | 11 ++
Cryptic/Gamedesign/Backend/Wallet/Wallet.md | 146 ++++++++++++++++++
.../Backend/Workloadsystem/Workloadsystem.md | 41 ++---
5 files changed, 182 insertions(+), 25 deletions(-)
create mode 100644 Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md
create mode 100644 Cryptic/Gamedesign/Backend/Wallet/Wallet.md
diff --git a/Cryptic/Gamedesign/Backend/Account/Account.md b/Cryptic/Gamedesign/Backend/Account/Account.md
index bd6d175..0728f8e 100644
--- a/Cryptic/Gamedesign/Backend/Account/Account.md
+++ b/Cryptic/Gamedesign/Backend/Account/Account.md
@@ -9,7 +9,7 @@ Datum: 29.06.2021
### **1.1.1 OAuth2**
-Wir managen die User-Accounts nicht selbst, sondern verwenden [OAuth2](https://oauth.net/2/)-Provider (z.B. Google, Discord, GitHub…). Das bedeutet, dass die Nutzer keine separate Registrierung mit E-Mail und Passwort für Cryptic benötigen.
+Wir managen die User-Accounts nicht selbst, sondern verwenden [OAuth2](https://oauth.net/2/)-Provider) (z.B. Google, Discord, GitHub…). Das bedeutet, dass die Nutzer keine separate Registrierung mit E-Mail und Passwort für Cryptic benötigen.
@@ -21,7 +21,7 @@ Bei dem ersten Login muss der Nutzer einen Benutzernamen festlegen. Dieser muss
* Länge zwischen 4 und 32 Zeichen
* Darf nur Buchstaben (a-z, A-Z) und Zahlen (0-9) enthalten
* Derselbe Benutzername darf nicht mehrfach vergeben werden
-* Kein Name von der Blacklist
+* Kein Name von der [Blacklist](../Filesystem/Filesystem.md#144-blacklist)
diff --git a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md
index 584ce05..55a47c9 100644
--- a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md
+++ b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md
@@ -40,7 +40,7 @@ Anm. Devs: (PC mit mehreren Festplatten)
### **1.4.2 Text-Dateien**
* Dateien enthalten Texte.
-* Inhalte werden auf Blacklist-Begriffe geprüft.
+* Inhalte werden auf [Blacklist](Filesystem.md#144-blacklist)-Begriffe geprüft.
* Inhalt muss UTF-8 konform sein.
* Dateien sind vom Spieler zu benennen:
* Siehe [1.4.1 Ordnerstruktur](Filesystem.md#141-ordnerstruktur)
@@ -52,8 +52,7 @@ Anm. Devs: (PC mit mehreren Festplatten)
* Der Inhalt einer Datei kann vom Spieler abgerufen werden.
* Der Inhalt einer Datei kann vom Spieler geändert werden. Abhängig vom Rechtesystem - siehe 1.6.1.1.5 Benutzerverwaltung
* Die Dateigröße kann vom Spieler abgerufen werden, abhängig von Rechten.
-* Der Inhalt einer Datei darf max. 1’800 Zeichen betragen ``(ThisIsForGameParameters /filesystem/file/maxcharsperfile)``
-
+* Der Inhalt einer Datei darf max. 1’800 Zeichen betragen
### **1.4.3 Speichernutzung**
diff --git a/Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md b/Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md
new file mode 100644
index 0000000..3784d16
--- /dev/null
+++ b/Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md
@@ -0,0 +1,11 @@
+## **1.2 Kryptowährung**
+
+erstellt von [Marius]
+
+Die Kryptowährung im Spiel heißt “Morphcoin” (Abgekürzt: MC).
+
+* Die Währung ist global im Spiel gültig
+* Es ist eine pseudo Ingame-Kryptowährung (Zahlung oder Transferierung mit/in Echtgeld ist ausgeschlossen!)
+* Die Währung dient ingame als Zahlungsmittel.
+* Die Währung wird mit 3 Nachkommastellen angegeben. Beispiel: 0,006 MC
+* Die Gesamtmenge an MC ist unbegrenzt *[kann sich zu einer späteren Version ändern]*
diff --git a/Cryptic/Gamedesign/Backend/Wallet/Wallet.md b/Cryptic/Gamedesign/Backend/Wallet/Wallet.md
new file mode 100644
index 0000000..82911fb
--- /dev/null
+++ b/Cryptic/Gamedesign/Backend/Wallet/Wallet.md
@@ -0,0 +1,146 @@
+## **1.3 Wallet**
+
+erstellt von [Marius, Tristan]
+
+### **1.3.1 Allgemein**
+
+Das Wallet ist an den [Spieler-Account](../Account/Account.md#11-accountuser) gebunden. Es ist für Fremde nicht angreif-
+oder sichtbar. Der Owner kann auf die Wallets zugreifen, indem er das Terminal oder die Wallet-App nutzt. Eine
+Authentifizierung ist nicht mehr nötig. Ein Hacker kann „Geld klauen", indem er die Befehle zum Kontostand auslesen und
+Geld überweisen untergräbt/hackt. Er hat keinen direkten Zugriff auf das Wallet, sondern nur die Möglichkeit, den Owner
+zu imitieren und damit eine „gehackte Transaktion durchzuführen". Siehe [Kapitel 1.6.2.5.5]() Wallet hacken.
+
+### 1.3.2 Detailliert
+
+* Das Wallet wird genutzt, um die Währung “[Morphcoin](../Kryptowaehrung/Kryptowaehrung.md#12-kryptowhrung)” sowie eine
+ Transaktionshistorie und Einstellungen zu speichern.
+* Das Wallet besitzt eine UUID als Adresse (analog IBAN). Über diese wird Geld gesendet und empfangen.
+* Das Wallet ist an den Spieler-Account gebunden.
+ * Nur der Spieler selber kann ein Wallet erstellen oder löschen.
+ * Das Erstellen oder Löschen kann nur von einem eigenen, laufenden PC aus getätigt werden.
+ * Wallet kann nicht übertragen werden.
+ * Nur der Owner hat vollen Zugriff auf das Wallet. Über das Terminal kann die Transaktionsmechanik des Wallets
+ gehackt werden (siehe [Wallet hacken]())
+
+
+* Der Spieler kann bis zu x Wallets gleichzeitig besitzen.
+ * Alle Wallets können auf allen eigenen Computern verwaltet werden
+
+
+* Definition Wallet-Name
+ * Name wird manuell durch den Spieler vergeben
+ * Kein Name von der [Blacklist](../Filesystem/Filesystem.md#144-blacklist)
+ * Regex: [A-Za-z]{3,12}
+ * 3 bis 12 Zeichen (Buchstaben a-z/A-Z)
+ * Name darf jederzeit geändert werden
+
+
+* Zum ersten Spieleintritt ist kein Wallet vorhanden.
+* Der Spieler muss Wallets manuell erstellen.
+ * Voraussetzung: Computer muss eingeschaltet bzw. das OS muss vollständig [gestartet]() sein. Unabhängig auf welchem
+ eigenen Computer.
+
+
+* Auf dem Wallet kann ein Überweisungslimit von 1.000 bis {+inf} MC pro Tag eingestellt werden. Das Überweisungslimit
+ greift immer.
+ * Default-Limit: 1.000 MC / Tag
+ * Das Limit ist in 500er Schritten anzugeben
+ * Das Überweisungslimit kann alle 2 Tage verändert werden
+ * Nur der Owner kann diese Einstellung tätigen.
+
+
+* Jedes Wallet besitzt eine Sicherheitszahl. Standard 1 bis 3
+ * Sicherheitszahl wird vom System generiert bei Angriff eines Hackers, s. Kapitel [Wallet hacken]()
+ * Für 500 MC kann der Spieler die Sicherheitszahl für 24 Stunden auf 1 bis 4 erhöhen. Nach Ablauf der Zeit fällt die
+ Zahl auf 1 bis 3 zurück.
+
+
+* Einstellungen müssen für jedes Wallet einzeln vorgenommen werden.m9
+ * Einstellungsänderungen werden mit Unix Timestamps geloggt
+
+
+* Von allen Wallets die man besitzt, kann folgendes jeweils abgefragt werden:
+ * Kontostand
+ * Wallet-UUID
+ * Transaktionshistorie
+ * Einstellungsänderungen
+
+
+* Folgen des Löschens des Wallets:
+ * Der User verliert damit den Zugang zum Wallet.
+ * Alle Verbindungen zum Miner, Hardware-Shop, Wallet-App, usw. werden getrennt
+ * Das Wallet wird mit Inhalt (Morphcoins + UUID + Historie) unwiderruflich gelöscht
+
+### 1.3.3 Transaktionen
+
+* Voraussetzungen:
+ * Spieler A und Spieler B besitzen jeweils mindestens ein Wallet
+ * Die [Computer]() von Spieler A und Spieler B sind beide eingeschaltet
+
+
+* Transaktionen können nur ausgeführt werden:
+ * wenn der [Netzwerktreiber]() läuft und eine Netzwerkverbindung zwischen Sender und Empfänger besteht.
+ * wenn die gewählte Summe MC auf dem gewählten Wallet vorhanden ist
+ * Transaktionen können vom Besitzer des Wallets ausgeführt werden. Hacker können über eine
+ Hackerattacke ([Wallet hacken]()) eine Transaktion ausführen.
+
+
+* Ein Hacker kann die Transaktionsmechanik untergraben und somit als “Nicht-Owner” Geld von dem Wallet senden. Er hat
+ dabei keinen direkten Zugriff auf das Konto, sondern nur auf die Transaktionsmechanik.
+
+#### 1.3.3.1 Transaktionen von Spieler zu Spieler
+
+* Es sind Transaktionen unter Spielern möglich (Geld überweisen).
+* Es können MCs von Wallet zu Wallet transferiert werden. Auch an eigene Wallets \
+ **Absender:**\
+ Folgende Angaben macht der Spieler selbst:
+ * Angabe des Ziel-Wallets mit der Wallet-UUID
+ * Angabe der Summe [Gleitkommazahl]
+ * Optional: Nachricht [Text]
+ * RegEx: [A-Za-z0-9,. ]{0,150}
+ * max. 150 Zeichen
+ * Buchstaben (a-z, A-Z) und Zahlen 0-9, Leerzeichen und Punkt “.”
+ * Wörter mit [Blacklist](../Filesystem/Filesystem.md#144-blacklist) prüfen
+ * Zeitstempel Absenden wird automatisch gesetzt.\
+ \
+ **Empfänger:**
+ * Absender Wallet-UUID
+ * Empfänger Wallet-UUID
+ * Summe in MC
+ * Zeitstempel Empfangen wird automatisch gesetzt
+ * Optional: Nachricht des Absenders [Text]
+
+#### 1.3.3.2 Transaktionen zwischen Spielern und System-Servern
+
+* Es sind Transaktionen mit dem [Hardware-Shop]() möglich (Teile kaufen)
+* Es sind Transaktionen mit dem [Versanddienst]() möglich (Versand für Hardware zahlen)
+* Es sind Transaktionen mit dem [Inventar]() möglich (Teile verkaufen)
+* Es sind Transaktionen mit [versteckten]() oder [öffentlichen Netzwerken]() möglich (Für Zugriff zahlen).
+* Es können MCs von Wallet zu Service transferiert werden.\
+ \
+ **Transaktion wird automatisch ausgeführt.**\
+ Folgende Informationen erhält der Spieler:
+ * Abgebucht/Überwiesen von: z.b. Hardware-Shop
+ * Summe in MC z.b. Betrag der Hardwareteile
+ * Autom. Nachricht [Text] zb Name und Anzahl der Hardwareteile
+ * Zeitstempel Absenden im Unix Timestamp wird automatisch gesetzt
+
+#### 1.3.3.3 Transaktionen von Miner an Spieler
+
+* Es werden Morphcoins vom [Miner]() zum Wallet transferiert.\
+ \
+ **Empfänger:**
+ * Empfänger ist immer der User
+ * Absender Miner von Computer X
+ * Empfänger Wallet-UUID Spieler
+ * Summe in MC
+ * Zeitstempel Empfangen im Unix Timestamp wird automatisch gesetzt
+ * Autom. Nachricht [Text] Miner leeren
+
+* Absender ist der Miner
+
+### 1.3.4 Transaktionshistorie
+
+* Die letzten 30 Transaktionen werden chronologisch gespeichert und können abgerufen werden (Transaktionshistorie).
+ * Transaktionen, die durch Hacks ausgeführt wurden, werden in der Historie gesondert gekennzeichnet.
+* Die letzten 15 Einstellungsänderungen werden chronologisch gespeichert und können abgerufen werden.
\ No newline at end of file
diff --git a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md
index 10efffe..1b64b05 100644
--- a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md
+++ b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md
@@ -76,33 +76,34 @@ Grundlegende Funktionen
1. Die Definition, welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt.
2. Auswirkungen hängen von der Stärke der Reduzierung ab.
- - Prozesse geben eine Leistungsgrenze für jede Auswirkung an.
- - Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben.
- - Die verfügbaren Auswirkungen sind fix.
- - Beispiel:
- - crashBelowPercentage: 0.5
- - ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er.
+ * Prozesse geben eine Leistungsgrenze für jede Auswirkung an.
+ * Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben.
+ * Die verfügbaren Auswirkungen sind fix.
+ * Beispiel:
+ * crashBelowPercentage: 0.5
+ * ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er.
3. Ein Prio 1 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen.
4. Ein Prio 4 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen.
5. Folgende Auswirkungen sind möglich:
- - Prozess stürzt ab
- - Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert.
- - Prozess startet beim nächsten Mal langsamer (nach Absturz)
- - Nächste Startzeit nach Crash ist länger.
- - Prozess antwortet nicht
- - Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die
+ * Prozess stürzt ab
+ * Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert.
+ * Prozess startet beim nächsten Mal langsamer (nach Absturz)
+ * Nächste Startzeit nach Crash ist länger.
+ * Prozess antwortet nicht
+ * Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die
Leistungsgrenze wieder nach oben überschreitet. (E.g: Es werden keine Morphcoins berechnet / Es werden keine
Befehle dieses Prozesses ausgeführt)
- - Prozess kann nicht “rechnen”
- - Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt.
- - Prozess arbeitet ineffektiver
- - z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt
- - Der Ineffektivitätsfaktor wird von dem Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert
-
+ * Prozess kann nicht “rechnen”
+ * Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt.
+ * Prozess arbeitet ineffektiver
+ * z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt
+ * Der Ineffektivitätsfaktor wird von dem Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert
+ \
(Beispiel:
- Grenze e) < 100%; Grenze d) < 80% zugewiesene Leistung = 90% -> mittig zwischen beiden Grenzen -> nur noch zu
- 50% effizient.)
+ * Grenze e) < 100%;
+ * Grenze d) < 80%;
+ * zugewiesene Leistung = 90% -> mittig zwischen beiden Grenzen -> nur noch zu 50% effizient.)
### **1.5.6.2 Bei startenden/stoppenden Prozessen**
From 3e9800f38bbdc0e85cef1c90001cd9ddf4c49ee5 Mon Sep 17 00:00:00 2001
From: T2brozz <42860763+T2brozz@users.noreply.github.com>
Date: Thu, 14 Oct 2021 21:41:14 +0200
Subject: [PATCH 3/5] add 1.7.1 of gamedesign document
---
.../Gamedesign/Backend/Computer/Computer.md | 0
.../Gamedesign/Backend/Computer/Hardware.md | 174 ++++++++++++++++++
2 files changed, 174 insertions(+)
create mode 100644 Cryptic/Gamedesign/Backend/Computer/Computer.md
create mode 100644 Cryptic/Gamedesign/Backend/Computer/Hardware.md
diff --git a/Cryptic/Gamedesign/Backend/Computer/Computer.md b/Cryptic/Gamedesign/Backend/Computer/Computer.md
new file mode 100644
index 0000000..e69de29
diff --git a/Cryptic/Gamedesign/Backend/Computer/Hardware.md b/Cryptic/Gamedesign/Backend/Computer/Hardware.md
new file mode 100644
index 0000000..9756b5e
--- /dev/null
+++ b/Cryptic/Gamedesign/Backend/Computer/Hardware.md
@@ -0,0 +1,174 @@
+### 1.7.1 Hardware
+
+```Anmerkung: Die Daten der Hardware werden separat in einer Spielparameter-Datei gespeichert und dort bearbeitet.```
+
+**Allgemeines**:
+
+* Die Tabellen stellen nur das Grundgerüst jeder Hardware dar (ohne Inhalt)
+ * In der Gameconfig wird die Hardware mit Inhalt definiert
+* Jedes Hardwareteil ist mit einer einzigartigen ID gekennzeichnet. Die ID darf niemals geändert werden.
+ * Ersten zwei Ziffern geben die Hardware an und die nächsten zwei Ziffern den Index des Elements.
+ * Mainboard 01
+ * Index 05
+ * Beispiel: 0105
+* Jede Hardware hat einen Namen
+* Jede Hardware hat einen festen Preis
+* Jede Hardware hat ein “powerUsage” Attribute [noch ohne Stromkostenrechnung]
+* Betrifft auch Netzwerk-Hardware - [siehe Router](1.9.2)
+
+
+
+#### 1.7.1.1 Definition Mainboard
+
+|Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element. Ersten zwei Ziffern geben die Hardware an und die nächsten zwei Ziffern den Index des Elements. Mainboard 01 Index 05 Beispiel: 0105 | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| case | Größe des Mainboards gibt an, ob es ins Gehäuse passt. (ATX,...) | Text |
+| cpuSocket | Socket der CPU | Text |
+| coreTemperatureControl | Temperaturkontrolle der CPU (ohne Funktion) | Boolean |
+| usbPorts | Anzahl der USB-Ports (ohne Funktion) | Ganzzahl |
+| **ram (Nur Obergruppe)** | **RAM-Objekt** | |
+| ramSlots | Anzahl wieviele RAM-Slots das Mainboard hat | Ganzzahl |
+| maxRamSize | Maximale Größe aller RAM-Riegel zusammen in MB | Ganzzahl |
+| ramTyp | Typ RAM z.b. DDR1, DDR2, usw. | Array von Text |
+| frequency | RAM-Frequenz die kompatibel mit dem Mainboard sind in MHz | Array von Ganzzahlen |
+| **graphicUnitOnBoard** | **graphicUnitOnBoard-Objekt**
Werden Spezifikationen angegeben, ist eine Grafikeinheit vorhanden, wenn nicht, ist keine Grafikeinheit vorhanden. | |
+| name | Name der OnBoard Grafikeinheit | Text |
+| vRamSize | VRAM-Größe in MB | Ganzzahl |
+| frequency | VRAM-Frequenz der Grafikeinheit in MHz | Ganzzahl |
+| capabilityGPU | Sagt aus wieviel GPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl |
+| **expansionSlots** | **Erweiterungs-Steckplätze-Objekt** | |
+| interface | Schnittstelle mit Version z.b. AGP 1.0, PCI 1.0 Kann mehrere, in der Version unterschiedliche Schnittstellen enthalten | Array von Text |
+| interfaceSlots | Anzahl der Steckplätze pro Interface | Array von Ganzzahlen |
+| **diskStorage** | **Festplatten-Objekt** | |
+| diskSlots | Anzahl der Festplatten Steckplätze | Array von Ganzzahlen |
+| interface | Schnittstelle mit Version z.b. IDE 1.0, SATA 1.0 | Array von Text |
+| **networkPort** | **Netzwerk-Objekt** | |
+| networkPortOnBoard | Sagt aus, ob eine OnBoard Netzwerkkarte vorhanden ist oder nicht. Kann true oder false sein. Es gibt nur Onboard oder externe Netzwerkkarte | Boolean |
+| capabilityNET | Sagt aus wieviel Netzwerkleistung es für das Workloadsystem bereitstellt | Ganzzahl |
+| name | Netzwerkkarten-Name | Text |
+| connectorType | Schnittstelle zum Router | Text |
+| ports | Anzahl der Steckplätze | Ganzzahl |
+| speed | Geschwindigkeit der Netzwerkverbindung in MB/s | Ganzzahl |
+| powerUsage | Energieverbrauch in Watt | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+#### 1.7.1.4 Definition CPU
+
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element. | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| frequencyMin | Minimale CPU-Frequenz der CPU in MHz | Ganzzahl |
+| frequencyMax | Maximale CPU-Frequenz der CPU in MHz | Ganzzahl |
+| socket | Socket-Bezeichnung der CPU | Text |
+| cores | Anzahl der Rechenkerne | Ganzzahl |
+| turboSpeed | Max Turbo-Frequenz möglich / True oder False (ohne Funktion) | Boolean |
+| overClock | Übertakten der CPU / True oder False (ohne Funktion) | Boolean |
+| maxTemperature | Maximale CPU Temperatur (ohne Funktion) | Ganzzahl |
+| **graphicUnit** | **graphicUnit-Attribut-Objekt** | |
+| name | Name der internen Grafikeinheit / kann auch None sein | Text |
+| VRamSize | VRAM-Größe in MB / kann auch None sein | Ganzzahl |
+| frequency | VRAM-Frequenz der Grafikeinheit in MHz / kann auch None sein | Ganzzahl |
+| capabilityGPU | Sagt aus wieviel GPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl |
+| capabilityCPU | Sagt aus wieviel CPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl |
+| powerUsage | Energieverbrauch in Watt | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+#### 1.7.1.5 Definition CPU-Kühler
+
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| coolerSpeed | CPU-Kühler Geschwindigkeit | Ganzzahl |
+| socket | Socket der CPU | Text |
+| powerUsage | Energieverbrauch in Watt | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+####1.7.1.6 Definition RAM
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| ramSize | Speichergröße des RAM | Ganzzahl |
+| ramTyp | RAM-Speicher-Art (üblicherweise DDR SDRAM [DDR4,...]) | Text |
+| frequency | RAM-Frequenz in MHz | Ganzzahl |
+| capabilityRAM | Sagt aus wieviel RAM-Leistung es für das Workloadsystem bereitstellt | Ganzzahl |
+| powerUsage | Energieverbrauch in Watt | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+####1.7.1.7 Definition Grafikkarte
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| VRamSize | VRAM-Größe in MB | Ganzzahl |
+| VRamTyp | VRAM-Speicher-Art (GDDR1, GDDR2...) | Text |
+| frequency | VRAM-Frequenz der Grafikeinheit in MHz | Ganzzahl |
+| interface | Schnittstelle mit Version z.b. AGP 1.0, PCI 1.0 | Text |
+| capabilityGPU | Sagt aus wieviel GPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl |
+| powerUsage | Energieverbrauch in Watt | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+####1.7.1.8 Definition Festplatte
+
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| diskTyp | Welcher Typ Festplatte zb HDD, SSD, m.2 | Text |
+| capacity | Speichergröße der Festplatte in MB | Ganzzahl |
+| writingSpeed | Schreibgeschwindigkeit in MB/s | Ganzzahl |
+| readingSpeed | Lesegeschwindigkeit in MB/s | Ganzzahl |
+| interface | Schnittstelle mit Version z.b. IDE 1.0, SATA 1.0 | Text |
+| powerUsage | Energieverbrauch in Watt | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+* Auf der Festplatte werden alle Dateien gespeichert z.b. Ordner, Textdateien [Später: Malware, Software] - [siehe Speichernutzung](../Filesystem/Filesystem.md#143-speichernutzung)
+* Mit jeder weiteren Festplatte wird deren Kapazität aufaddiert (Gesamtkapazität)
+* Eine einzelne Festplatte muss jeweils genügend Speicherplatz für die Systemdateien des Betriebssystems haben.
+
+####1.7.1.9 Definition Netzwerkkarte
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| interface | Schnittstelle z.b. PCIe | Text |
+| connectorType | Anschlusstyp zb RJ45 | Text |
+| speed | Übertragungsrate in MB/s | Ganzzahl |
+| capabilityNET | Sagt aus wieviel Netzwerkleistung es für das Workloadsystem bereitstellt | Ganzzahl |
+| powerUsage | Energieverbrauch in Watt | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+####1.7.1.10 Definition Netzteil
+
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl |
+| name | Der Name der Hardware | Text |
+| totalPower | Muss in Summe aller Hardwarteile genügend Leistung (Watt) zur Verfügung stellen | Ganzzahl |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+####1.7.1.11 Definition Gehäuse
+| Attribute | Bezeichnung | Einheit |
+|---|---|---|
+| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl |
+| case | Der Name der Hardware | Text |
+| size | Größe des Gehäuse als Name zb. Midi, ITX, ATX Größenstufen Beispiel: Midi (klein) ITX (mittel) ATX (groß) | Text |
+| price | Der Preis der Hardware in MC | Ganzzahl |
+
+####1.7.1.12 Hardware kaufen
+* Jede Hardware bekommt einen festen Preis.
+ * Wenn Hardwarepreis -1 MC entspricht, wird diese nicht zum verkauf angeboten
+* Jede Hardware ist käuflich mit der Ingame-Währung
+* Es können 1-n Elemente auf einmal gekauft werden (abhängig vom Kontostand)
+* Dem Hardware-Shop kann immer ein Wallet zugewiesen werden (-> Settings für BE)
+ * Änderung des Wallets jederzeit möglich
+* Wird Hardware gekauft, wird der Gesamtbetrag autom. vom Wallet abgebucht
+ * Wenn nicht genügend Geld vorhanden, kein Hardwarekauf möglich
+ * Das Geld wird beim eingestellten User-Wallet abgebucht
+* Wird Hardware gekauft wird diese im [Inventar](1.7.8) abgelegt
+* Jedes Merkmal einer Hardwarekomponente kann abgerufen werden
+* Es muss eine aktive Verbindung zum [Hardware-Shop-Server]() bestehen. Diese liegt vor, wenn auf einem PC, der dem Nutzer gehört, ein aktiver Netzwerktreiber läuft und eine Verbindung zum entsprechenden Server hergestellt werden kann.
From b4077e81eeaa3a38554ea0cb1058a48367ae97c4 Mon Sep 17 00:00:00 2001
From: T2brozz <42860763+T2brozz@users.noreply.github.com>
Date: Fri, 15 Oct 2021 22:50:04 +0200
Subject: [PATCH 4/5] add 1.7.2 -1.7.7 from Computer chapter
---
.../Gamedesign/Backend/Computer/Computer.md | 282 ++++++++++++++++++
1 file changed, 282 insertions(+)
diff --git a/Cryptic/Gamedesign/Backend/Computer/Computer.md b/Cryptic/Gamedesign/Backend/Computer/Computer.md
index e69de29..66fd8b0 100644
--- a/Cryptic/Gamedesign/Backend/Computer/Computer.md
+++ b/Cryptic/Gamedesign/Backend/Computer/Computer.md
@@ -0,0 +1,282 @@
+## 1.7 Computer
+
+erstellt von [Marius, Maximilian]
+
+### 1.7.2 Leistungspunkte
+
+Hardwarekomponente die keine Leistungspunkte (LP) besitzen, sind nicht aufgeführt. \
+GitHub:
+Datei [hardware_gameconfig](https://github.com/cryptic-game/gamedesign/blob/parameter-pre-alpha-3/Cryptic/Gameparameter/hardware_gameconfig.yaml)
+, Stand: 29.08.2021
+
+**Start-PC:**
+
+* Mainboard: Zero MX One / GPU = 5.000 LP / NET = 10.000 LP
+* CPU: CoreOne A100 / CPU = 10.000 LP
+* RAM: Crossfire One / RAM = 10.000 LP
+* Externe GPU: Nein
+* Externe Netzwerkkarte: Nein
+* 50 MC/Tag
+
+**Unterklasse-PC**
+
+* Mainboard: Zero MX Pro / NET = 10.000 LP
+* CPU: CoreOne A110 / CPU = 20.000 LP
+* RAM: Crossfire ZX100 / RAM = 44.000 LP
+* Externe GPU: Forcevid MX1000 / GPU = 40.000 LP
+* Externe Netzwerkkarte: Nein
+* 80 MC/Tag
+
+**Mittelklasse-PC**
+
+* Mainboard: Zetta Ultimate M150
+* CPU: DualCore M101 / CPU = 40.000 LP
+* RAM: Crossfire ZX200 / RAM = 139.000 LP
+* Externe GPU: Zetta TX2066 / GPU = 204.000 LP
+* Externe Netzwerkkarte: Network Element One / NET = 20.000 LP
+* 180 MC/Tag
+
+**High-End PC**
+
+* Mainboard: Zeus Professional X3
+* CPU: QuadCore TX950 / CPU = 205.000 LP
+* RAM: Crossfire P60 + Crossfire P60 / RAM = 1.100.000 + 1.100.000 = 2.200.000 LP
+* Externe GPU: Zetta TX2066 Pro / GPU = 460.000 LP
+* Externe Netzwerkkarte: Network Element One / NET = 20.000 LP
+* 300 MC/Tag
+
+### 1.7.3 Basisfunktionen
+
+#### 1.7.3.1 Allgemein
+
+* Jeder Computer bekommt eine einzigartige UUID
+* Die UUID wird beim kompletten Auseinanderbauen eines Rechners gelöscht und beim Zusammenbauen neu vergeben. Die UUID
+ wird erst gelöscht, wenn das Mainboard entfernt wird, siehe Reihenfolge Schritt 2
+ bei [Hardwareteile tauschen](#1773-hardwareteile-tauschen).
+* Jeder funktionsfähige Computer besteht aus Mindestbestandteilen
+* Jeder Computer ist konfigurierbar - siehe [Konfiguration ändern](#177-konfiguration-ndern).
+ * Besonderheit beim Start-PC beachten
+* Anmerkung für Start-Computer: Die Hardwareteile des Start-PC befinden sich zum ersten Spieleintritt im [Inventar](1.8)
+ . Der User muss den Computer aktiv [zusammenbauen](#176-zusammenbauen).
+
+* Computer die insgesamt gebaut/erstellt werden können:
+ * max. 6 Computer
+ * Ein Computer kann vollständig oder unvollständig sein. Beides zählt als erstellt - siehe Definition
+ unter [zusammenbauen](#176-zusammenbauen)
+ * der Neu erstellte Computer ist Inaktiv und wird im Inventar abgelegt
+
+* Aktive Computer die gleichzeitig benutzt werden können:
+ * min. 0 Computer
+ * max. 4 Computer
+ * [Server zur späteren Version]
+ * Anmerkung: Aktiver Computer bezeichnet nur das “einstecken des Stromkabels in die Steckdose”. Ein aktiver Computer
+ verbraucht trotzdem 1x Slot im Inventar.
+
+* Computername ist vom Spieler zu benennen:
+ * Owner darf den Computer-Namen jederzeit ändern. Der Computer muss dazu aktiv sein, unabhängig ob ein- oder
+ ausgeschaltet.
+ * 2 bis 10 Zeichen (Zahlen 0-9, Buchstaben a-z/A-Z)
+ * mind. 1x Buchstabe
+ * RegEx: (?=.*[a-zA-Z])[\da-zA-Z]{2,10}
+ * Kein Name von der [Blacklist](../Filesystem/Filesystem.md#144-blacklist)
+ * Name muss ab dem Einbau von “Mainboard” angegeben werden.
+ * Für den User müssen alle Computer im Inventar unterschiedliche Namen besitzen
+ * Hinweis: Global gesehen können PCs von unterschiedliche Usern, den gleichen PC-Namen haben
+* Computername kann vom Hacker geändert werden
+ * Der Netzwerktreiber muss Kommunikation zulassen
+ * Sobald der Fremde User die Hacker-Rolle besitzt, kann er den Computernamen genau einmal ändern. Der Hacker wird
+ für Zeit x gesperrt. [wird später eventuell überarbeitet und ist abhängig von der Firewall]
+ * Für Hacker-Rolle - siehe Kapitel [1.6.1.1.5.1 Rollensystem]()
+
+* Die Computer-UUID kann abgerufen werden
+* Der Name des Computers kann abgerufen werden
+* Anzahl verbauter Hardwarteile eines Computers kann abgerufen werden
+* Für jedes Hardwareteil eines Computers können dessen Merkmale abgerufen werden.
+
+#### 1.7.3.2 Mindestbestandteile
+
+Mindestbestandteile eines funktionsfähigen Computers bestehend aus 7 Teilen:
+
+* 01 Mainboard
+* 02 CPU
+* 03 CPU-Kühler
+* 04 RAM
+* 05 Festplatte
+* 06 Gehäuse
+* 07 Netzteil Wenn es keine Onboard-Möglichkeit gibt, greift immer die externe Komponente -
+ siehe [1.7.5 Hardwarekompatibilität.](#175-hardwarekompatibilitt)
+* Grafikkarte gehört nicht zu den Mindestbestandteilen
+ * OnBoard-Config ist möglich (Mainboard oder CPU)
+* Netzwerkkarte gehört nicht zu den Mindestbestandteilen
+ * OnBoard-Config ist möglich (Mainboard)
+
+* Start-PC hat die Mindestbestandteile mit den leistungsschwächsten Bauteilen -
+ siehe [Start-Computer](#174-start-computer)
+
+### 1.7.4 Start-Computer
+
+Anmerkung für GD: Start-PC Teile kosten etwas
+
+* Hardware-Komponente
+ * Option 1: false: Komponente lagern zum ersten Spieleintritt im Inventar
+ * Option 2: true: Computer ist zum ersten Spieleintritt autom. erstellt
+ * Einstellung steht auf => false: Komponente lagern zum ersten Spieleintritt im Inventar
Folglich greift dies
+ nur ein mal.
+ * Hardwareteile sind bei jedem Spieler gleich - siehe Tabelle in diesem Kapitel
+* Die Teile des Start-PCs können nicht gelöscht, nicht verkauft und nicht versendet werden (verhindert, dass der Spieler
+ aus versehen Komponenten schon vorher aus dem Inventar z.b. löscht und somit Spielunfähig wird). Beachte Besonderheit
+ bei [Hardwareteile tauschen](Hardware.md#17112-hardware-kaufen)
+* Start-Computer ist bis zu einem gewissen Grad konfigurierbar
+ * Mainboard und Gehäuse können nicht getauscht werden, bleiben fester Bestandteil. Somit kann der Start-Computer
+ nicht vollständig auseinandergebaut werden.
+ * Alle anderen Teile sind konfigurierbar/Teile tauschen möglich.
+* Computer wird als 1 Item (Komplett-PC) im Inventar abgelegt
+* Verbraucht 1x Slot im Inventar
+* Einzelteile können nicht gelöscht, nicht verkauft und nicht versendet werden
+
+**Start-PC**
+Der Start-PC definiert die Hardware die der User zum Start des Spiels bekommt. Es definiert den Leistungsschwächsten
+Computer. Hardware wird in der Gameconfig definiert.
+
+| Hardware | ID |
+|---|---|
+| Mainboard | Ganzzahl |
+| CPU | Ganzzahl |
+| ProcessorCooler | Ganzzahl |
+| GPU | nicht verbaut => OnBoard |
+| RAM | Ganzzahl |
+| Disk | Ganzzahl |
+| NetworkCard | nicht verbaut => OnBoard |
+| Powerpack | Ganzzahl |
+| Case | Ganzzahl |
+
+### 1.7.5 Hardwarekompatibilität
+
+Die genaue Kompatibilität der einzelnen Hardwareteile wird in einem Diagramm erläutert. Link zum
+Diagramm: [Hardwarekompatibilität Cryptic v0.3.0](https://nextcloud.cryptic-game.net/s/oPkZze6at3LQPXo)
+
+**Möglichkeiten Grafikeinheit GPU:**
+
+* Option 1: OnBoard-Grafikeinheit auf Mainboard
+* Option 2: OnBoard-Grafikeinheit auf CPU
+* Option 3: Externe Grafikeinheit
+* Computer ist mit OnBoard-Grafikeinheit lauffähig (günstige Variante).
+
+Priorität:
+
+* Es wird die nächst beste GPU verwendet, gemessen am Leistungswert. Wenn KEINE OnBoard-GPU vorhanden ist, dann muss
+ eine externe GPU eingebaut werden!
+
+**Möglichkeiten Netzwerkkarte NET:**
+
+* Option 1: OnBoard-Netzwerkkarte auf Mainboard
+* Option 2: Externe Netzwerkkarte
+* Computer ist mit OnBoard-Netzwerkkarte lauffähig (günstige Variante).
+
+Priorität:
+
+* Es wird die nächst beste Netzwerkkarte verwendet, gemessen am Leistungswert. Wenn KEINE OnBoard-Netzwerkkarte
+ vorhanden ist, dann muss eine externe Netzwerkkarte eingebaut werden!
+
+**Expansion Slots / Erweiterungssteckplatz**
+
+* Es können nur GPU, Netzwerkkarte und Disks installiert werden
+* Hierbei muss das Attribute “interface” immer zusammenpassen
+ * Beispiel: GPU “interface: PCI 2.0” => expansionslot “interface: PCI 2.0”
+ * Interface-Name und Version müssen zusammen passen
+
+### 1.7.6 Zusammenbauen
+
+Teile aus dem Inventar können zum Bau eines neuen Computers verwendet werden.
+**Bedingungen**:
+
+* Alle Mindestbestandteile müssen zum erstellen eines funktionsfähigen Computers verbaut sein.
+ * Computer kann aber auch “erstellt” und trotzdem unvollständig sein.
+* Alle Hardware-Komponenten müssen miteinander kompatibel sein für einen funktionsfähigen Computer
+* Computername muss ab Schritt 2 “Mainboard” angegeben werden. Definiton für Namen
+ unter [1.7.3.1 Allgemein](#1731-allgemein) zu finden.
+
+Reihenfolge:
+
+| Schritt | Hardwarekomponente | Anmerkung |
+|---|---|---|
+| 1 | Gehäuse | Zuerst wird das Gehäuse festgelegt |
+| 2 | Mainboard | Danach wird das Mainboard eingebaut |
+| 3 | CPU | Danach kann die CPU eingebaut werden (Optional: CPU kann auch nach Schritt 4 eingebaut werden) |
+| 3.1 | CPU-Kühler | Der CPU-Kühler kann erst nach der CPU-Komponente eingebaut werden |
+| 3 | 4 | RAM, Grafikkarte, Festplatte, Netzwerkkarte, Netzteil | Alle weiteren Teile können ohne Reihenfolge (aber nach Schritt 2) eingebaut werden |
+
+* Bei jedem Bauteil, welches hinzugefügt wird, wird die Kompatibilität geprüft
+ * Hinweis: Die vollständige Abfrage durch eine Funktion “Erstellen” entfällt. Somit auch ein Button “Erstellen” im
+ Frontend.
+ * Situation 1: Wenn kompatibel, i.O.
+ * Situation 2: Wenn nicht kompatibel, wird das Bauteil nicht akzeptiert
+ * Ein Computer hat folgende Stadien:
+ * Status 1: Alle Bauteile sind verbaut und kompatibel. Der Computer ist vollständig und funktionsfähig (
+ Betriebssystem startet).
+ * Status 2: Unvollständig und nicht funktionsfähig. Ein unvollständiger Computer gilt ab Gehäuse + Mainboard und
+ wenn nicht alle weiteren Mindestbestandteile verbaut sind bsp. es fehlt ein RAM-Modul.
+* Sind alle Bauteile kompatibel und der Computer funktionsfähig wird die Computer-UUID erzeugt. Ansonsten nicht. Die
+ UUID wird mit dem Mainboard verknüpft.
+* Jeder zusammengebaute Computer ist zu Beginn ausgeschaltet
+ * Ein zusammengebauter Computer zählt sobald Gehäuse und Mainboard verbunden sind.
+ * Ein (neu) erstellte Computer ist Inaktiv und wird im Inventar abgelegt
+* Jeder zusammengebaute Computer verbraucht 1x Slot im Inventar
+ * Hinweis: Verbaute Hardwareteile verbrauchen kein Platz im Inventar
+
+### 1.7.7 Konfiguration ändern
+
+#### 1.7.7.1 Allgemein
+
+* Es gibt folgende Möglichkeiten:
+ * Option 1: [Computer auseinander bauen](#1772-computer-auseinander-bauen)
+ * Option 2: [Hardwareteile tauschen](#1773-hardwareteile-tauschen)
+* Wenn das Inventar gar keine oder zu wenige Plätze frei hat:
+ * kann der Computer nicht in einem rutsch auseinander gebaut werden => Ausbauen wird gesperrt (Anzahl Teile vom
+ Computer muss mit freie Plätze im Inventar verglichen werden).
+ * können die Hardwareteile nur einzelnen oder gar nicht getauscht werden
+* Dateien bleiben auf der Festplatte erhalten, wenn Festplatte getauscht werden sollte
+* Wenn Spieler-Inventar voll
+ * Auseinanderbauen nicht möglich
+ * Teile tauschen nicht möglich
+ * Option: Hardware kann im [Inventar](1.8) gelöscht/verkauft werden
+
+#### 1.7.7.2 Computer auseinander bauen
+
+* Option 1: Computer kann vollständig in einem rutsch auseinandergebaut werden
+ * → Bedingung: Device muss ausgeschaltet sein - siehe [Betriebssystem](1.6.1.1)
+ * UUID und Computername werden gelöscht
+ * Voraussetzung es sind ausreichend Slots vorhanden.
+ * Alle Hardwareteile werden im Spiel-Inventar abgelegt.
+ * **Ausnahme**: Der Start-PC kann nicht auseinandergebaut werden
+
+#### 1.7.7.3 Hardwareteile tauschen
+
+* Option 2: Hardwareteile können einzeln ausgetauscht werden
+ * → Bedingung: Device muss ausgeschaltet sein - siehe [Betriebssystem](1.6.1.1)
+
+**Reihenfolge Teile tauschen:**
+
+1. Zuerst können RAM, Grafikkarte, Festplatte, CPU-Kühler => CPU, Netzwerkkarte und Netzteil getauscht werden
+2. Mainboard kann erst getauscht werden, wenn alle genannten Teile aus Schritt 1 entfernt sind
+3. Gehäuse kann erst getauscht werden, wenn ALLE Hardwareteile entfernt sind
+ **Besonderheit Onboard-Nwk/Netzwerkkarte:**
+
+* Wenn zur Onboard-Netzwerkkarte eine Netzwerkkarte eingebaut wird, wird diese aktiv -
+ siehe [Generierung der Morph-IP](1.9.6)
+* Wird die Netzwerkkarte wieder ausgebaut, wird die Onboard-Karte aktiv
+ * Voraussetzung: Das Mainboard besitzt eine - siehe [1.9.1.2 Generierung der Morph-Adressen]()
+
+**Besonderheit Start-PC:**
+
+* Fall 1 - Neue Teile: Neu eingebaute Hardwareteile können anschließend beim wieder herausnehmen nicht gelöscht oder
+ verkauft werden. Voraussetzung diese werden direkt im Inventar abgelegt und nicht wiederverwendet. Diese bleiben
+ unzerstörbar.
+* Fall 2 - Teile tauschen: Hardwareteile die durch andere ausgetauscht werden, können anschließend gelöscht, verkauft
+ oder versendet werden.
+ * Voraussetzung:
+ * ein Austausch (Ersetzen des vorigen Teils) findet statt.
+ * die Komponente ist kompatibel
+* Es muss also immer ein Komplett-Computer vorhanden sein bzw. die einzelnen Teile davon sollen nicht löschbar, nicht
+ verkäuflich und nicht versendbar sein
+
From 5f17e8a71df03c292269faa002cb2697d36ffdfc Mon Sep 17 00:00:00 2001
From: T2brozz <42860763+T2brozz@users.noreply.github.com>
Date: Wed, 27 Oct 2021 10:39:55 +0200
Subject: [PATCH 5/5] Add Inventar as Markdown
---
.../Gamedesign/Backend/Inventar/Inventar.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 Cryptic/Gamedesign/Backend/Inventar/Inventar.md
diff --git a/Cryptic/Gamedesign/Backend/Inventar/Inventar.md b/Cryptic/Gamedesign/Backend/Inventar/Inventar.md
new file mode 100644
index 0000000..7825ab8
--- /dev/null
+++ b/Cryptic/Gamedesign/Backend/Inventar/Inventar.md
@@ -0,0 +1,108 @@
+## 1.8 Inventar
+
+erstellt von [Marius]
+
+### 1.8.1 Basisfunktionen
+
+Das Inventar wird genutzt um Items zu lagern
+
+* Jeder zusammengebaute Computer, jedes unverbaute Hardwareteil, sowie Router verbraucht entsprechend 1x Slot im
+ Inventar.
+ * verbaute Hardwareteile verbrauchen kein Slot
+* Zu Beginn des Spiels befinden sich im Inventar:
+ * Alle Bestandteile für den Start-PC (abhängig von der Hardware-Gameconfig)
+ * 1x Standard Spieler-Router
+ * Die Startzahl darf nicht kleiner sein, als die Gesamtzahl der Teile für den Start-PC + 1x Router - Beachte
+ Mindestanzahl [1.7.4 Start-Computer](../Computer/Computer.md#174-start-computer)
+* Pro aktiven PC wird das Inventar um 7 Plätze erweitert
+ * Nur wenn ein PC mit einem anderen, unterschiedlichen Mainboard aktiv geschaltet wird, können weitere Slots dazu
+ geschaltet werden. Identifizierung anhand der Mainboard-Hardware-ID (Computername zur identifizierung ist nicht
+ zulässig).
+ * Die Slotanzahl kann 4x erweitert werden. Somit können max. 7*4 = 28 Slots zusätzlich freigeschaltet werden. Es ist
+ also von x unterschiedlichen Mainboards abhängig => Festlegung in der Hardware-Gameconfig.
+ * Wenn ein aktiver PC inaktiv geschaltet wird, bleiben die Slots weiterhin erhalten.
+ * Das bereits eingesetzte Mainboard, sowie bei Neukauf und Verwendung des gleichen Mainboard-Modells, ist für die
+ Erweiterung der Slots nicht zulässig.
+ * **Besonderheit Gameconfig**: Wenn in der Gameconfig die max. Slotanzahl niedriger gewählt wird, als zu Beginn
+ festgelegt war, bleiben die Items erhalten. Auch wenn mehr Items im Inventar enthalten sind als zugelassen. Der
+ Spieler kann keine weiteren Items aufnehmen und muss entscheiden, welche seiner Items gelöscht oder verkauft
+ werden, solange bis Slots frei werden.
+* Der Inhalt des Inventars kann abgerufen werden
+* Die Anzahl der abgelegten Items kann abgerufen werden
+* Die Anzahl der noch verfügbaren Slots kann abgerufen werden
+* Items können verschickt werden - siehe [1.8.2 Items verschicken](#182-items-verschicken)
+* Items können gelöscht werden - siehe [1.8.3 Items löschen](#183-items-lschen)
+* Items können verkauft werden - siehe [1.8.4 Items verkaufen](#184-items-verkaufen)
+
+### 1.8.2 Items verschicken
+
+#### 1.8.2.1 Kernfunktionen
+
+* Einzelne Hardwareteile und Router können per User-UUID oder Usernamen an einen beliebigen Spieler mit dem
+ Versanddienst gesendet werden. Spieler A (Absender) sendet an Spieler B (Empfänger).
+ * Der Absender (Spieler A) muss einer dieser Daten zum Verschicken angeben.
+ * **Bedingung beim Absenden**: Irgendein Computer des Versenders muss eingeschaltet sein und der Netzwerktreiber
+ muss Kommunikation zulassen (Verbindung zum Internet). Nach dem Absenden kann der Computer ausgeschaltet sein
+ und/oder der User (Sender und Empfänger) kann ausgeloggt sein.
+ * Nur der Absender muss mit dem Versanddienst (Dispatch-Service-Server) verbunden sein, unabhängig mit was der
+ Empfänger verbunden ist. Und unabhängig in welchem Netzwerk sich beide Spieler befinden.
+ * Der Empfänger benötigt keinen Computer
+ * Der Empfänger muss das Paket bestätigen, sodass es abgeschickt wird.
+ * Erst nach dem Bestätigen vom Empfänger, wird das Paket versendet
+ * Wenn das Paket nicht innerhalb von 4 h angenommen wird, verfällt das Paket und die Teile bleiben beim
+ Absender.
+* Das Geld wird beim Absenden direkt von Spieler A vom Versanddienst abgebucht.
+ * Angabe des Wallets
+ * Wenn nicht ausreichend Geld vorhanden, dann kein Paket Senden möglich
+ * Das Geld wird vom Wallet Spieler A abgebucht
+* Es können max. 3 Pakete in 7 Tagen versendet werden. Die Zeit wird immer ab dem Absendedatum des zuletzt gesendeten
+ Pakets gemessen.
+ * Anzahl Pakete
+ * Intervall in Tagen
+ * Es können gleichzeitig unterschiedliche Versanddienste gewählt werden
+* Pro Paket können max. 5 Items verschickt werden
+ * Versenden von Computern nicht möglich
+* Folgendes wird beim Absender ausgegeben:
+ * Das Absende- und Sendedatum wird beim Absender angezeigt
+ * Zeitstempel mit Unix Timestamps
+ * Ziel-User wird angezeigt
+ * Aktiver Versanddienst
+ * Anzahl Pakete mit Inhalt werden angezeigt
+* Folgendes wird beim Empfänger ausgegeben:
+ * Das Sendedatum wird beim Empfänger angezeigt
+ * Zeitstempel mit Unix Timestamps
+ * Absender-User wird angezeigt
+ * Aktiver Versanddienst
+
+#### 1.8.2.2 Versanddienste
+
+* Verschiedene Versanddienste zur Auswahl
+* Zeit die das Paket braucht bis zur Ankunft bei anderen Spielern
+
+| Versandart | Paketpreis |
+|---|---|
+| Standardversand
Dauer: 3 Tage (72 Std)
| Kostenlos |
+| Premiumversand
Dauer: 1 Tag (24 Std)
| 45 MC |
+| Premium NOW
Dauer: 5 min
| 120 MC |
+
+### 1.8.3 Items löschen
+
+* Alle Items (Computer und Hardware) können unwiderruflich im Inventar gelöscht werden
+ * Item wird aus dem Inventar genommen
+ * Der bisher belegte Slot wird frei
+ * **Besonderheit**: Wird eine Netzwerkkarte oder ein Mainboard mit OnBoard Netzwerkkarte gelöscht, wird auch die IP
+ gelöscht - siehe [1.9.1.3 Generierung](193) der Morph-Adresse Gleiche gilt auch, wenn ein Computer gelöscht hat der diese
+ Konfiguration hat.
+ * **Besonderheit**: Wenn eine Festplatte mit Inhalt gelöscht wird, werden auch alle darauf liegenden Dateien
+ unwiderruflich gelöscht
+
+### 1.8.4 Items verkaufen
+
+* Nur einzelne Computer-Hardwareteile (Items) können für eine Erstattung von 20% des Kaufpreises zurückgegeben
+ werden [wird zur späteren Version durch den Schrotthändler ersetzt]
+ * Item wird aus dem Inventar genommen
+ * Es können x Items pro Tag verkauft werden
+ * Der bisher belegte Slot wird frei
+* Das Geld wird direkt auf das angegebene Spieler-Wallet gebucht
+
+