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