assets uploaded

This commit is contained in:
esef committed 2026-07-12 17:09:44 +03:00
1 parent cc0e154385
commit 1fe1098a5e
4 files changed
+8 -14

No files matched your search

-1
View File
@@ -15,5 +15,4 @@ icy_metadata_radios.md
__pycache__/ __pycache__/
ssh_update.py ssh_update.py
ssh_*.py ssh_*.py
blue_archive/assets/
blue_archive/ba_students.json blue_archive/ba_students.json
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

-1
View File
@@ -9,7 +9,6 @@ BANNER_FILE = Path("data/ba_banner_state.json")
ASSETS_DIR = Path(__file__).parent / "assets" ASSETS_DIR = Path(__file__).parent / "assets"
BG_PATH = ASSETS_DIR / "gacha_bg.png" BG_PATH = ASSETS_DIR / "gacha_bg.png"
GACHA_ANIM_PATH = ASSETS_DIR / "Arona_Blue_Gacha_Animation.gif" GACHA_ANIM_PATH = ASSETS_DIR / "Arona_Blue_Gacha_Animation.gif"
GACHA_ANIM_DURATION = 19.5 # total seconds — 195 frames × 100 ms
# ── APIs ──────────────────────────────────────────────────────────────────── # ── APIs ────────────────────────────────────────────────────────────────────
BANNER_API = "https://api.ennead.cc/buruaka/banner" BANNER_API = "https://api.ennead.cc/buruaka/banner"
+8 -12
View File
@@ -19,7 +19,7 @@ from .data import (
get_rates_for_banner, get_rates_for_banner,
) )
from .gacha_renderer import render_pull from .gacha_renderer import render_pull
from .constants import SPARK_TARGET, BANNER_FILE, DEFAULT_RATES, PULL10_RATES, GACHA_ANIM_PATH, GACHA_ANIM_DURATION from .constants import SPARK_TARGET, BANNER_FILE, DEFAULT_RATES, PULL10_RATES, GACHA_ANIM_PATH
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@@ -258,9 +258,11 @@ class BlueArchiveGacha(commands.Cog):
banner_name = f"{gtype} — {rateups}" banner_name = f"{gtype} — {rateups}"
rates = get_rates_for_banner(banner) rates = get_rates_for_banner(banner)
# "Opening envelope" teaser — send animation GIF (plays once, auto-deleted by timer) # "Opening envelope" teaser — animation GIF, or text fallback
if GACHA_ANIM_PATH.exists():
teaser = await ctx.reply(file=discord.File(str(GACHA_ANIM_PATH))) teaser = await ctx.reply(file=discord.File(str(GACHA_ANIM_PATH)))
anim_start = asyncio.get_running_loop().time() else:
teaser = await ctx.reply("Opening recruitment envelope" + ("s..." if count > 1 else "..."))
# Build the banner-specific character pool # Build the banner-specific character pool
if banner_id and banner_id != "regular" and banner: if banner_id and banner_id != "regular" and banner:
@@ -312,19 +314,13 @@ class BlueArchiveGacha(commands.Cog):
await ctx.reply(f"Render failed: {e}") await ctx.reply(f"Render failed: {e}")
return return
# Wait for the animation to finish playing, then replace with result # Send image with spark+eligma caption
elapsed = asyncio.get_running_loop().time() - anim_start try:
remaining = GACHA_ANIM_DURATION - elapsed file = discord.File(img_bytes, filename="gacha_result.png")
if remaining > 0:
await asyncio.sleep(remaining)
try: try:
await teaser.delete() await teaser.delete()
except (discord.NotFound, discord.Forbidden): except (discord.NotFound, discord.Forbidden):
pass pass
try:
file = discord.File(img_bytes, filename="gacha_result.png")
await ctx.reply( await ctx.reply(
f"Recruitment Points: {spark}/{SPARK_TARGET}{dupe_msg}", f"Recruitment Points: {spark}/{SPARK_TARGET}{dupe_msg}",
file=file, file=file,