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