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