63cfd4fc6b31bf2e897bca621c211bade64fdc22
[aymargeddon/current.git] / TODO
1 noch ein test
2
3 CRITICAL
4                                                             
5 Dinge in dieser Rubrik sollten vor dem nächsten Spielstart erledigt sein.
6
7 Bugs
8
9 - Passwörter nicht mehr im Klartext in der Datenbank ablegen und
10 schon gar nicht im Klartext in der URL stehen haben! Urgs. 
11
12 Testen
13
14 - mal nach SQL-Injection-Möglichkeiten checken. 
15     
16 Features
17
18 - komplett neuer HTML5-Canvas-jquery-Client.
19
20 - Befehle Abrrechbar (mit Link hinter event), siehe
21 (->Befehlseingabesystem)
22
23 - Befehle im Vorraus abgebbar (mit link hinter event) siehe
24 (->Befehlseingabesystem)
25
26 - Produktion in Heimatstädten kommt mit WS 1/x
27 (x=Besatzerkampfstärke) zu Ureinwohnern. -> Aufstand.
28
29 Neue Menu-Struktur:
30
31 - Home/News/Rules/Reference/Login/(Player)/(Map)/Language dabei zeigen
32 alle bis auf die letzten vier Punkte auf das Wiki (Hauptseite/Aktuelle
33 Ereignisse/Regeln/Kurzreferenz). Die englischen Seiten werden erstmal
34 auch auf die deutschen gelenkt, so lange bis das englische Wiki da
35 ist. Vor das Ganze kann man dann noch ein schickes grafisches Portal
36 hängen. (ist das mit dem neuen Client noch relevant?)
37
38 - weitere statistiken anzeigen (in player.epl?) (götter: #tempel,
39 #priester; erdlinge: gesamtkampfstärke) Das ganze sollten zwei
40 Tabellen sein. dort auch nachrichten an spieler verschicken.
41     
42 - Spielende: tempel zerstören sollte nicht mehr möglich sein, sobald
43 überall gebaut wird, nicht erst, wenn der vorletzte tempel fertig ist.
44
45 - Neue Icons: Avatarbewegung, Flut, Arche in Bau. (noch relevant mit
46 neuem Client?)
47     
48
49
50
51
52 WICHTIG
53
54 - die nachfolgenden Abschnitte formatieren ;)
55
56
57
58     Nachricht bei Ertrinken fehlt
59         BUG?: uninitialized value in BUILD_TEMPLE::first_phase()
60             Mitbewegen nur noch bei Archen und umbenennen in
61 einsteigen/aussteigen
62     BUG?: irgendwie kam es in 6_3 zu Fehlern. Beteiligte
63 Randbedingungen: Kampf in der Heimatstadt, zwei weitere Spieler,
64 Archenbesitzerwechsel, Tuberculosis, Umdrehen wg. FRIEND.
65     field-Frame übersichtlicher gestalten. nur wie? siehe Vorschlag
66 Seitenframe
67     überfluten sollte alle Seuchen löschen.
68         In der Map sollte bei allen Bildern das TITLE-Attribut auf den
69 Feldnamen (bzw. Koordinaten) gesetzt werden, damit der Benutzer mit
70 der Maus sieht, wo das ist.
71     find_first_free() sollte nicht die erste freie nehmen, sondern die
72 höchste um eins erhöhen (maximum beachten!) und nur, wenn oben nix
73 mehr frei ist, von unten wieder anfangen. Erleichtert das debuggen!
74     MOVE second_phase() sollte im Log auch die Location zu der es hin
75 geht vermerken, erleichtert das debuggen enorm.
76     Die Message bei Rückzügen sollte auch angeben wohin und nicht nur
77 woher.
78     Aufgeben-Button mit Nachfrage. Wechsel in die Observer-Rolle. Für
79 Erdlinge: Heimatstadt wird normal. Produktion und Beten wird gestoppt.
80 Für Götter: Alle Avatare verschwinden. Kampfstärke für letzte Schlacht
81 wird auf Null gesetzt. Mana weg.
82     Events, die nicht jeder sieht, sondern nur der Spieler, der sie
83 ausgelöst hat. zB für PRAY
84     Trennung von Spielernachrichten und Servernachrichten.
85         Einzelne Messages löschbar
86             BUG: Kampfmessages gehen nicht immer an die Beteiligten
87 (wenn alle sterben und keine Einheit in der näher)
88     "reply" lokalisieren
89         Kurzreferenz sollte epl-generiert sein um die "echten" Zeiten
90 anzeigen zu können
91     "Sterbereihenfolge" überall ändern in "Schlachtordnung"
92         BUG: Es scheint gelegentlich vorzukommen, dass %fdat bei
93 Übergabe an command.epl verlorengeht. Wie reproduzieren ???
94 Möglicherweise tritt das Problem nur beim Serverneustart auf.
95     Manakosten bei Götterbefehlen in command.epl mit anzeigen.
96         FROGS: Ein System für Benutzerabhängige Konfiguration
97             Config aufspalten in FROGS und nicht-FROGS
98                 englisches Wiki
99                     Create: Alle Berge müssen flutbar sein
100 (alternativ: Städte flutbar, siehe Maildiskussion).
101     PEACE darf nicht genullt werden bei kampfloser übername. Leider
102 kann man dann nicht mehr so vorgehen wie jetzt und den PEACE-Wert im
103 PRODUCE-Befehl speichern. Man braucht dann einen PEACE-Zähler in MAP.
104     Bei Glücksfaktor ändern die negativen Zahlen erwähnen.
105         BUG: "need to login" direkt nach dem neu registrieren im
106 field.epl-frame (aber nicht in der map). geht auch beim ersten klick
107 weg. hat mit udat{-loc} zu tun. wie genau, ist unklar.
108     Farben getrennt vom Allianzstatus setzbar.
109         Felder benennbar machen von Feldeigentümer. Name bleibt auch,
110 wenn er das feld verlässt. (zunächst mal Anfangsnamen alle gleich
111 (klick auf Namen zur Umbenennung), später Namen generieren mit einem
112 ähnlichen System wie in Ragnaroek
113     Man sollte den "Inhalt" von sich bewegenden Archen schon sehen,
114 wenn da eigene Leute mitfahren. Nicht für Alliierte.
115     BUG bei Götterkampfbericht: "Neue Helden unassigned position".
116 Sprachenmix.
117     im Frontend PLAGUE und FLOOD nur erlauben, wenn ein Avatar da ist
118 und DESTROY nur auf Inseln. neue funktion
119 aymargeddon::avatar_available benutzen
120     BUG: Dequoten bei SEND_MSG.
121         zusätzliche Kategorien auf player.epl: closed games (da kommen
122 spiele rein, in die man nicht mehr reinkommt, also weil sie voll sind,
123 oder weil sie beendet sind), ohne link! Problem: was ist mit observern?
124     Volle Rollen nicht mehr anzeigen bei role_select.epl. Ausserdem
125 den entsprechenden Fehler abfangen (bei Gleichzeitigkeit wichtig).
126     Automatische Versionsanzeige mittels tla 'tla log-ls|tail -1'
127 (Problem: brauche dazu userrechte, lösung zB: cronjob, der das in eine
128 lesbare datei schreibt, besser: ein script, dass automatisch nach dem
129 update aufgerufen wird. ich glaube tla unterstützt sowas...)
130     Automatische Anzeige seit wann das Backend läuft/ob überhaupt.
131         Beim loggen auch die Duration in ZE angeben, nicht nur in sec.
132             BUG?: probleme mit unify_mobiles() und MOVE_WITH. Leute
133 moven mit, obwohl sie identisch sind. (wie reproduzieren ???)
134     Bei Spielende müssen alle Befehle eine entsprechende Fehlermeldung
135 erzeugen. Besser: garnicht erst die Links anzeigen.
136     BUG: MOVE::second_phase() muss checken, ob das Feld inzwischen
137 geflutet wurde... in enter_field()? Dann Umkehr?
138     EARTHLING_FIGHT: Avatare sollten nicht mitkämpfen, wenn neutral
139         last_login in PLAYER schreiben und anzeigen
140             Voreingestelltes fliehen ohne kampf bei übermacht
141 (einstellbar pro feld)
142     voreingestellter MOVE-Befehl für produzierte krieger.
143         Erdlingseinheiten zuteilbar in Garnison und mobile Einheiten.
144 Mobile Einheiten helfen automatisch in Nachbarfeldern aus.
145     UNSCHOEN: HexTorus::neighbours() gibt doppelte zurück bei
146 wrap-around
147     Sourcen einen eigenen 'Aymargeddon'-Namensraum geben. Nur dieses
148 'Aymargeddon'-Verzeichnis muss sichtbar gemacht werden. Vereinfacht
149 die Administration#Installation auf Debian und alle Updates, bei denen
150 neue Source-Dateien hinzukommen. Problem: Was ist mit dem
151 FROGS-Namensraum? 
152
153 Checker
154
155     BUG: test A_in_B benutzt fälschlicherweise single_select()
156         test nach mobiles mit count = 0
157             Test nach non-available units ohne befehle.
158                 Tests für MOVE_WITH
159                     tests für avatarkämpfe
160                         testen ob FIGHT_EARTHLING vorhanden und Event
161 gesetzt wenn ATTACKER da.
162     neuer check-typ LOCATION: Funktion wird für jede Location aufgerufen
163         test summarize 
164         
165         sonstiges
166         
167             mailingliste selber machen. 
168             
169             UNWICHTIG:
170             
171                 Bei Ereignissen, die jetzt oder in der Vergangenheit
172 stattfinden anstatt der leeren Zeit anzeigen: "so bald wie möglich".
173     BUG: death_count bei kämpfenden unbesetzten städten kann negativ
174 werden, hat aber keine weiteren Auswirkungen.
175     UNSCHÖN: an einigen Stellen funktioniert das Programm nicht mehr,
176 wenn alte Events oder alte Befehle nicht gelöscht werden (ist in der
177 Config noch vorgesehen)
178     wirklich???: (getrennte Seiten für Statistik, Messages, (Events)
179 (alle in player.epl nur mit unterschiedlichen Modi)
180     Mitte der Karte selber auswählen.
181         in player.epl gleich ein Spiel auswählen, wenn man das erste
182 mal reinkommt.
183     role-seite
184         BUG: startfeld für observer manchmal nicht Aymargeddon
185 (gleichzeitig login dysfunktional) wahrscheinlich in player.epl
186     defaults in command.epl
187         move in command.epl mehr zum klicken
188             bei messages sollten überall clickable locations und
189 clickable roles übergeben werden. Man kann das _nicht_ in
190 Command::test() direkt implementieren, weil das aymargeddon-spezifisch
191 ist. Man kann aber eigene Funktionen definieren, die einen Link zu
192 einem Feld liefern (in Location) oder einen Link zu einer Role (in
193 Aymargeddon).
194     field.epl schöner machen (grammatik kapseln)
195         neue messages/ereignisse seit dem letzten einloggen hervorheben
196             multi-table select join/union zur performance-verbesserung
197                 UNSCHOEN: Messages werden in parse_args() falsch
198 geparsed. deswegen wiederlicher Workaround bei SEND_MSG nötig
199     MOVE für admin-einheiten erlauben. könnte praktisch sein.
200         admin darf alle befehle ausführen (in nullzeit ohne mana).
201             unschoen: DataBase::quote_condition()
202                 diverse Lokalisierungen sind haesslich (grammatik,
203 GLOBAL, ...)
204     eigene seite mit manakonto für die götter (Soll und Haben...)
205         test auf numerische argumente (gibts bei DBI)
206             message_to_field() ist ein Riesenaufwand, weil immer alle
207 Sichtrechte gecheckt werden müssen. Wie lösen? So: Sichtrechte in die
208 Datenbank eintragen und bei MOVE anpassen? dafür ist eigene Tabelle
209 nötig. aber: message_to_field() wird eh nur noch selten benutzt, lohnt
210 also der aufwand überhaupt? 
211
212 TEST
213
214 Diese Datei wird inzwischen im Wiki gepflegt:
215
216 http://www.aymargeddon.de/wiki/index.php/TODO