erste vorarbeiten für JSON
[aymargeddon/current.git] / doc / design
1 #################
2 Datenbankzugriffe
3 #################
4
5 Alles, was einen SQL-Befehl beinhaltet sollte in
6 DataBase.pm. zusätzlich vielleicht auch noch sehr eng damit
7 zusammenhängende Funktionen. Alles abstraktere sollte in extramodule.
8
9 Generelle Frage:
10 ================
11
12 embperl sollte nur die aktionen überhaupt zur verfügung stellen, die
13 möglich sind (soweit zu diesem zeitpunkt bekannt).
14
15 soll man darauf vertrauen, dass die embperlseite bestimmte sachen
16 schon abgetestet hat? oder muss man die alle nochmal auf serverseite
17 testen? Antwort: wohl ja, da sich zwischen eintragen in die
18 befehlsqueu und ausführung des befehls der spielstand verändert haben
19 kann. ausnahmen sind unten eingeklammert.
20
21 Hier jetzt mal eine möglichst vollständige Liste aller
22 Datenbankzugriffe, als Grundlage für Designüberlegungen.
23
24 Von Serverseite:
25 ================
26
27 - lies alle aktuellen befehle 
28 - schreibe message
29
30 Alles, was trotz zeitverzögerung schon vorher von embperlseite
31 abgeklärt hätte werden können ist eingeklammert.
32
33 einzelne befehle:
34 --------------------
35 - passwort ändern (nicht in befehlsqueu sondern sofort?)
36         - authentifizieren
37         - schreiben in PLAYER
38
39 - registrieren (nicht in befehlsqueu sondern sofort?)
40         - schreiben in PLAYER
41
42 - abmelden (nicht in befehlsqueu sondern sofort?)
43         - authentifizieren
44         - löschen in PLAYER
45
46 - status ändern
47         - test ob spieler vorhanden
48         - schreiben in ALLIANCE
49         
50 - anmelden in einzelnen spielen (nicht in befehlsqueu sondern sofort?)
51         - test ob spieler schon in spiel vorhanden
52         - schreiben in ROLE
53
54 - abmelden aus spielen (nicht in befehlsqueu sondern sofort?)
55         - löschen aus ROLE
56 --------------------
57 - erdlingsbewegen:
58         - (test ob manapol)
59         - test ob arche auf wasser
60         - test ob kampf
61         - test wer kämpft
62         - schreiben in MOBILE
63         - schreiben in MAP
64         - schreiben in COMMAND
65
66 - tempel bauen:
67         - test ob tempelfeld des gottes (kann sich ändern wg. überschwemmung)
68         - test ob richtiger priester da
69
70 - sterbereihenfolge:
71         - (testen ob reihenfolge gültig)
72         - schreiben in EARTHLING [ACHTUNG: neue Tabelle!]
73
74 - gott für tote helden festlegen:
75         - testen ob gott gültig
76         - schreiben in EARTHLING
77 --------------------
78 - bei allen gottbefehlen: testen ob manna reicht
79
80 - avatar erschaffen:
81         - ort ermitteln aus MAP und MOBILE
82         - schreiben in MOBILE
83
84 - held weihen
85         - testen ob held noch vorhanden (und aktiv?)
86         - schreiben in MOBILE
87
88 - priester erleuchten
89         - testen ob krieger noch vorhanden (und aktiv?)
90         - testen ob sichtrecht
91         - schreiben in MOBILE
92
93 - avatare bewegen
94         - ähnlich wie erdlingsbewegen nur zusätzliche tests
95         - avatarstatus beachten (evntl. verändern)
96
97 - verseuchen
98         - noch unklar, weil seuchen noch unklar
99
100 - sintfluten
101         - test ob benachbartes wasserfeld
102         - liest und schreibt aus MAP
103
104 - avatarstatus ändern
105         - testen ob avatar da.
106
107 - tempel zerstören
108         - ...
109
110 - glücksfaktor verändern
111         - ...
112
113 - arche bauen
114         - ...
115
116 Von Clientseite:
117 ================
118
119 - authentifizieren
120 - liste aller spiele
121 - liste aller spiele mit freien positionen (mit rolle)
122 - liste aller spieler
123 - liste aller rollen pro spiel
124 - infos ueber einen spieler 
125 - infos ueber eine rolle eines spielers in einem spiel
126
127 - karte lesen (sichtregeln beachten!)
128 - infos ueber ein feld lesen (auch aus MOBILE) (sichtregeln beachten!)
129
130 - liste der möglichen befehle in einem feld ermitteln
131         (vielfältige tests, viele davon stehen oben bei den serverbefehlen)
132
133 - liste aller nachrichten 
134 - liste aller nachrichten ein feld betreffend
135
136 Von create.pl:
137 ==============
138
139 - lies das erste leere spiel aus GAME
140 - schreibe in MAP
141
142 Von checker.pl: 
143 ===============
144
145 - sehr spezielle einzelne zugriffe (Check.pm selbst definiert keine
146 Struktur)
147
148
149