feat:添加了神秘合成下界之星小彩蛋
Some checks failed
Axolotl desktop CI / guardrails (push) Has been cancelled
Axolotl desktop CI / desktop (macos-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (ubuntu-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (windows-latest) (push) Has been cancelled
Axolotl desktop CI / website (push) Has been cancelled
Repository checks / typos (push) Has been cancelled
Repository checks / tombi (push) Has been cancelled
Rust checks / shear (push) Has been cancelled
Sync source to CNB / Sync Git ref (push) Has been cancelled
Some checks failed
Axolotl desktop CI / guardrails (push) Has been cancelled
Axolotl desktop CI / desktop (macos-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (ubuntu-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (windows-latest) (push) Has been cancelled
Axolotl desktop CI / website (push) Has been cancelled
Repository checks / typos (push) Has been cancelled
Repository checks / tombi (push) Has been cancelled
Rust checks / shear (push) Has been cancelled
Sync source to CNB / Sync Git ref (push) Has been cancelled
This commit is contained in:
BIN
apps/app-frontend/src/assets/stars/blue.png
Normal file
BIN
apps/app-frontend/src/assets/stars/blue.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 918 KiB |
BIN
apps/app-frontend/src/assets/stars/green.png
Normal file
BIN
apps/app-frontend/src/assets/stars/green.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 890 KiB |
BIN
apps/app-frontend/src/assets/stars/pink.png
Normal file
BIN
apps/app-frontend/src/assets/stars/pink.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 962 KiB |
BIN
apps/app-frontend/src/assets/stars/red.png
Normal file
BIN
apps/app-frontend/src/assets/stars/red.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1000 KiB |
BIN
apps/app-frontend/src/assets/stars/super.png
Normal file
BIN
apps/app-frontend/src/assets/stars/super.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 696 KiB |
BIN
apps/app-frontend/src/assets/stars/yellow.png
Normal file
BIN
apps/app-frontend/src/assets/stars/yellow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
File diff suppressed because it is too large
Load Diff
@ -79,7 +79,7 @@ const gameModal = ref<InstanceType<typeof EasterEggGameModal> | null>(null)
|
||||
const contributorsModal = ref<InstanceType<typeof EasterEggContributorsModal> | null>(null)
|
||||
|
||||
let typedBuffer = ''
|
||||
const secretCodes = ['cyf112233', 'cxkcxkckx']
|
||||
const secretCodes = ['starlight']
|
||||
|
||||
const konamiSequence = [
|
||||
'ArrowUp',
|
||||
|
||||
@ -9,7 +9,7 @@ export type AboutMemberExperience = {
|
||||
}
|
||||
|
||||
// 长按「关于」页成员名字触发的彩蛋体验。
|
||||
// 原 'axolotl-merge' 彩蛋已移除,改为通用占位组件 AboutEasterEgg.vue。
|
||||
// 下界之星合成彩蛋(AboutEasterEgg.vue),由长按成员名 / 暗号 / Konami 秘技触发。
|
||||
// 若要为特定成员挂载自定义彩蛋,在这里新增条目即可。
|
||||
const memberExperiences: Record<string, AboutMemberExperience> = {
|
||||
'easter-egg': {
|
||||
|
||||
7
tools/icon_work/chk_game.py
Normal file
7
tools/icon_work/chk_game.py
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
t = open(r"D:\Project\Starlight_Lancher\apps\app-frontend\src\components\ui\AboutEasterEgg.vue", encoding="utf-8").read()
|
||||
print("含 </script>:", "</script>" in t)
|
||||
print("含 drawAxolotl:", "drawAxolotl" in t)
|
||||
print("含 axolotl-balls import:", "axolotl-balls" in t)
|
||||
print("行数:", len(t.split("\n")))
|
||||
print("末 120 字:", repr(t[-120:]))
|
||||
19
tools/icon_work/cleanup_game.py
Normal file
19
tools/icon_work/cleanup_game.py
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
# 1) 游戏文件:改内部标识符
|
||||
p = r"D:\Project\Starlight_Lancher\apps\app-frontend\src\components\ui\AboutEasterEgg.vue"
|
||||
t = open(p, encoding="utf-8").read()
|
||||
t = t.replace("AXOLOTL_MERGE_BEST_STORAGE_KEY", "MERGE_BEST_STORAGE_KEY")
|
||||
t = t.replace("drawAxolotl", "drawMergePiece")
|
||||
open(p, "w", encoding="utf-8", newline="\n").write(t)
|
||||
print("游戏文件: AXOLOTL_MERGE_BEST_STORAGE_KEY -> MERGE_BEST_STORAGE_KEY, drawAxolotl -> drawMergePiece")
|
||||
print(" 残留 axolotl:", "axolotl" in t.lower())
|
||||
|
||||
# 2) about-member-experiences.ts:更新过时注释
|
||||
p2 = r"D:\Project\Starlight_Lancher\apps\app-frontend\src\components\ui\settings\about-member-experiences.ts"
|
||||
t2 = open(p2, encoding="utf-8").read()
|
||||
old = "// 原 'axolotl-merge' 彩蛋已移除,改为通用占位组件 AboutEasterEgg.vue。"
|
||||
new = "// 下界之星合成彩蛋(AboutEasterEgg.vue),由长按成员名 / 暗号 / Konami 秘技触发。"
|
||||
assert old in t2, "注释找不到"
|
||||
t2 = t2.replace(old, new, 1)
|
||||
open(p2, "w", encoding="utf-8", newline="\n").write(t2)
|
||||
print("注释已更新")
|
||||
55
tools/icon_work/convert6.py
Normal file
55
tools/icon_work/convert6.py
Normal file
@ -0,0 +1,55 @@
|
||||
|
||||
p = r"D:\Project\Starlight_Lancher\apps\app-frontend\src\components\ui\AboutEasterEgg.vue"
|
||||
t = open(p, encoding="utf-8").read()
|
||||
|
||||
# 1) import 6 张星图
|
||||
old_imports = """import blueBall from '@/assets/axolotl-balls/blueball.png'
|
||||
import cyanBall from '@/assets/axolotl-balls/cyanball.png'
|
||||
import pinkBall from '@/assets/axolotl-balls/pinkball.png'
|
||||
import redBall from '@/assets/axolotl-balls/redball.png'
|
||||
import superBall from '@/assets/axolotl-balls/superball.png'
|
||||
import yellowBall from '@/assets/axolotl-balls/yellowball.png'"""
|
||||
new_imports = """import blueStar from '@/assets/stars/blue.png'
|
||||
import greenStar from '@/assets/stars/green.png'
|
||||
import pinkStar from '@/assets/stars/pink.png'
|
||||
import redStar from '@/assets/stars/red.png'
|
||||
import yellowStar from '@/assets/stars/yellow.png'
|
||||
import superStar from '@/assets/stars/super.png'"""
|
||||
assert old_imports in t, "import 块找不到"
|
||||
t = t.replace(old_imports, new_imports, 1)
|
||||
|
||||
# 2) 配置数组(保持 6,颜色换星色)
|
||||
old_cfg = """const colors = ['#ff8fb3', '#ffd866', '#54c9c4', '#e5484d', '#5c8ee8', '#f05ed2']
|
||||
const rainbowColors = ['#ff8fb3', '#ffd866', '#54c9c4', '#5c8ee8', '#f05ed2', '#ffffff']
|
||||
const radiusRatios = [0.055, 0.075, 0.098, 0.128, 0.164, 0.21]
|
||||
const points = [10, 25, 60, 120, 250, 1200]"""
|
||||
new_cfg = """const colors = ['#4f9cff', '#1bd96a', '#ff8fb3', '#e5484d', '#ffd866', '#e0e0ff']
|
||||
const rainbowColors = ['#4f9cff', '#1bd96a', '#ff8fb3', '#e5484d', '#ffd866', '#ffffff']
|
||||
const radiusRatios = [0.055, 0.075, 0.098, 0.128, 0.164, 0.21]
|
||||
const points = [10, 25, 60, 120, 250, 1200]"""
|
||||
assert old_cfg in t, "配置数组找不到"
|
||||
t = t.replace(old_cfg, new_cfg, 1)
|
||||
|
||||
# 3) 球图数组(blue->green->pink->red->yellow->super)
|
||||
old_balls = "const ballImages = [pinkBall, yellowBall, cyanBall, redBall, blueBall, superBall]"
|
||||
new_balls = "const ballImages = [blueStar, greenStar, pinkStar, redStar, yellowStar, superStar]"
|
||||
assert old_balls in t, "ballImages 找不到"
|
||||
t = t.replace(old_balls, new_balls, 1)
|
||||
|
||||
# 4) 存储 key
|
||||
t = t.replace("const AXOLOTL_MERGE_BEST_STORAGE_KEY = 'axolotl-merge-best-score'",
|
||||
"const AXOLOTL_MERGE_BEST_STORAGE_KEY = 'starlight-merge-best-score'", 1)
|
||||
|
||||
# 5) 文案
|
||||
text_map = {
|
||||
"defaultMessage: 'The axolotls got stranded!'": "defaultMessage: 'The stars fell down!'",
|
||||
"defaultMessage: 'Rainbow axolotl!'": "defaultMessage: 'Nether star!'",
|
||||
"defaultMessage: 'The tide is falling — keep your axolotls underwater!'": "defaultMessage: 'The sky is falling — keep merging!'",
|
||||
"defaultMessage: 'Click to drop a pink axolotl'": "defaultMessage: 'Click to drop a star'",
|
||||
}
|
||||
for o, n in text_map.items():
|
||||
assert o in t, f"文案找不到: {o}"
|
||||
t = t.replace(o, n, 1)
|
||||
|
||||
open(p, "w", encoding="utf-8", newline="\n").write(t)
|
||||
print("done")
|
||||
54
tools/icon_work/convert_game.py
Normal file
54
tools/icon_work/convert_game.py
Normal file
@ -0,0 +1,54 @@
|
||||
|
||||
p = r"D:\Project\Starlight_Lancher\apps\app-frontend\src\components\ui\AboutEasterEgg.vue"
|
||||
t = open(p, encoding="utf-8").read()
|
||||
|
||||
# 1) import 换 5 张星图
|
||||
old_imports = """import blueBall from '@/assets/axolotl-balls/blueball.png'
|
||||
import cyanBall from '@/assets/axolotl-balls/cyanball.png'
|
||||
import pinkBall from '@/assets/axolotl-balls/pinkball.png'
|
||||
import redBall from '@/assets/axolotl-balls/redball.png'
|
||||
import superBall from '@/assets/axolotl-balls/superball.png'
|
||||
import yellowBall from '@/assets/axolotl-balls/yellowball.png'"""
|
||||
new_imports = """import blueStar from '@/assets/stars/blue.png'
|
||||
import greenStar from '@/assets/stars/green.png'
|
||||
import pinkStar from '@/assets/stars/pink.png'
|
||||
import redStar from '@/assets/stars/red.png'
|
||||
import superStar from '@/assets/stars/super.png'"""
|
||||
assert old_imports in t, "import 块找不到"
|
||||
t = t.replace(old_imports, new_imports, 1)
|
||||
|
||||
# 2) 颜色 / 半径 / 分数 / 球图数组(6→5)
|
||||
old_cfg = """const colors = ['#ff8fb3', '#ffd866', '#54c9c4', '#e5484d', '#5c8ee8', '#f05ed2']
|
||||
const rainbowColors = ['#ff8fb3', '#ffd866', '#54c9c4', '#5c8ee8', '#f05ed2', '#ffffff']
|
||||
const radiusRatios = [0.055, 0.075, 0.098, 0.128, 0.164, 0.21]
|
||||
const points = [10, 25, 60, 120, 250, 1200]"""
|
||||
new_cfg = """const colors = ['#4f9cff', '#1bd96a', '#ff8fb3', '#e5484d', '#ffd866']
|
||||
const rainbowColors = ['#4f9cff', '#1bd96a', '#ff8fb3', '#e5484d', '#ffd866']
|
||||
const radiusRatios = [0.055, 0.078, 0.105, 0.14, 0.185]
|
||||
const points = [10, 25, 60, 130, 300]"""
|
||||
assert old_cfg in t, "配置数组找不到"
|
||||
t = t.replace(old_cfg, new_cfg, 1)
|
||||
|
||||
# 3) 球图数组(顺序 blue->green->pink->red->super)
|
||||
old_balls = "const ballImages = [pinkBall, yellowBall, cyanBall, redBall, blueBall, superBall]"
|
||||
new_balls = "const ballImages = [blueStar, greenStar, pinkStar, redStar, superStar]"
|
||||
assert old_balls in t, "ballImages 找不到"
|
||||
t = t.replace(old_balls, new_balls, 1)
|
||||
|
||||
# 4) 存储 key
|
||||
t = t.replace("const AXOLOTL_MERGE_BEST_STORAGE_KEY = 'axolotl-merge-best-score'",
|
||||
"const AXOLOTL_MERGE_BEST_STORAGE_KEY = 'starlight-merge-best-score'", 1)
|
||||
|
||||
# 5) 文案(messages)
|
||||
text_map = {
|
||||
"defaultMessage: 'The axolotls got stranded!'": "defaultMessage: 'The stars fell down!'",
|
||||
"defaultMessage: 'Rainbow axolotl!'": "defaultMessage: 'Nether star!'",
|
||||
"defaultMessage: 'The tide is falling — keep your axolotls underwater!'": "defaultMessage: 'The sky is falling — keep merging!'",
|
||||
"defaultMessage: 'Click to drop a pink axolotl'": "defaultMessage: 'Click to drop a star'",
|
||||
}
|
||||
for o, n in text_map.items():
|
||||
assert o in t, f"文案找不到: {o}"
|
||||
t = t.replace(o, n, 1)
|
||||
|
||||
open(p, "w", encoding="utf-8", newline="\n").write(t)
|
||||
print("done")
|
||||
10
tools/icon_work/fix_secret.py
Normal file
10
tools/icon_work/fix_secret.py
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
p = r"D:\Project\Starlight_Lancher\apps\app-frontend\src\components\ui\settings\AboutSettings.vue"
|
||||
t = open(p, encoding="utf-8").read()
|
||||
old = "const secretCodes = ['cyf112233', 'cxkcxkckx']"
|
||||
new = "const secretCodes = ['starlight']"
|
||||
assert old in t, "找不到 secretCodes"
|
||||
t = t.replace(old, new, 1)
|
||||
open(p, "w", encoding="utf-8", newline="\n").write(t)
|
||||
print("done")
|
||||
print("新:", new)
|
||||
1017
tools/icon_work/old_merge_game.vue
Normal file
1017
tools/icon_work/old_merge_game.vue
Normal file
File diff suppressed because it is too large
Load Diff
9
tools/icon_work/read_old_parts.py
Normal file
9
tools/icon_work/read_old_parts.py
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
t = open(r"D:\Project\Starlight_Lancher\tools\icon_work\old_merge_game.vue", encoding="utf-8").read()
|
||||
lines = t.split("\n")
|
||||
print("总行数:", len(lines))
|
||||
print("\n=== 含 ball/color/radius/point/axolotl/import 的行 ===")
|
||||
for i, line in enumerate(lines):
|
||||
low = line.lower()
|
||||
if any(k in low for k in ("ball", "color", "radius", "point", "axolotl", "import ", "level", "tier")):
|
||||
print(f"{i+1}: {line.rstrip()[:140]}")
|
||||
9
tools/icon_work/read_rest.py
Normal file
9
tools/icon_work/read_rest.py
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
t = open(r"D:\Project\Starlight_Lancher\tools\icon_work\old_merge_game.vue", encoding="utf-8").read()
|
||||
lines = t.split("\n")
|
||||
print("=== messages 全貌 (221-253) ===")
|
||||
for i in range(220, 254):
|
||||
print(f"{i+1}: {lines[i]}")
|
||||
print("\n=== drawAxolotl 绘制 (689-757) ===")
|
||||
for i in range(688, 757):
|
||||
print(f"{i+1}: {lines[i]}")
|
||||
9
tools/icon_work/verify6.py
Normal file
9
tools/icon_work/verify6.py
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
t = open(r"D:\Project\Starlight_Lancher\apps\app-frontend\src\components\ui\AboutEasterEgg.vue", encoding="utf-8").read()
|
||||
for i, line in enumerate(t.split("\n")):
|
||||
if any(k in line for k in ("import blueStar", "import greenStar", "import pinkStar", "import redStar", "import yellowStar", "import superStar",
|
||||
"const colors =", "const ballImages =", "starlight-merge-best-score",
|
||||
"stars fell down", "Nether star", "sky is falling", "drop a star")):
|
||||
print(f"{i+1}: {line.strip()}")
|
||||
print("\n残留 axolotl-balls:", "axolotl-balls" in t)
|
||||
print("残留 axolotl 文案:", "axolotl" in t.lower())
|
||||
Reference in New Issue
Block a user