新增聊天室座驾系统

This commit is contained in:
pllx
2026-04-30 09:40:50 +08:00
parent 45ce8b2b2d
commit 3c95478097
32 changed files with 3982 additions and 53 deletions
+18 -2
View File
@@ -3,7 +3,7 @@
*
* 统一管理全屏 Canvas 特效的入口、防重入和资源清理。
* 播放期间用户点击屏幕任意位置可立即结束当前全屏特效。
* 使用方式:EffectManager.play('fireworks' | 'rain' | 'lightning' | 'snow' | 'sakura' | 'meteors' | 'gold-rain' | 'hearts' | 'confetti' | 'fireflies')
* 使用方式:EffectManager.play('fireworks' | 'rain' | 'lightning' | 'snow' | 'sakura' | 'meteors' | 'gold-rain' | 'hearts' | 'confetti' | 'fireflies' | 'j35' | '99a' | 'df5c' | 'fujian')
*/
const EffectManager = (() => {
@@ -22,6 +22,10 @@ const EffectManager = (() => {
hearts: { key: "hearts", load: () => import("./hearts.js") },
confetti: { key: "confetti", load: () => import("./confetti.js") },
fireflies: { key: "fireflies", load: () => import("./fireflies.js") },
j35: { key: "j35", load: () => import("./j35.js") },
"99a": { key: "99a", load: () => import("./99a.js") },
df5c: { key: "df5c", load: () => import("./df5c.js") },
fujian: { key: "fujian", load: () => import("./fujian.js") },
};
// 特效模块 Promise 缓存,同类型重复触发时复用同一次加载
const _effectModulePromises = new Map();
@@ -340,7 +344,7 @@ const EffectManager = (() => {
/**
* 播放指定特效
*
* @param {string} type 特效类型:fireworks / rain / lightning / snow / sakura / meteors / gold-rain / hearts / confetti / fireflies
* @param {string} type 特效类型:fireworks / rain / lightning / snow / sakura / meteors / gold-rain / hearts / confetti / fireflies / j35 / 99a / df5c / fujian
*/
function play(type) {
if (document.hidden) {
@@ -434,6 +438,18 @@ const EffectManager = (() => {
case "fireflies":
started = _startEffect(window.FirefliesEffect, canvas, finishCurrent);
break;
case "j35":
started = _startEffect(window.J35Effect, canvas, finishCurrent);
break;
case "99a":
started = _startEffect(window.Type99AEffect, canvas, finishCurrent);
break;
case "df5c":
started = _startEffect(window.Df5cEffect, canvas, finishCurrent);
break;
case "fujian":
started = _startEffect(window.FujianEffect, canvas, finishCurrent);
break;
default:
console.warn(`[EffectManager] 未知特效类型:${type}`);
}