polats Claude Opus 4.8 (1M context) commited on
Commit
74df6c5
·
1 Parent(s): b39f807

Space: theme-independent parchment (no theme redirect), full 47-char roster, fonts via Gradio vars

Browse files

- Drop the ?__theme=light redirect; override Gradio's colour + font CSS vars with
!important so it renders parchment + ink in BOTH light and dark OS modes (dark
mode was turning text white). The redirect also hid dark mode from testing.
- Ship auto-battler's FULL character manifest (47 chars, 7 packs) + curate all
~1 MB of sheets, so the roster matches the app instead of a 10-char subset.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. app.py +26 -16
  2. build.sh +3 -2
  3. web/assets/characters.json +0 -0
  4. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Attack.png +0 -0
  5. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Bark.png +0 -0
  6. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Die.png +0 -0
  7. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Dmg.png +0 -0
  8. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Idle.png +0 -0
  9. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Walk.png +0 -0
  10. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Attack_Shadow.png +0 -0
  11. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Bark_Shadow.png +0 -0
  12. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Die_Shadow.png +0 -0
  13. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Dmg_Shadow.png +0 -0
  14. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Idle_Shadow.png +0 -0
  15. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Walk_Shadow.png +0 -0
  16. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Attack.png +0 -0
  17. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Die.png +0 -0
  18. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Dmg.png +0 -0
  19. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Idle.png +0 -0
  20. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Walk.png +0 -0
  21. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Attack_Shadow.png +0 -0
  22. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Die_Shadow.png +0 -0
  23. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Dmg_Shadow.png +0 -0
  24. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Idle_Shadow.png +0 -0
  25. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Walk_Shadow.png +0 -0
  26. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Die.png +0 -0
  27. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Dmg.png +0 -0
  28. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Idle.png +0 -0
  29. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Possess.png +0 -0
  30. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Walk.png +0 -0
  31. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Die_Shadow.png +0 -0
  32. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Dmg_Shadow.png +0 -0
  33. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Idle_Shadow.png +0 -0
  34. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Walk_Shadow.png +0 -0
  35. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/possess_Shadow.png +0 -0
  36. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Attack.png +0 -0
  37. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Die.png +0 -0
  38. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Dmg.png +0 -0
  39. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Idle.png +0 -0
  40. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Walk.png +0 -0
  41. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Attack_Shadow.png +0 -0
  42. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Die_Shadow.png +0 -0
  43. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Dmg_Shadow.png +0 -0
  44. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Idle_Shadow.png +0 -0
  45. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Walk_Shadow.png +0 -0
  46. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Attack.png +0 -0
  47. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Die.png +0 -0
  48. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Dmg.png +0 -0
  49. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Idle.png +0 -0
  50. web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Walk.png +0 -0
app.py CHANGED
@@ -39,32 +39,42 @@ WEB = os.path.join(HERE, "web")
39
  # every tab button present so the sidebar can drive navigation on any viewport.
40
  HIDE_TABS = ('<style>.tab-container[role="tablist"]{position:absolute!important;'
41
  'left:-99999px!important;top:0!important;width:1400px!important;}</style>')
42
- # Load auto-battler's fonts + a parchment theme so the whole Space mirrors the app
43
- # (Gradio's default is Montserrat on light grey). Applied with !important to beat
44
- # Gradio's own theme.css; component cards/inputs keep their styling on top.
45
  FONTS = ('<link rel="preconnect" href="https://fonts.googleapis.com">'
46
  '<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>'
47
  '<link rel="stylesheet" href="https://fonts.googleapis.com/css2?'
48
- 'family=Fraunces:opsz,wght@9..144,400..900&family=JetBrains+Mono:wght@400;500;700&'
49
  'family=Space+Grotesk:wght@400;500;600;700&display=swap">')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  THEME = ('<style>'
51
- 'body,gradio-app,.gradio-container{background:#f3ebdc !important;color:#141821;'
52
- "font-family:'Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif !important;}"
53
- ".gradio-container h1{font-family:'Fraunces',Georgia,serif !important;color:#141821;}"
54
  # Sprite tab: picker = unframed sidebar, canvas = the framed pixi stage.
55
  '#sprite-stage .movement-picker{border-right:0;}'
56
  '#sprite-stage .movement-stage{border:2px solid #141821;}'
57
  '</style>')
58
- # Force Gradio's LIGHT theme. Gradio honours the OS dark mode, where its text goes
59
- # white (#f3f4f6) — unreadable on our parchment background. Redirecting to
60
- # `?__theme=light` makes it use light component backgrounds + dark text everywhere.
61
- # The session guard prevents a redirect loop if the query were ever stripped.
62
- FORCE_LIGHT = ('<script>(function(){try{var u=new URL(location.href);'
63
- "if(u.searchParams.get('__theme')!=='light'&&!sessionStorage.getItem('ta_themed')){"
64
- "sessionStorage.setItem('ta_themed','1');u.searchParams.set('__theme','light');"
65
- 'location.replace(u.href);}}catch(e){}})();</script>')
66
  HEAD = ('<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">'
67
- + FORCE_LIGHT + HIDE_TABS + FONTS + THEME +
68
  '<link rel="stylesheet" href="/web/shell/sidebar.css">'
69
  '<link rel="stylesheet" href="/web/shell/spriteScene.css">'
70
  '<script type="module" src="/web/tiny.js"></script>'
 
39
  # every tab button present so the sidebar can drive navigation on any viewport.
40
  HIDE_TABS = ('<style>.tab-container[role="tablist"]{position:absolute!important;'
41
  'left:-99999px!important;top:0!important;width:1400px!important;}</style>')
42
+ # Auto-battler's fonts.
 
 
43
  FONTS = ('<link rel="preconnect" href="https://fonts.googleapis.com">'
44
  '<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>'
45
  '<link rel="stylesheet" href="https://fonts.googleapis.com/css2?'
46
+ 'family=JetBrains+Mono:wght@400;500;700&'
47
  'family=Space+Grotesk:wght@400;500;600;700&display=swap">')
48
+ # Parchment theme, applied THEME-INDEPENDENTLY: we override Gradio's own colour +
49
+ # font CSS variables with `!important`, so the app renders identically whether the
50
+ # OS is in light or DARK mode (Gradio's dark mode turns text white #f3f4f6, which
51
+ # was unreadable on parchment). No `?__theme=` redirect — that was fragile and hid
52
+ # dark mode from testing. The vars below are Gradio's theme tokens; overriding them
53
+ # at the root cascades to every component.
54
+ PALETTE = (
55
+ "--body-background-fill:#f3ebdc;--background-fill-primary:#f3ebdc;"
56
+ "--background-fill-secondary:#ece2cc;--body-text-color:#141821;"
57
+ "--body-text-color-subdued:#6d6a5f;--block-background-fill:#fbf6ea;"
58
+ "--block-label-text-color:#141821;--block-title-text-color:#141821;"
59
+ "--input-background-fill:#fbf6ea;--input-text-color:#141821;"
60
+ "--border-color-primary:#cdbf9e;--neutral-200:#ece2cc;"
61
+ "--button-secondary-background-fill:#ece2cc;--button-secondary-text-color:#141821;"
62
+ "--link-text-color:#d8271a;"
63
+ "--font:'Space Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;"
64
+ "--font-mono:'JetBrains Mono',ui-monospace,Menlo,monospace;"
65
+ )
66
+ # !important on each token so they beat Gradio's light AND dark definitions.
67
+ PALETTE_IMP = ";".join(p + " !important" for p in PALETTE.rstrip(";").split(";")) + ";"
68
  THEME = ('<style>'
69
+ f'body,gradio-app,.gradio-container,.gradio-container.dark,.dark{{{PALETTE_IMP}}}'
70
+ "body,gradio-app,.gradio-container{background:#f3ebdc !important;color:#141821 !important;"
71
+ "font-family:'Space Grotesk',-apple-system,sans-serif !important;}"
72
  # Sprite tab: picker = unframed sidebar, canvas = the framed pixi stage.
73
  '#sprite-stage .movement-picker{border-right:0;}'
74
  '#sprite-stage .movement-stage{border:2px solid #141821;}'
75
  '</style>')
 
 
 
 
 
 
 
 
76
  HEAD = ('<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">'
77
+ + HIDE_TABS + FONTS + THEME +
78
  '<link rel="stylesheet" href="/web/shell/sidebar.css">'
79
  '<link rel="stylesheet" href="/web/shell/spriteScene.css">'
80
  '<script type="module" src="/web/tiny.js"></script>'
build.sh CHANGED
@@ -21,8 +21,9 @@ mkdir -p web/shell
21
  cp "$AB/src/shell/nav.json" "$AB/src/shell/sidebar.css" "$AB/src/shell/sidebar.js" web/shell/
22
  cp "$AB/src/render/spriteScene.css" web/shell/spriteScene.css
23
 
24
- # 3. Assets → curate the referenced sheets (shadows/extras/companions) for the
25
- # curated characters from the full auto-battler set.
 
26
  AB="$AB" python3 curate_assets.py
27
 
28
  echo "synced web/{engine,sheet,scene}.js + web/shell/* + assets from $AB"
 
21
  cp "$AB/src/shell/nav.json" "$AB/src/shell/sidebar.css" "$AB/src/shell/sidebar.js" web/shell/
22
  cp "$AB/src/render/spriteScene.css" web/shell/spriteScene.css
23
 
24
+ # 3. Assets → use auto-battler's FULL character manifest (so the Space lists every
25
+ # character, like the app) and curate every sheet it references (~1 MB).
26
+ cp "$AB/public/assets/characters.json" web/assets/characters.json
27
  AB="$AB" python3 curate_assets.py
28
 
29
  echo "synced web/{engine,sheet,scene}.js + web/shell/* + assets from $AB"
web/assets/characters.json CHANGED
The diff for this file is too large to render. See raw diff
 
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Attack.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Bark.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Die.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Dmg.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Idle.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/Walk.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Attack_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Bark_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Die_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Dmg_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Idle_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Hound/_Shadows/Walk_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Attack.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Die.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Dmg.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Idle.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/Walk.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Attack_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Die_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Dmg_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Idle_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Cannon_Fodder/Zealot/_Shadows/Walk_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Die.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Dmg.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Idle.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Possess.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/Walk.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Die_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Dmg_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Idle_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/Walk_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Dark_Channeler/_Shadows/possess_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Attack.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Die.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Dmg.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Idle.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/Walk.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Attack_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Die_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Dmg_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Idle_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Flagellant/_Shadows/Walk_Shadow.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Attack.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Die.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Dmg.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Idle.png ADDED
web/assets/minifantasy/Minifantasy_Dark_Brotherhood_v1.0/Dark_Brotherhood/Choosen_Ones/Ritual_Guard/Walk.png ADDED