A. GLOBALS ! NOTE: terms like "[foobar]" define "layout" elements - redesign [menu] and [toolbar] (and [header]!?) into an "one-line" look; - keep "targets" lists (attacked villages & co) - provide some UI controls to use the "targets lists" - all AJAX Windows: handle errors properly! e.g. "anti-bot" B. FEATURES ! NOTE: terms like "[foo-bar]" define "pages" based on game's query ! arguments, e.g. screen=foo & mode=bar - [overview] allow presenting (at least some) overviews entirely from cache, avoiding an (usually) roundtrip to server - [overview] army; - [enhanceScreenMain] optimize! drop some sugar, gain some speed! - [main-build] menu for (semi)automatically request "missing resources" 1. click on the "missing resource" TD 2. open menu containing villages that *have* that resource; 3. clicking on any of those village should trigger a Window containing the "trade" form 4. handle form.submit "AJAXly" - [main-destroy] enhance grid (level, points, hints) - [market] Window based functionality; - [market-other] automatically preset "accept" value to the maximum possible value - [market-other] replace "trader_time_max_hours" and "ratio_max" with select boxes containing a small number of *decent* values trader_time_max_hours: 3, 6, 12, 24, 240 ratio_max: 0.5, 1, 1.5, 2 -> concat current input "value" could be useful -> preselect current input "value" - [report-attack] optimal farming: show up *usable* troops (what if "light" is not available yet in that town? a switch to "spear" should be done); - [report-attack] optimal farming: add the time necessary to fill the booty; - [report-attack] (semi?)automatic farming how? 1. focus last *attack* *report* (screen=report, mode=attack, view=\d+) 2. click some "auto farm" button 3. turn on some "this.autoFarm" switch; -> the "controller" should check it out and react to proper events when it's enabled C. INTERNALS - [internals] use DOM:Storage if available (window.globalStorage); ^ design a transparent wrapper is enough? NO! All data storage/retrieval must be redesigned :( - [internals] split "parse" from "enhance" methods; ^ ideally, all pages should follow this flow: 1. gather page information 2. cleanup page HTML/CSS/JS code 3. enhance HTML code 4. setup behaviour - [internals] add "generic" village support in order to be able to store information regarding "foreign" villages - [internals] use custom events for stuff that should happen *after* DOMLoaded *but* as soon as window.load; -> required in order to reactivate the "window flicker" workaround; - [internals] game events queues/handlers: * buildingFinished, buildingCanceled * infantryFinished, infantryCanceled * cavalryFinished, cavalryCanceled * artilleryFinished, artilleryCanceled -> maybe to be expanded "by unit"? * innovationFinished, innovationCanceled * bootyReceived, goodsReceived * marketeersReturned * attackTroopsReturned, supportTroopsReturned * villageToBeAttacked, villageToBeAttackedCanceled -> somebody planned an attack upon one of our villages * attackFinished * messageReceived ------------------------------------------------------------------------------- MUSINGS: Putere de atac /graphic/unit/att.png Apărare în general /graphic/unit/def.png Apărarea prin cavalerie /graphic/unit/def_cav.png Apărarea prin arcaşi /graphic/unit/def_archer.png toolbar/menu "special" icons: img[href*="/graphic/new_report.png"] -> "ai rapoarte noi!" img[href*="/graphic/ally_forum.png"] -> "sunt mesaje noi pe forumul tribului" img[href*="/graphic/new_mail.png"] -> "ai mesaje noi!" Misc graphics: "answered message" /graphic/answered_mail.png "new message" /graphic/new_mail.png "read message" /graphic/read_mail.png "trimis mai departe" /graphic/forwarded.png "dots": /graphic/dots/green.png | yellow | blue | red "gauges background": /graphic/balken_glueck.png "support": /graphic/command/support.png "attack": /graphic/command/attack.png "cancel": /graphic/command/cancel.png parse errors: