ESC
开源 1 分钟阅读

truanayangi:CS:GO 式午餐轮盘——开箱,锁定午餐

一个越南开发者打造的午餐开箱恶搞项目:模仿 CS:GO 开箱动画决定中午吃什么,含 36 种餐食、预算与素食筛选、原版 CS:GO 音效,结果可跳转 Google Maps 或 GrabFood 搜索。项目还详细复刻了开箱动画时长、缓动曲线与 625:125:25:5:2 稀有度权重等实现细节,无支付与后端记录。

来源:GitHub

truanayangi

越南式午餐开箱恶搞项目。36 种餐食,支持预算和素食筛选,使用原版 CS:GO 音效资源,选中餐食后可通过 Google Maps 搜索。无支付功能,也不记录后端数据。

时长参考

存档的 CS:GO Panorama 客户端显示:2.3 秒的箱子模型前置动画加 0.1 秒滚动准备、6 秒滚动时长、cubic-bezier(0.075, 0.82, 0.165, 1) 缓动曲线、38 张装饰卡格、42 个固定刻度时间戳,以及落在中奖卡格 10%–90% 处的整数落点偏移。Web 实现采用由合成器驱动的动画,并将所有卷轴重置隐藏在箱子视图之后。

参考:

625:125:25:5:2 的稀有度权重复刻了已公开的标准武器箱档位比例。同一档位内的物品概率相等。筛选功能会移除不可用的档位并对其余权重重新归一化。中奖结果在动画开始前就已选定;装饰卡片绝不会决定结果。装饰性相邻卡片会避免立即重复,以减少高速滚动的视觉混叠。

稀有度大致对应每人 VND(越南盾)价格:蓝色 ≤40k,紫色 ≤65k,粉色 ≤100k,红色 ≤130k,金色 >130k。

这是一个浏览器端改编版本,并非 Valve 的引擎或后端。箱子前置动画是 2D 动画,而非原始的 3D 模型动画。食物美术、筛选池和餐食结果都刻意做了区分。减少动态效果模式保留时长设定,但抑制卷轴运动。

资源

食物图集与仓库背景:为本项目专门生成。 CS:GO 音效:Valve 资源镜像于 https://github.com/sourcesounds/csgo/tree/master/sound/ui 箱子图片:Steam 经济系统图片,引用自 https://github.com/ByMykel/CSGO-API

开发

npm install npm run dev npm run build

查找或点单选中的餐食

抽奖结果会链接到 Google Maps。在小屏幕或触屏设备上,绿色的 GrabFood 按钮会打开越南 GrabFood 搜索,并使用原始菜名(包括自定义菜品)。它使用在真机上测试过的 HTTPS 搜索链接;能否跳转到 App 取决于 Grab 及浏览器/设备的设置。没有强制定时跳转、位置请求或结算集成。Google Maps 仍然可用。