no more dangerous logging of passwords...
[aymargeddon/current.git] / TODO
diff --git a/TODO b/TODO
index 610f112..3a40fd6 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,3 +1,218 @@
+CRITICAL
+========
+                                                           
+Dinge in dieser Rubrik sollten vor dem nächsten Spielstart erledigt sein.
+
+Bugs
+----
+
+- Passwörter nicht mehr im Klartext in der Datenbank ablegen und
+schon gar nicht im Klartext in der URL stehen haben! Urgs. 
+
+- $::conf->{-EPL_DEBUG} funktioniert nicht. Es wird -DEBUG verwendet,
+auch wenn man in einem epl-script ist.
+
+- Umlaute in der DB müssen nach utf8 konvertiert werden. Siehe:
+http://en.gentoo-wiki.com/wiki/TIP_Convert_latin1_to_UTF-8_in_MySQL
+
+- Mobiles können vereinzeln. Genaue Umstände unklar. Möglicherweise hat es was mit länger nicht laufendem scheduler zu tun?
+Aufgetreten ist es durch Produktion in einer Heimatstadt nach Bewegung.
+
+Testen
+------
+
+- mal nach SQL-Injection-Möglichkeiten checken. 
+    
+Features
+--------
+
+- komplett neuer HTML5-Canvas-jquery-Client.
+
+- Befehle Abrrechbar (mit Link hinter event), siehe
+(->Befehlseingabesystem)
+
+- Befehle im Vorraus abgebbar (mit link hinter event) siehe
+(->Befehlseingabesystem)
+
+- Produktion in Heimatstädten kommt mit WS 1/x
+(x=Besatzerkampfstärke) zu Ureinwohnern. -> Aufstand.
+
+Neue Menu-Struktur:
+-------------------
+
+- Home/News/Rules/Reference/Login/(Player)/(Map)/Language dabei zeigen
+alle bis auf die letzten vier Punkte auf das Wiki (Hauptseite/Aktuelle
+Ereignisse/Regeln/Kurzreferenz). Die englischen Seiten werden erstmal
+auch auf die deutschen gelenkt, so lange bis das englische Wiki da
+ist. Vor das Ganze kann man dann noch ein schickes grafisches Portal
+hängen. (ist das mit dem neuen Client noch relevant?)
+
+- weitere statistiken anzeigen (in player.epl?) (götter: #tempel,
+#priester; erdlinge: gesamtkampfstärke) Das ganze sollten zwei
+Tabellen sein. dort auch nachrichten an spieler verschicken.
+    
+- Spielende: tempel zerstören sollte nicht mehr möglich sein, sobald
+überall gebaut wird, nicht erst, wenn der vorletzte tempel fertig ist.
+
+- Neue Icons: Avatarbewegung, Flut, Arche in Bau. (noch relevant mit
+neuem Client?)
+    
+
+
+
+
+WICHTIG
+=======
+
+Dinge in dieser Rubrik sollten spätestens im Laufe des nächsten Testspiels angegangen werden.
+
+- translate this TODO into english
+
+- Error: Tag 'ROLE_UNDEFINED' not defined for language 'DE' (player.epl, wenn keine rolle gewählt)
+- Farben getrennt vom Allianzstatus setzbar.
+- Nachricht bei Ertrinken fehlt
+- BUG?: uninitialized value in BUILD_TEMPLE::first_phase()
+- Mitbewegen nur noch bei Archen und umbenennen in einsteigen/aussteigen (was statt dessen?)
+- BUG?: irgendwie kam es in 6_3 zu Fehlern. Beteiligte Randbedingungen: Kampf in der Heimatstadt, zwei weitere Spieler,
+Archenbesitzerwechsel, Tuberculosis, Umdrehen wg. FRIEND.
+- überfluten sollte alle Seuchen löschen.
+- find_first_free() sollte nicht die erste freie nehmen, sondern die
+höchste um eins erhöhen (maximum beachten!) und nur, wenn oben nix
+mehr frei ist, von unten wieder anfangen. Erleichtert das debuggen!
+- MOVE second_phase() sollte im Log auch die Location zu der es hin
+geht vermerken, erleichtert das debuggen enorm.
+- Die Message bei Rückzügen sollte auch angeben wohin und nicht nur
+woher.
+- Aufgeben-Button mit Nachfrage. Wechsel in die Observer-Rolle. Für
+Erdlinge: Heimatstadt wird normal. Produktion und Beten wird gestoppt.
+Für Götter: Alle Avatare verschwinden. Kampfstärke für letzte Schlacht
+wird auf Null gesetzt. Mana weg.
+- Events, die nicht jeder sieht, sondern nur der Spieler, der sie
+ausgelöst hat. zB für PRAY
+- Trennung von Spielernachrichten und Servernachrichten.
+- Einzelne Messages löschbar
+- BUG: Kampfmessages gehen nicht immer an die Beteiligten
+(wenn alle sterben und keine Einheit in der näher)
+- "reply" lokalisieren
+- Kurzreferenz sollte epl-generiert sein um die "echten" Zeiten
+anzeigen zu können
+- "Sterbereihenfolge" überall ändern in "Schlachtordnung"
+- BUG: Es scheint gelegentlich vorzukommen, dass %fdat bei
+Übergabe an command.epl verlorengeht. Wie reproduzieren ???
+Möglicherweise tritt das Problem nur beim Serverneustart auf.
+- Manakosten bei Götterbefehlen in command.epl mit anzeigen.
+- FROGS: Ein System für Benutzerabhängige Konfiguration
+- Config aufspalten in FROGS und nicht-FROGS
+- Wiki und englisches Wiki
+- Create: Alle Berge müssen flutbar sein
+- PEACE darf nicht genullt werden bei kampfloser übername. Leider
+kann man dann nicht mehr so vorgehen wie jetzt und den PEACE-Wert im
+PRODUCE-Befehl speichern. Man braucht dann einen PEACE-Zähler in MAP.
+- Bei Glücksfaktor ändern die negativen Zahlen erwähnen. (?)
+- BUG: "need to login" direkt nach dem neu registrieren im
+field.epl-frame (aber nicht in der map). geht auch beim ersten klick
+weg. hat mit udat{-loc} zu tun. wie genau, ist unklar.
+- Felder benennbar machen von Feldeigentümer. Name bleibt auch,
+wenn er das feld verlässt. (zunächst mal Anfangsnamen alle gleich
+(klick auf Namen zur Umbenennung), später Namen generieren mit einem
+ähnlichen System wie in Ragnaroek
+- Man sollte den "Inhalt" von sich bewegenden Archen schon sehen,
+wenn da eigene Leute mitfahren. Nicht für Alliierte.
+- BUG bei Götterkampfbericht: "Neue Helden unassigned position".
+Sprachenmix.
+- im Frontend PLAGUE und FLOOD nur erlauben, wenn ein Avatar da ist
+und DESTROY nur auf Inseln. neue funktion aymargeddon::avatar_available benutzen
+- BUG: Dequoten bei SEND_MSG.
+- zusätzliche Kategorien auf player.epl: closed games (da kommen
+spiele rein, in die man nicht mehr reinkommt, also weil sie voll sind,
+oder weil sie beendet sind), ohne link! Problem: was ist mit observern?
+- Volle Rollen nicht mehr anzeigen bei role_select.epl. Ausserdem
+den entsprechenden Fehler abfangen (bei Gleichzeitigkeit wichtig). (?)
+- Automatische Anzeige seit wann das Backend läuft/ob überhaupt.
+- Beim loggen auch die Duration in ZE angeben, nicht nur in sec.
+- BUG?: probleme mit unify_mobiles() und MOVE_WITH. Leute
+moven mit, obwohl sie identisch sind. (wie reproduzieren ???)
+- Bei Spielende müssen alle Befehle eine entsprechende Fehlermeldung
+erzeugen. Besser: garnicht erst die Links anzeigen.
+- BUG: MOVE::second_phase() muss checken, ob das Feld inzwischen
+geflutet wurde... in enter_field()? Dann Umkehr?
+- EARTHLING_FIGHT: Avatare sollten nicht mitkämpfen, wenn neutral
+- last_login in PLAYER schreiben und anzeigen
+- Voreingestelltes fliehen ohne kampf bei übermacht (einstellbar pro feld)
+- voreingestellter MOVE-Befehl für produzierte krieger.
+- Erdlingseinheiten zuteilbar in Garnison und mobile Einheiten. Mobile Einheiten helfen automatisch in Nachbarfeldern aus.
+- UNSCHOEN: HexTorus::neighbours() gibt doppelte zurück bei wrap-around
+- Sourcen einen eigenen 'Aymargeddon'-Namensraum geben. Nur dieses
+'Aymargeddon'-Verzeichnis muss sichtbar gemacht werden. Vereinfacht
+die Administration#Installation auf Debian und alle Updates, bei denen
+neue Source-Dateien hinzukommen. Problem: Was ist mit dem
+FROGS-Namensraum? 
+
+#### ab hier neu formatieren ###
+
+Checker
+
+    BUG: test A_in_B benutzt fälschlicherweise single_select()
+        test nach mobiles mit count = 0
+           Test nach non-available units ohne befehle.
+               Tests für MOVE_WITH
+                   tests für avatarkämpfe
+                       testen ob FIGHT_EARTHLING vorhanden und Event
+gesetzt wenn ATTACKER da.
+    neuer check-typ LOCATION: Funktion wird für jede Location aufgerufen
+        test summarize 
+       
+       sonstiges
+       
+           mailingliste selber machen. 
+           
+           UNWICHTIG:
+
+- 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. 
+           
+               Bei Ereignissen, die jetzt oder in der Vergangenheit
+stattfinden anstatt der leeren Zeit anzeigen: "so bald wie möglich".
+    BUG: death_count bei kämpfenden unbesetzten städten kann negativ
+werden, hat aber keine weiteren Auswirkungen.
+    UNSCHÖN: an einigen Stellen funktioniert das Programm nicht mehr,
+wenn alte Events oder alte Befehle nicht gelöscht werden (ist in der
+Config noch vorgesehen)
+    wirklich???: (getrennte Seiten für Statistik, Messages, (Events)
+(alle in player.epl nur mit unterschiedlichen Modi)
+    Mitte der Karte selber auswählen.
+        in player.epl gleich ein Spiel auswählen, wenn man das erste
+mal reinkommt.
+    role-seite
+        BUG: startfeld für observer manchmal nicht Aymargeddon
+(gleichzeitig login dysfunktional) wahrscheinlich in player.epl
+    defaults in command.epl
+        move in command.epl mehr zum klicken
+           bei messages sollten überall clickable locations und
+clickable roles übergeben werden. Man kann das _nicht_ in
+Command::test() direkt implementieren, weil das aymargeddon-spezifisch
+ist. Man kann aber eigene Funktionen definieren, die einen Link zu
+einem Feld liefern (in Location) oder einen Link zu einer Role (in
+Aymargeddon).
+    field.epl schöner machen (grammatik kapseln)
+        neue messages/ereignisse seit dem letzten einloggen hervorheben
+           multi-table select join/union zur performance-verbesserung
+               UNSCHOEN: Messages werden in parse_args() falsch
+geparsed. deswegen wiederlicher Workaround bei SEND_MSG nötig
+    MOVE für admin-einheiten erlauben. könnte praktisch sein.
+        admin darf alle befehle ausführen (in nullzeit ohne mana).
+           unschoen: DataBase::quote_condition()
+               diverse Lokalisierungen sind haesslich (grammatik,
+GLOBAL, ...)
+    eigene seite mit manakonto für die götter (Soll und Haben...)
+        test auf numerische argumente (gibts bei DBI)
+           message_to_field() ist ein Riesenaufwand, weil immer alle
+Sichtrechte gecheckt werden müssen. Wie lösen? So: Sichtrechte in die
+Datenbank eintragen und bei MOVE anpassen? dafür ist eigene Tabelle
+nötig. aber: message_to_field() wird eh nur noch selten benutzt, lohnt
+also der aufwand überhaupt? 
+
+TEST
+
 Diese Datei wird inzwischen im Wiki gepflegt:
 
 http://www.aymargeddon.de/wiki/index.php/TODO