24 lines
2.0 KiB
Python
24 lines
2.0 KiB
Python
from pathlib import Path
|
|
import json,csv
|
|
root=Path(r'G:\项目\NumberSwipe-Variants');demo=root/'campaign-50'
|
|
# Add a convenient entry without rebuilding or touching the existing mode files.
|
|
entry='<a href="campaign-50/index.html" class="card"><span class="pill">可玩DEMO · 50关</span><h2>50关统一主线</h2><p>五章渐进 · 奇偶与机制组合 · 全部关卡开放</p></a>'
|
|
p=root/'index.html';s=p.read_text(encoding='utf-8-sig')
|
|
if 'href="campaign-50/index.html"' not in s:s=s.replace('<div class="cards">','<div class="cards">'+entry,1)
|
|
p.write_text(s,encoding='utf-8')
|
|
p=root/'tools/build.mjs';s=p.read_text(encoding='utf-8-sig')
|
|
if entry not in s:s=s.replace('<div class="cards">${definitions.map','<div class="cards">'+entry+'${definitions.map',1)
|
|
p.write_text(s,encoding='utf-8')
|
|
link='<p class="callout"><strong>50关可玩版已制作:</strong><a href="../../campaign-50/index.html">打开50关DEMO →</a> 本页保留原始设计目标,制作验收见试玩目录报告。</p>'
|
|
p=root/'design/demo-50/index.html';s=p.read_text(encoding='utf-8-sig')
|
|
if '../../campaign-50/index.html' not in s:s=s.replace('<div class="banner">',link+'<div class="banner">',1)
|
|
p.write_text(s,encoding='utf-8')
|
|
p=root/'design/demo-50/build-h5.py';s=p.read_text(encoding='utf-8-sig')
|
|
if link not in s:s=s.replace('<div class="banner">',link+'<div class="banner">',1)
|
|
p.write_text(s,encoding='utf-8')
|
|
notes=json.loads((demo/'design.json').read_text(encoding='utf-8'))
|
|
with (demo/'reports/difficulty-observations.csv').open('w',encoding='utf-8-sig',newline='') as f:
|
|
writer=csv.writer(f);writer.writerow(['order','level_id','title','target_difficulty','node_count','immediate_choice_points','mechanism_count','human_difficulty','feedback'])
|
|
for n in notes:writer.writerow([n['level']['order'],n['level']['id'],n['level']['title'],n['level']['targetDifficulty'],len(n['level']['cells']),n['metrics']['noImmediateConflictChoices'],len(n['witnesses']),'',''])
|
|
print('Added playable entries and feedback CSV without modifying old mode files.')
|