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