Skip to content

Commit

Permalink
Clicky Spell Timers 📜 (#205)
Browse files Browse the repository at this point in the history
* Fix Spell Timer Other State Save
* Spell Timer Pop-Up Window
* Clicky Spell Timers
  - Adds spell-items.json
  - Adds self to spell-casters.json
  - Improve action spell timer readability (maybe), and probably break some
    things
  • Loading branch information
mgeitz committed Jun 10, 2023
1 parent efc5d50 commit c9fbef8
Show file tree
Hide file tree
Showing 8 changed files with 7,175 additions and 1,286 deletions.
21 changes: 19 additions & 2 deletions README.md
Expand Up @@ -31,6 +31,7 @@ $ docker compose run eqalert

> Note: If running through docker after installing and running on your host, update or regenerate `~/.eqa/config/settings.json` to reflect local container paths in `/home/eqalert`

## Getting Started

Start things up
Expand All @@ -44,6 +45,7 @@ $HOME/.eqa
⎿ config/
⎿ line-alerts/
⎿ data/
⎿ timers/
⎿ encounters/
⎿ log/
⎿ debug/
Expand All @@ -65,6 +67,7 @@ Spot check these default paths generated in `config/settings.json`
```
> Press `0` to reload your configs or restart the program if any changes were made. Though generally, it's a good idea to stop eqalert before manually editing your config files.

## Data

### Spell Timers
Expand All @@ -81,10 +84,23 @@ EQ Alert will generate/overwrite `data/spell-casters.json` each version. This f

Many spells cast in EverQuest share the same log output lines. EQ Alert will generate/overwrite `data/spell-lines.json` each version as a mapping of which possible spells a given output line could be associated to.

### Spell Items

EQ Alert will generate/overwrite `data/spell-items.json` each version as a mapping of which items a given spell could be cast by.

### Players

EQ Alert uses in-game `/who` output to keep an up-to-date list of each seen players class, level, and guild organized by server in `data/players.json` for alerting spell duration.

### Saved Timers

If the active character is changed or EQ Alert is stopped, all active timers are saved to a file in `data/timers/` by the previously active character and server name. This file is consumed when the parser sets that character as active again, adding all non-expired timers back to the timer list.


## Encounters

When encounter parse saving is enabled, complete encounter reports are saved under `encounters/[zone_name]/[date]/` as the time stamp of the encounter and the encounter target.


## Controls

Expand All @@ -97,7 +113,8 @@ EQ Alert uses in-game `/who` output to keep an up-to-date list of each seen play
- 3 : Parse
- 4 : Settings
- q / esc : Quit
- h : Help
- h : Help pop-up
- t : Timers pop-up

#### Events
- c : Clear event box
Expand All @@ -106,7 +123,7 @@ EQ Alert uses in-game `/who` output to keep an up-to-date list of each seen play
- m : Toggle global audio mute
- p : Toggle encounter parse save
- r : Toggle raid mode
- t : Toggle automatic mob respawn timers
- y : Toggle automatic mob respawn timers

#### Settings
- up : Up in selection
Expand Down
5 changes: 5 additions & 0 deletions eqa/eqalert.py
Expand Up @@ -144,6 +144,9 @@ def startup(base_path, version):
# Generate spell-casters.json
eqa_config.update_spell_casters(data_path, version)

# Generate spell-items.json
eqa_config.update_spell_items(data_path, version)

# Generate Players List File
player_data_file = data_path + "players.json"
if not os.path.isfile(player_data_file):
Expand Down Expand Up @@ -276,6 +279,7 @@ def main():
display_q,
keyboard_q,
system_q,
timer_q,
cfg_reload,
exit_flag,
),
Expand Down Expand Up @@ -772,6 +776,7 @@ def main():
display_q,
keyboard_q,
system_q,
timer_q,
cfg_reload,
exit_flag,
),
Expand Down

0 comments on commit c9fbef8

Please sign in to comment.