Skip to content

Commit 458da9b

Browse files
WingedDragonUbuntu
andauthored
feat(web): #67 Phase 1 - 办公室家具增强 (#68)
**Issue #67 办公室 Kenney 美术升级 Phase 1** Kenney 网站暂时不可用(404),先用现有资源增强: - 墙上装饰画(🚀 SHIP IT、📡 PING) - 文件柜(左墙,3层抽屉) - 办公桌收纳盒(笔筒、便签纸) - 休息区额外植物盆栽 Build: ✅ Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
1 parent 722c186 commit 458da9b

6 files changed

Lines changed: 66 additions & 0 deletions

File tree

memory/2026-03-22.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,20 @@
4444
- force push 前确认分支状态
4545
- rebase 冲突时用 `--theirs` 保留对方版本
4646
- 推送前先 `git pull --rebase` 避免 divergence
47+
48+
## Phase 4 完成
49+
50+
-#54 Canvas 放大 + 会议室
51+
-#55 Panel layout + UI组件库
52+
-#56 动画增强(日/夜平滑过渡 + Agent flash高亮 + 白板刷新动画 + 时钟秒针)
53+
-#57 游戏化(Leaderboard + useGamification hook + 积分榜)
54+
55+
**今日 PRs 合并:**
56+
- PR #60, #61, #62, #63, #64, #65
57+
58+
## 团队分工
59+
- 小前:#54, #55, #57 UI
60+
- 小开:#56 动画增强
61+
- 小后:WebSocket 服务端
62+
- 小审:代码 review
63+
- 小产:产品管理
2.16 MB
Loading
1.99 MB
Loading
1.94 MB
Loading
2.05 MB
Loading

packages/web/src/pixel/SceneDecorations.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,55 @@ export class SceneDecorations {
312312
g.rect(flx - 10, fly - 10, 20, 10).fill({ color: 0xffe8a0 }); // shade
313313
g.ellipse(flx, fly + 10, 40, 25).fill({ color: 0xffeeaa, alpha: 0.08 }); // glow
314314

315+
// ── Motivational posters on wall ────────────────────────────────────────
316+
// Poster 1 - "SHIP IT"
317+
g.rect(300, 5, 50, 30).fill({ color: 0x2a3a2a });
318+
g.rect(301, 6, 48, 28).fill({ color: 0x1a2a1a });
319+
const shipText = new Text({ text: '🚀', style: new TextStyle({ fontSize: 14 }) });
320+
shipText.anchor.set(0.5, 0.5);
321+
shipText.position.set(325, 15);
322+
this.container.addChild(shipText);
323+
324+
// Poster 2 - "PING"
325+
g.rect(500, 5, 50, 30).fill({ color: 0x2a2a3a });
326+
g.rect(501, 6, 48, 28).fill({ color: 0x1a1a2a });
327+
const pingText = new Text({ text: '📡', style: new TextStyle({ fontSize: 14 }) });
328+
pingText.anchor.set(0.5, 0.5);
329+
pingText.position.set(525, 15);
330+
this.container.addChild(pingText);
331+
332+
// ── Filing cabinet (left wall) ─────────────────────────────────────────
333+
const fcX = 2, fcY = SCENE_H - 80;
334+
g.rect(fcX, fcY, 18, 60).fill({ color: 0x8899aa });
335+
g.rect(fcX + 1, fcY + 1, 16, 19).fill({ color: 0x7788aa }); // drawer 1
336+
g.rect(fcX + 1, fcY + 20, 16, 19).fill({ color: 0x7788aa }); // drawer 2
337+
g.rect(fcX + 1, fcY + 39, 16, 19).fill({ color: 0x7788aa }); // drawer 3
338+
// Drawer handles
339+
g.rect(fcX + 7, fcY + 8, 4, 2).fill({ color: 0x556677 });
340+
g.rect(fcX + 7, fcY + 27, 4, 2).fill({ color: 0x556677 });
341+
g.rect(fcX + 7, fcY + 46, 4, 2).fill({ color: 0x556677 });
342+
343+
// ── Desk organizers (on some desks) ────────────────────────────────────
344+
const organizerSlots = [0, 2, 4, 6]; // Only on half the desks
345+
for (const idx of organizerSlots) {
346+
const slot = DESK_SLOTS[idx];
347+
if (!slot) continue;
348+
const ox = slot.x + 20, oy = slot.y - 10;
349+
// Pen holder
350+
g.rect(ox, oy, 6, 12).fill({ color: 0x445566 });
351+
g.rect(ox + 1, oy + 1, 1, 8).fill({ color: 0xee4444 }); // red pen
352+
g.rect(ox + 3, oy + 1, 1, 6).fill({ color: 0x44aa44 }); // green pen
353+
// Sticky notes pad
354+
g.rect(ox + 8, oy + 4, 10, 10).fill({ color: 0xffee44 });
355+
g.rect(ox + 8, oy + 4, 10, 2).fill({ color: 0xeecc22 }); // note shadow
356+
}
357+
358+
// ── Extra plant in lounge ──────────────────────────────────────────────
359+
const extraPlantX = LOUNGE_X + LOUNGE_W - 60, extraPlantY = LOUNGE_Y + LOUNGE_H - 20;
360+
g.rect(extraPlantX - 8, extraPlantY - 6, 16, 8).fill({ color: 0x8b4513 }); // pot
361+
g.rect(extraPlantX - 6, extraPlantY - 30, 12, 24).fill({ color: 0x228b22 }); // leaves
362+
g.rect(extraPlantX - 3, extraPlantY - 40, 6, 12).fill({ color: 0x2a9a2a }); // tall leaf
363+
315364
this.container.addChildAt(g, 0);
316365

317366
// Add chairs layer on top of floor/desks but below agents

0 commit comments

Comments
 (0)