Skip to content

Alternative interface for Habitica based on the GUI from the classic EverQuest client circa 1999

Notifications You must be signed in to change notification settings

brynnb/everbitica

Repository files navigation

EverBitica

image

This is an alternative interface for Habitica based on the GUI from the classic EverQuest client circa ~1999. I'm working on this project because I really enjoy Habitica and use it daily but also have a lot of nostalgia for Everquest. The richness of spells/skills/items/tradeskills available in the EverQuest universe will provide a lot more incentive/reward/progress than base Habitica by itself, which runs out of most content after around three months.

This alternative interface is a stand-alone Django web application and doesn't integrate directly with Habitica aside from API calls.

Dev

Run docker "everbitica" - there's a container for serving the web app and another for the database.

Running docker ps in terminal can verify these are running.

docker-compose exec web python manage.py shell to dabble with docker shell

Change "OFFLINE_MODE" to True in the .env (or index function of views.py) to make the page load much faster (useful for when editting HTML/CSS) while retaining presentation of cached data. Habitica API requests are notoriously slow and make page loads several seconds.

Setup, Migrating, and Seeding

docker-compose exec web python manage.py project_setup

Alternatively, to seed all EQ tables used in EQEmulator, to research and investigate structure or whatever:

docker exec -it everbitica-db-1 /bin/bash -c "mysql -u user_name -puser_password database_name < /devassets/everquest_data.sql"

To see most recent foreign key constraint error:

docker exec -it everbitica-db-1 /bin/bash -c "mysql -u user_name -puser_password database_name -e 'SHOW ENGINE INNODB STATUS\\G'"

Tests

docker-compose exec web python manage.py test

Requirements Updates

Changes to requirements.txt to add libraries requires:

  1. docker-compose build
  2. docker-compose up

To-Do

  • Write a utility to go through all imported EQ data and try to create an object instance with it see if it causes an error - this would catch any issues that would have come up converting the EQ database information into Django models
  • Make current user name not show in party members
  • Have pending bosses have "Pending:" in front of target name, or maybe not display at all
  • Add options window
  • Add webhooks to auto update (probably wait for React implementation for this)
  • Allow sending chat messages
  • Install React and transition HTML/CSS/JS to that
  • Fix targeting for stuff like aprils fools events (since it's an event and not a quest, it was confusing how this is accessed in content.json since it's seemingly not there at all)
  • Add auto-action options
    • Auto-heal
    • Auto-buy healing potion
    • Auto-nuke
    • Auto quest accept
    • Auto chat pending boss damage
    • Auto-cron at cron time (to make player vs boss damage happen sooner than later)
  • Multi-nuke option
  • Test for bugs when not in a party
  • Lots more

Probably Not Doing Any Time Soon

  • Pull in habits and to-do items, be able to press them in UI - recreating this is a lot of work for not much return, easy enough to mark off on actual Habitica website. However with Habitica being open-source, maybe I can use their existing React code to make this faster.

Resources

Notes

  • This project uses MariaDB instead of the Postgres default because the original EQEmulator data dump is from a MySQL database (for which MariaDB is a drop-in replacement)
  • NPC attack rate should be 3 seconds for everything under level 25. This is good enough for me for this project. It's maybe only Kunark where it even changes after level 25.

License

This project's use of EverQuest images and text falls under Fair Use because this project is both commentary and parody by contrasting the completely useless time-suck of EverQuest with the productive and life-enriching habits tracked and encouraged by Habitica. It will also never generate income of any sort and generally has zero impact on the value and operation of the EverQuest franchise by its current owners.

About

Alternative interface for Habitica based on the GUI from the classic EverQuest client circa 1999

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published