Skip to content

Commit

Permalink
Spell Timer Adjustments 📖 (#203)
Browse files Browse the repository at this point in the history
* Actions Speedup
* Remove Spell Timers for the Slain
    - If an NPC or Player dies, remove any spell timers for them
    - Does not yet correct spell timers using the first word of a multi-word NPC name, but accounts for it
* Remove group on `group_alone` line_type
    - Group state sometimes gets out of sync, sending a message to /g while not in a group will remove it now
* Spell Filter List
* Character Mention Alerts
  • Loading branch information
mgeitz authored Jun 2, 2023
1 parent 645e99f commit ee59cd0
Show file tree
Hide file tree
Showing 9 changed files with 405 additions and 228 deletions.
30 changes: 17 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,24 +190,28 @@ You can control some parser settings using `/say` in-game. This is better suite

Settings and options can be modified in `config/settings.json`

- `character mention alert`: if enabled, speak any chat received line containing the active players name
- `consider eval`: Speak "safe" or "danger" based on consider output
- `debug mode`: Slows down parser performance and produces lots of file output
- `detect character`: Automatically set parser to listen to the most recently active eqlog
- `encounter parsing`: Parse encounter damage
- `encounter parsing auto save`: Save verbose encounter parse results to a file
- `mute`: Disable all text-to-speech output
- `persist player data`: Save /who player output for spell timers
- `raid mode auto set`: Auto-set raid context by zone
- `speech expand lingo`: When speaking a line, replace common EQ abbreviations with complete words
- `speech tld`: Top-level domain for the Google Translate host - [gTTS documentation reference](https://gtts.readthedocs.io/en/latest/module.html)
- `speech lang`: The language (IETF language tag) to read the text in - [gTTS documentation reference](https://gtts.readthedocs.io/en/latest/module.html)
- `auto mob timer`: Create timer events after gaining experience for a duration based on the zone you are in
- `auto mob timer delay`: Set a delay for the auto mob timer notification n seconds before the actual event
- `spell timer delay`: Set a delay for all spell timer notifications n seconds before the actual event
- `spell timer filter by list`: If enabled only create spell timers for spells in filter list
- `spell timer filter list`: List of spells, when true, to filter timers to
- `spell timer filter guild only`: Filter all spell timer events so they are only for yourself or guild members
- `spell timer filter yours only`: Filter all spell timer events to be only spells you cast
- `spell timer guess`: If there is moderate uncertainty in guessing a spell, go for it
- `spell timer other`: Set spell timers for spells that land on other players
- `spell timer guild only`: Filter all spell timer events so they are only for yourself or guild members
- `spell timer self`: Set spell timers for spells that land on yourself
- `persist player data`: Save /who player output for spell timers
- `spell timer yours only`: Filter all spell timer events to be only spells you cast
- `spell timer zone drift`: If enabled add time between zoning to spell timers targetting yourself


Expand Down Expand Up @@ -236,21 +240,21 @@ Example configuration for a line type:

##### General
- `false`: Disable alerting for this line type
- `alert`: Alert for matching strings in `alert` for the line type using the set sound
- `all`: Alert for all lines of a given line type using the set sound
- `"alert"`: Alert for matching strings in `alert` for the line type using the set sound
- `"all"`: Alert for all lines of a given line type using the set sound

##### Context Driven
- `solo`: Alert when solo, grouped, and raiding
- `solo_only`: Alert only when solo
- `group`: Alert when in a group and raiding
- `group_only`: Alert only when grouped
- `solo_group_only`: Alert only when not raiding
- `raid`: Alert when in a raid
- `afk`: Alert only when afk
- `"solo"`: Alert when solo, grouped, and raiding
- `"solo_only"`: Alert only when solo
- `"group"`: Alert when in a group and raiding
- `"group_only"`: Alert only when grouped
- `"solo_group_only"`: Alert only when not raiding
- `"raid"`: Alert when in a raid
- `"afk"`: Alert only when afk

#### Alert Keys

`alert` can be populated with key value pairs. The key here is any string you would like an alert for within that line type.
`"alert"` can be populated with key value pairs. The key here is any string you would like an alert for within that line type.

##### Examples

Expand Down
6 changes: 3 additions & 3 deletions eqa/eqalert.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,8 +284,8 @@ def main():
process_keys.start()

# Act on Parsed Log Lines
## Consume action_q
## Produce display_q, encounter_q, sound_q, system_q, timer_q
## Consume action_q, spell-lines.json, spell-casters.json, spell-timers.json, players.json
## Produce display_q, encounter_q, sound_q, system_q, timer_q, players.json

### Mute List
mute_list = []
Expand Down Expand Up @@ -332,7 +332,7 @@ def main():
process_encounter.daemon = True
process_encounter.start()

# Create (many) Sounds
# Create Sounds, at most 3 sounds at once (sound blocking enabled)
## Consume sound_q
## Produce sounds

Expand Down
Loading

0 comments on commit ee59cd0

Please sign in to comment.