Add inactivity logout system and combat SFX
- Add automatic logout after configurable inactivity period (default 10 min) - Show warning banner before logout occurs - Add inactivity timeout settings to admin panel - Add combat sound effects (player/monster attack, skills, miss, death) - Add login music track - Update moop_fanciest monster artwork - Add artwork_todo.md for tracking emoji replacements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>master
-
28admin.html
-
150artwork_todo.md
-
1docker-compose.yml
-
163index.html
-
BINmapgameimgs/monsters/moop_fanciest100.png
-
BINmapgameimgs/monsters/moop_fanciest50.png
-
BINmapgamemusic/login.mp3
-
7server.js
-
7service-worker.js
-
BINsfx/missed.mp3
-
BINsfx/monster_attack.mp3
-
BINsfx/monster_death.mp3
-
BINsfx/monster_skill.mp3
-
BINsfx/player_attack.mp3
-
BINsfx/player_skill.mp3
-
34to_do.md
@ -0,0 +1,150 @@ |
|||||
|
# HikeMap Artwork Todo |
||||
|
|
||||
|
Track all emoji replacements and custom artwork needed. All icons should follow the existing `50.png` / `100.png` sizing convention. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Combat Log / Battle Events |
||||
|
|
||||
|
| Emoji | Current Usage | Art File | Status | |
||||
|
|-------|---------------|----------|--------| |
||||
|
| ⚔️ | Player attack hit, generic combat | `icons/attack.png` | [ ] | |
||||
|
| ✨ | Multi-hit skill damage | `icons/multi_hit.png` | [ ] | |
||||
|
| 🌟 | Multi-target skill hit | `icons/aoe_hit.png` | [ ] | |
||||
|
| 🔥 | Monster skill / status effect damage | `icons/fire_attack.png` | [ ] | |
||||
|
| ❌ | Miss (player or monster) | `icons/miss.png` | [ ] | |
||||
|
| 💀 | Enemy defeated / Player death | `icons/skull.png` | [ ] | |
||||
|
| ☠️ | Poison tick damage | `icons/poison.png` | [ ] | |
||||
|
| 💚 | Heal skill used | `icons/heal.png` | [ ] | |
||||
|
| 🛡️ | Defense buff activated | `icons/shield_buff.png` | [ ] | |
||||
|
| ⚡ | Player turn / dodge buff / quick skills | `icons/lightning.png` | [ ] | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Stats & Character Sheet |
||||
|
|
||||
|
| Emoji | Current Usage | Art File | Status | |
||||
|
|-------|---------------|----------|--------| |
||||
|
| ❤️ | HP stat label | `icons/stat_hp.png` | [ ] | |
||||
|
| 💙 | MP stat label | `icons/stat_mp.png` | [ ] | |
||||
|
| ⚔️ | ATK stat label | `icons/stat_atk.png` | [ ] | |
||||
|
| 🛡️ | DEF stat label | `icons/stat_def.png` | [ ] | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Class Icons (for HUD, combat, character sheet) |
||||
|
|
||||
|
| Emoji | Class | Art Files | Status | |
||||
|
|-------|-------|-----------|--------| |
||||
|
| 🏃 | Trail Runner | `classes/trail_runner50.png`, `classes/trail_runner100.png` | [ ] | |
||||
|
| 💪 | Gym Bro | `classes/gym_bro50.png`, `classes/gym_bro100.png` | [ ] | |
||||
|
| 🧘 | Yoga Master | `classes/yoga_master50.png`, `classes/yoga_master100.png` | [ ] | |
||||
|
| 🏋️ | CrossFit Crusader | `classes/crossfit50.png`, `classes/crossfit100.png` | [ ] | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Race Icons (Character Creator) |
||||
|
|
||||
|
| Emoji | Race | Art File | Status | |
||||
|
|-------|------|----------|--------| |
||||
|
| 👤 | Human | `races/human.png` | [ ] | |
||||
|
| 🧝 | Elf | `races/elf.png` | [ ] | |
||||
|
| ⛏️ | Dwarf | `races/dwarf.png` | [ ] | |
||||
|
| 🦶 | Halfling | `races/halfling.png` | [ ] | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## UI Elements |
||||
|
|
||||
|
| Emoji | Current Usage | Art File | Status | |
||||
|
|-------|---------------|----------|--------| |
||||
|
| 🏠 | Home base button / entered home base | `icons/home.png` | [ ] | |
||||
|
| 📍 | Geocache marker / location pin | `icons/pin.png` | [ ] | |
||||
|
| 🎯 | Destination reached notification | `icons/target.png` | [ ] | |
||||
|
| 🎵 | Music on button | `icons/music_on.png` | [ ] | |
||||
|
| 🔇 | Music muted button | `icons/music_off.png` | [ ] | |
||||
|
| ⚙️ | Settings header | `icons/settings.png` | [ ] | |
||||
|
| ✏️ | Edit tools header | `icons/pencil.png` | [ ] | |
||||
|
| 🛠️ | Developer tools header | `icons/tools.png` | [ ] | |
||||
|
| ⚠️ | Warning / error notification | `icons/warning.png` | [ ] | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Player Portraits (Combat UI) |
||||
|
|
||||
|
Need player character art to display in combat instead of class emoji. |
||||
|
|
||||
|
| Class | Art Files | Status | |
||||
|
|-------|-----------|--------| |
||||
|
| Trail Runner | `players/trail_runner50.png`, `players/trail_runner100.png` | [ ] | |
||||
|
| Gym Bro | `players/gym_bro50.png`, `players/gym_bro100.png` | [ ] | |
||||
|
| Yoga Master | `players/yoga_master50.png`, `players/yoga_master100.png` | [ ] | |
||||
|
| CrossFit Crusader | `players/crossfit50.png`, `players/crossfit100.png` | [ ] | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Skill Icons (Optional - currently use class icons or ⚔️) |
||||
|
|
||||
|
Could add unique icons per skill for the combat UI skill buttons. |
||||
|
|
||||
|
| Skill ID | Skill Name | Art File | Status | |
||||
|
|----------|------------|----------|--------| |
||||
|
| basic_attack | Attack / Kickems | `skills/basic_attack.png` | [ ] | |
||||
|
| double_attack | Double Attack / Brand New Hokas | `skills/double_attack.png` | [ ] | |
||||
|
| power_strike | Power Strike / Downhill Sprint | `skills/power_strike.png` | [ ] | |
||||
|
| heal | Heal / Gel Pack | `skills/heal.png` | [ ] | |
||||
|
| defend | Defend / Pace Yourself | `skills/defend.png` | [ ] | |
||||
|
| quick_step | Quick Step | `skills/quick_step.png` | [ ] | |
||||
|
| second_wind | Second Wind | `skills/second_wind.png` | [ ] | |
||||
|
| finish_line_sprint | Finish Line Sprint | `skills/finish_line_sprint.png` | [ ] | |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Summary |
||||
|
|
||||
|
| Category | Count | Priority | |
||||
|
|----------|-------|----------| |
||||
|
| Combat Log Icons | 10 | High | |
||||
|
| Stat Icons | 4 | High | |
||||
|
| Class Icons | 4 (x2 sizes) | High | |
||||
|
| Race Icons | 4 | Medium | |
||||
|
| UI Elements | 9 | Medium | |
||||
|
| Player Portraits | 4 (x2 sizes) | High | |
||||
|
| Skill Icons | 8+ | Low | |
||||
|
|
||||
|
**Total unique artwork pieces needed: ~35-45** |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Directory Structure |
||||
|
|
||||
|
``` |
||||
|
mapgameimgs/ |
||||
|
├── monsters/ # (existing) |
||||
|
├── bases/ # (existing - home base icons) |
||||
|
├── icons/ # NEW - UI and combat log icons |
||||
|
│ ├── attack50.png |
||||
|
│ ├── attack100.png |
||||
|
│ ├── heal50.png |
||||
|
│ └── ... |
||||
|
├── classes/ # NEW - class portraits |
||||
|
│ ├── trail_runner50.png |
||||
|
│ ├── trail_runner100.png |
||||
|
│ └── ... |
||||
|
├── races/ # NEW - race icons for character creator |
||||
|
│ ├── human.png |
||||
|
│ └── ... |
||||
|
├── players/ # NEW - player combat portraits |
||||
|
│ └── ... |
||||
|
└── skills/ # NEW - skill button icons (optional) |
||||
|
└── ... |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## Implementation Notes |
||||
|
|
||||
|
1. **Combat Log**: Replace emoji strings with `<img>` tags, add CSS for inline sizing |
||||
|
2. **HUD/Buttons**: Replace innerHTML emoji with background-image or `<img>` |
||||
|
3. **Combat UI**: Player portrait already has placeholder div (`#playerCombatIcon`) |
||||
|
4. **Fallback**: Keep emoji as fallback if image fails to load |
||||
|
Before Width: 102 | Height: 100 | Size: 15 KiB After Width: 102 | Height: 100 | Size: 9.1 KiB |
|
Before Width: 50 | Height: 50 | Size: 5.7 KiB After Width: 50 | Height: 50 | Size: 4.8 KiB |