Skip to content

Commit 5a9e59a

Browse files
Merge pull request #970 from OpenWebGAL/dev
4.6.1
2 parents 2b779cc + 5f569eb commit 5a9e59a

69 files changed

Lines changed: 2153 additions & 700 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@webgal/base",
3-
"version": "4.6.0",
3+
"version": "4.6.1",
44
"description": "A brand new web Visual Novel engine.",
55
"repository": "https://github.com/OpenWebGAL/WebGAL.git",
66
"author": "Mahiru <Mahiru_@outlook.com>",

packages/parser/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "webgal-parser",
3-
"version": "4.5.18",
3+
"version": "4.6.1",
44
"description": "WebGAL script parser",
55
"scripts": {
66
"test": "vitest",

packages/parser/src/scriptParser/argsParser.ts

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -35,36 +35,39 @@ export function argsParser(
3535
key: 'vocal',
3636
value: assetSetter(e, fileType.vocal),
3737
});
38-
} else {
39-
// 判断是不是省略参数
40-
if (argValue === undefined) {
41-
returnArrayList.push({
42-
key: argName,
43-
value: true,
44-
});
45-
} else {
46-
// 是字符串描述的布尔值
47-
if (argValue === 'true' || argValue === 'false') {
48-
returnArrayList.push({
49-
key: argName,
50-
value: argValue === 'true',
51-
});
52-
} else {
53-
// 是数字
54-
if (!isNaN(Number(argValue))) {
55-
returnArrayList.push({
56-
key: argName,
57-
value: Number(argValue),
58-
});
59-
} else {
60-
// 是普通参数
61-
returnArrayList.push({
62-
key: argName,
63-
value: argValue,
64-
});
65-
}
66-
}
67-
}
38+
} else if (argName === 'vocal' && argValue !== undefined) {
39+
returnArrayList.push({
40+
key: argName,
41+
value: assetSetter(argValue, fileType.vocal),
42+
});
43+
}
44+
// 判断是不是省略参数
45+
else if (argValue === undefined) {
46+
returnArrayList.push({
47+
key: argName,
48+
value: true,
49+
});
50+
}
51+
// 是字符串描述的布尔值
52+
else if (argValue === 'true' || argValue === 'false') {
53+
returnArrayList.push({
54+
key: argName,
55+
value: argValue === 'true',
56+
});
57+
}
58+
// 是数字
59+
else if (!isNaN(Number(argValue))) {
60+
returnArrayList.push({
61+
key: argName,
62+
value: Number(argValue),
63+
});
64+
}
65+
// 是普通参数
66+
else {
67+
returnArrayList.push({
68+
key: argName,
69+
value: argValue,
70+
});
6871
}
6972
});
7073
return returnArrayList;

packages/parser/test/parser.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,27 @@ test("say statement", async () => {
202202
expect(result.sentenceList).toContainEqual(expectSentenceItem);
203203
});
204204

205+
test("say statement applies asset setter to vocal named argument", async () => {
206+
const parser = new SceneParser((assetList) => {
207+
}, (fileName, assetType) => {
208+
if (assetType === fileType.vocal) {
209+
return `./game/vocal/${fileName}`;
210+
}
211+
return fileName;
212+
}, ADD_NEXT_ARG_LIST, SCRIPT_CONFIG);
213+
214+
const result = parser.parse(`say:123 -speaker=xx -vocal=a.mp3;`, 'test', 'test');
215+
const sentence = result.sentenceList[0];
216+
217+
expect(sentence.args).toContainEqual({ key: 'vocal', value: './game/vocal/a.mp3' });
218+
expect(sentence.sentenceAssets).toContainEqual({
219+
name: './game/vocal/a.mp3',
220+
url: './game/vocal/a.mp3',
221+
type: fileType.vocal,
222+
lineNumber: 0,
223+
});
224+
});
225+
205226
test("wait command", async () => {
206227
const parser = new SceneParser((assetList) => {
207228
}, (fileName, assetType) => {

packages/webgal/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "webgal-engine",
3-
"version": "4.6.0",
3+
"version": "4.6.1",
44
"scripts": {
55
"dev": "vite --host --port 3000",
66
"build": "node scripts/update-engine-version.js && cross-env NODE_ENV=production tsc && vite build --base=./",

packages/webgal/public/game/config.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ Title_img:WebGAL_New_Enter_Image.webp;
44
Title_bgm:s_Title.mp3;
55
Game_Logo:WebGalEnter.webp;
66
Enable_Appreciation:true;
7+
Enable_Continue:true;

packages/webgal/public/game/scene/demo_zh_cn.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ setTransition: -target=bg-main -exit=shockwaveOut;
66
:你好|欢迎来到 {engine} 的世界;
77
changeBg:bg.webp -next;
88
setTransition: -target=bg-main -enter=shockwaveIn -next;
9-
unlockCg:bg.webp -name=良い夜; // 解锁CG并赋予名称
9+
unlockCg:bg.webp -name=良い夜 -series=op; // 解锁CG并赋予名称
10+
unlockCg:WebGAL_New_Enter_Image.webp -name=Enter -series=op; // 解锁CG并赋予名称
1011
changeFigure:stand.webp -left -enter=enter-from-left -animationFlag=on -eyesOpen=stand.webp -eyesClose=stand.webp -mouthOpen=open_mouth.webp -mouthHalfOpen=open_mouth.webp -mouthClose=stand.webp -next;
1112
miniAvatar:miniavatar.webp;
1213
{heroine}:欢迎使用 {engine}!这是一款全新的网页端视觉小说引擎。 -v1.wav -left;

packages/webgal/public/game/template/Stage/TextBox/textbox.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,5 +182,4 @@
182182
background-clip: border-box;
183183
-webkit-background-clip: border-box;
184184
color: #C0C0C0;
185-
-webkit-text-fill-color: #C0C0C0;
186185
}

packages/webgal/public/game/template/UI/Title/title.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@
6969
background-clip: border-box;
7070
-webkit-background-clip: border-box;
7171
color: #ffffff;
72-
-webkit-text-fill-color: #ffffff;
7372
z-index: 2;
7473
text-shadow:
7574
0 2px 6px rgba(7, 12, 20, 0.15),
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"name":"WebGAL Refine 2026",
3-
"webgal-version":"4.6.0"
3+
"webgal-version":"4.6.1"
44
}

0 commit comments

Comments
 (0)