Mirage Editor Backlog

The server is live! See the details here: https://pwmirage.com/forum/thread/143-the-server-is-live/
  • to do: (starting from nearest plans to the long-term ones)

    * quests editor

    * allow editing different maps (instances)

    * ^ generalize some code first

    * process npc rotation

    * mob editor

    * figure out NPC "triggers" (again an NPC field, from what i understand it's a way to spawn an NPC dynamically upon some action (like quest?) )

    * describe npc types (picture / description?)

    * add help popups on hover

  • 31/10/2019 done:

    * draggable map

    * clickable npc marker

    01/11/2019 done:

    * draggable windows

    * mocked npc view, offered goods view, and item finder view

    * load actual NPCs from the server files

    Apparently there's over 12k NPCs on the main map (including monsters), and showing 12k markers on the screen doesn't give decent performance.

    I will have to implement some more complex logic.

  • 02/11/2019 done:

    * optimize marker rendering (displaying 12k of them lags miserably)

    * calibrate npc positions so that markers are placed accurately

    * fix window drag stopping randomly

    * make use of browser local storage to save the editor state

    * figure out NPC "groups" (it's a field in NPC structure => multiple mobs can be spawned at once in result to an external trigger)

    * design the data format (what will be sent to the server? It'll be some JSON, but what should be the structure? how to parse it nicely in the code?)

  • 04/11/2019 done:

    * load npc names from the server files

    * only show NPC markers on the main map (editing monsters will come much later, so we don't need their markers so far)

  • 05/11/2019 done:

    * open windows in a better default position to make them more user friendly (currently they always show up in a fixed spot on a screen)

    * added npc name labels shown on marker hover

    * gui windows now have "pin" buttons. By default, a window is not pinned and will automatically disappear when the map is dragged. All windows can be pinned.

    * put actual data into the npc view

    The windows will now open in a closest spot on the screen that's the least occupied.

  • 06/11/2019 done:

    * spent a lot of time cleaning up the window layout to make it resizable - it'll be needed for item or icon finder

    * as a result of the above, the npc window can now be resized

    * loaded all the item icons

    * finished up the npc goods window

  • 08/11/2019

    I added *all* PW items to the editor and now I'm having performance issues with the item finder :(

    I need to implement something smart so that it's both fast and pleasant to use

  • 10/11/2019 to do:

    * add a view listing out all custom changes


    I didn't quite make it, but managed to get the needed infrastructure done. I've cleaned up a lot of code and also added a few utilities to ease error reporting and debugging.

  • 12/11/2019 done:

    * the changes view is now fully done

    there's still no functionality to rollback the changes with a single click, but at least we can see what the original data was

    I'm thinking the rollback button would appear in a menu upon right mouse click. I don't want to rush coding it, as a similar menu will be surely used in other areas of the editor - so the code should be somewhat generic.

  • 13/11/2019 done:

    * allow saving npc goods

    * allow saving npc crafts

    * allow adding goods and crafts to NPCs which didn't have them originally

    * ask user whether he wants to change a particular goods/crafts list for a single, selected NPC or all NPCs using that scheme (like all merchants offer the same goods because they use the same object in database)

  • 14/11/2019 done:

    * prepare a nice progress bar for loading all resources at the beginning (it might really take a while)

    * load all resources asynchronously, so the webpage doesn't freeze on slow connection

    * publish!

  • 18/11/2019 done:

    * allow searching by item type -> e.g. find only weapons

    * add item tabs -> categorize them by type (weapon, armor, quest item, refine stone, etc), allow adding custom tabs, add a "recently used" tab