Initial Commit

This commit is contained in:
Dazed 2023-07-07 17:06:44 -05:00
parent f2c8d29700
commit 6a7264786d
112 changed files with 1308006 additions and 0 deletions

4
www/data/Actors.json Normal file
View file

@ -0,0 +1,4 @@
[
null,
{"id":1,"battlerName":"","characterIndex":0,"characterName":"GF30_Katty01","classId":1,"equips":[1,1,2,3,0],"faceIndex":0,"faceName":"Katty01","traits":[],"initialLevel":1,"maxLevel":99,"name":"カティ","nickname":"","note":"","profile":""}
]

130927
www/data/Animations.json Normal file

File diff suppressed because it is too large Load diff

111
www/data/Armors.json Normal file
View file

@ -0,0 +1,111 @@
[
null,
{
"id": 1,
"atypeId": 5,
"description": "",
"etypeId": 2,
"traits": [
{
"code": 22,
"dataId": 1,
"value": 0
}
],
"iconIndex": 128,
"name": "盾",
"note": "",
"params": [
0,
0,
0,
10,
0,
0,
0,
0
],
"price": 300
},
{
"id": 2,
"atypeId": 1,
"description": "",
"etypeId": 3,
"traits": [
{
"code": 22,
"dataId": 1,
"value": 0
}
],
"iconIndex": 130,
"name": "帽子",
"note": "",
"params": [
0,
0,
0,
10,
0,
0,
0,
0
],
"price": 300
},
{
"id": 3,
"atypeId": 1,
"description": "",
"etypeId": 4,
"traits": [
{
"code": 22,
"dataId": 1,
"value": 0
}
],
"iconIndex": 135,
"name": "服",
"note": "",
"params": [
0,
0,
0,
10,
0,
0,
0,
0
],
"price": 300
},
{
"id": 4,
"atypeId": 1,
"description": "",
"etypeId": 5,
"traits": [
{
"code": 22,
"dataId": 1,
"value": 0
}
],
"iconIndex": 145,
"name": "指輪",
"note": "",
"params": [
0,
0,
0,
0,
10,
0,
0,
0
],
"price": 300
}
]

891
www/data/Classes.json Normal file
View file

@ -0,0 +1,891 @@
[
null,
{
"id": 1,
"expParams": [
30,
20,
30,
30
],
"traits": [
{
"code": 23,
"dataId": 0,
"value": 1
},
{
"code": 22,
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.05
},
{
"code": 22,
"dataId": 2,
"value": 0.04
},
{
"code": 41,
"dataId": 1,
"value": 0
},
{
"code": 51,
"dataId": 2,
"value": 0
},
{
"code": 52,
"dataId": 1,
"value": 0
},
{
"code": 52,
"dataId": 3,
"value": 0
},
{
"code": 52,
"dataId": 5,
"value": 0
}
],
"learnings": [
{
"level": 1,
"note": "",
"skillId": 8
},
{
"level": 1,
"note": "",
"skillId": 10
}
],
"name": "主人公",
"note": "",
"params": [
[
1,
450,
500,
550,
600,
650,
700,
750,
800,
850,
900,
950,
1000,
1050,
1100,
1150,
1200,
1250,
1300,
1350,
1400,
1450,
1500,
1550,
1600,
1650,
1700,
1750,
1800,
1850,
1900,
1950,
2000,
2050,
2100,
2150,
2200,
2250,
2300,
2350,
2400,
2450,
2500,
2550,
2600,
2650,
2700,
2750,
2800,
2850,
2900,
2950,
3000,
3050,
3100,
3150,
3200,
3250,
3300,
3350,
3400,
3450,
3500,
3550,
3600,
3650,
3700,
3750,
3800,
3850,
3900,
3950,
4000,
4050,
4100,
4150,
4200,
4250,
4300,
4350,
4400,
4450,
4500,
4550,
4600,
4650,
4700,
4750,
4800,
4850,
4900,
4950,
5000,
5050,
5100,
5150,
5200,
5250,
5300,
5350
],
[
0,
90,
100,
110,
120,
130,
140,
150,
160,
170,
180,
190,
200,
210,
220,
230,
240,
250,
260,
270,
280,
290,
300,
310,
320,
330,
340,
350,
360,
370,
380,
390,
400,
410,
420,
430,
440,
450,
460,
470,
480,
490,
500,
510,
520,
530,
540,
550,
560,
570,
580,
590,
600,
610,
620,
630,
640,
650,
660,
670,
680,
690,
700,
710,
720,
730,
740,
750,
760,
770,
780,
790,
800,
810,
820,
830,
840,
850,
860,
870,
880,
890,
900,
910,
920,
930,
940,
950,
960,
970,
980,
990,
1000,
1010,
1020,
1030,
1040,
1050,
1060,
1070
],
[
1,
16,
18,
19,
20,
21,
23,
24,
25,
26,
28,
29,
30,
31,
33,
34,
35,
36,
38,
39,
40,
41,
43,
44,
45,
46,
48,
49,
50,
51,
53,
54,
55,
56,
58,
59,
60,
61,
63,
64,
65,
66,
68,
69,
70,
71,
73,
74,
75,
76,
77,
79,
80,
81,
82,
84,
85,
86,
87,
89,
90,
91,
92,
94,
95,
96,
97,
99,
100,
101,
102,
104,
105,
106,
107,
109,
110,
111,
112,
114,
115,
116,
117,
119,
120,
121,
122,
124,
125,
126,
127,
129,
130,
131,
132,
134,
135,
136,
137,
138
],
[
0,
16,
18,
19,
20,
21,
23,
24,
25,
26,
28,
29,
30,
31,
33,
34,
35,
36,
38,
39,
40,
41,
43,
44,
45,
46,
48,
49,
50,
51,
53,
54,
55,
56,
58,
59,
60,
61,
63,
64,
65,
66,
68,
69,
70,
71,
73,
74,
75,
76,
77,
79,
80,
81,
82,
84,
85,
86,
87,
89,
90,
91,
92,
94,
95,
96,
97,
99,
100,
101,
102,
104,
105,
106,
107,
109,
110,
111,
112,
114,
115,
116,
117,
119,
120,
121,
122,
124,
125,
126,
127,
129,
130,
131,
132,
134,
135,
136,
137,
138
],
[
0,
16,
18,
19,
20,
21,
23,
24,
25,
26,
28,
29,
30,
31,
33,
34,
35,
36,
38,
39,
40,
41,
43,
44,
45,
46,
48,
49,
50,
51,
53,
54,
55,
56,
58,
59,
60,
61,
63,
64,
65,
66,
68,
69,
70,
71,
73,
74,
75,
76,
77,
79,
80,
81,
82,
84,
85,
86,
87,
89,
90,
91,
92,
94,
95,
96,
97,
99,
100,
101,
102,
104,
105,
106,
107,
109,
110,
111,
112,
114,
115,
116,
117,
119,
120,
121,
122,
124,
125,
126,
127,
129,
130,
131,
132,
134,
135,
136,
137,
138
],
[
0,
16,
18,
19,
20,
21,
23,
24,
25,
26,
28,
29,
30,
31,
33,
34,
35,
36,
38,
39,
40,
41,
43,
44,
45,
46,
48,
49,
50,
51,
53,
54,
55,
56,
58,
59,
60,
61,
63,
64,
65,
66,
68,
69,
70,
71,
73,
74,
75,
76,
77,
79,
80,
81,
82,
84,
85,
86,
87,
89,
90,
91,
92,
94,
95,
96,
97,
99,
100,
101,
102,
104,
105,
106,
107,
109,
110,
111,
112,
114,
115,
116,
117,
119,
120,
121,
122,
124,
125,
126,
127,
129,
130,
131,
132,
134,
135,
136,
137,
138
],
[
0,
32,
35,
37,
40,
42,
45,
47,
50,
52,
55,
57,
60,
62,
65,
67,
70,
72,
75,
77,
80,
82,
85,
87,
90,
92,
95,
97,
100,
102,
105,
107,
110,
112,
115,
117,
120,
122,
125,
127,
130,
132,
135,
137,
140,
142,
145,
147,
150,
152,
155,
157,
160,
162,
165,
167,
170,
172,
175,
177,
180,
182,
185,
187,
190,
192,
195,
197,
200,
202,
205,
207,
210,
212,
215,
217,
220,
222,
225,
227,
230,
232,
235,
237,
240,
242,
245,
247,
250,
252,
255,
257,
260,
262,
265,
267,
270,
272,
275,
277
],
[
0,
32,
35,
37,
40,
42,
45,
47,
50,
52,
55,
57,
60,
62,
65,
67,
70,
72,
75,
77,
80,
82,
85,
87,
90,
92,
95,
97,
100,
102,
105,
107,
110,
112,
115,
117,
120,
122,
125,
127,
130,
132,
135,
137,
140,
142,
145,
147,
150,
152,
155,
157,
160,
162,
165,
167,
170,
172,
175,
177,
180,
182,
185,
187,
190,
192,
195,
197,
200,
202,
205,
207,
210,
212,
215,
217,
220,
222,
225,
227,
230,
232,
235,
237,
240,
242,
245,
247,
250,
252,
255,
257,
260,
262,
265,
267,
270,
272,
275,
277
]
]
}
]

13940
www/data/CommonEvents.json Normal file

File diff suppressed because it is too large Load diff

251
www/data/Enemies.json Normal file
View file

@ -0,0 +1,251 @@
[
null,
{
"id": 1,
"actions": [
{
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
}
],
"battlerHue": 0,
"battlerName": "Bat",
"dropItems": [
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
}
],
"exp": 0,
"traits": [
{
"code": 22,
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.05
},
{
"code": 31,
"dataId": 1,
"value": 0
}
],
"gold": 0,
"name": "こうもり",
"note": "",
"params": [
200,
0,
30,
30,
30,
30,
30,
30
]
},
{
"id": 2,
"actions": [
{
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
}
],
"battlerHue": 0,
"battlerName": "Slime",
"dropItems": [
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
}
],
"exp": 0,
"traits": [
{
"code": 22,
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.05
},
{
"code": 31,
"dataId": 1,
"value": 0
}
],
"gold": 0,
"name": "スライム",
"note": "",
"params": [
250,
0,
30,
30,
30,
30,
30,
30
]
},
{
"id": 3,
"actions": [
{
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
}
],
"battlerHue": 0,
"battlerName": "Orc",
"dropItems": [
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
}
],
"exp": 0,
"traits": [
{
"code": 22,
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.05
},
{
"code": 31,
"dataId": 1,
"value": 0
}
],
"gold": 0,
"name": "オーク",
"note": "",
"params": [
300,
0,
30,
30,
30,
30,
30,
30
]
},
{
"id": 4,
"actions": [
{
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
}
],
"battlerHue": 0,
"battlerName": "Minotaur",
"dropItems": [
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
},
{
"dataId": 1,
"denominator": 1,
"kind": 0
}
],
"exp": 0,
"traits": [
{
"code": 22,
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.05
},
{
"code": 31,
"dataId": 1,
"value": 0
}
],
"gold": 0,
"name": "ミノタウロス",
"note": "",
"params": [
500,
0,
30,
30,
30,
30,
30,
30
]
}
]

1043
www/data/Items.json Normal file

File diff suppressed because it is too large Load diff

19356
www/data/Map001.json Normal file

File diff suppressed because it is too large Load diff

2124
www/data/Map002.json Normal file

File diff suppressed because it is too large Load diff

10966
www/data/Map003.json Normal file

File diff suppressed because it is too large Load diff

3810
www/data/Map005.json Normal file

File diff suppressed because it is too large Load diff

5376
www/data/Map011.json Normal file

File diff suppressed because it is too large Load diff

615
www/data/Map012.json Normal file
View file

@ -0,0 +1,615 @@
{
"autoplayBgm": false,
"autoplayBgs": false,
"battleback1Name": "",
"battleback2Name": "",
"bgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"bgs": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"disableDashing": false,
"displayName": "",
"encounterList": [],
"encounterStep": 30,
"height": 7,
"note": "",
"parallaxLoopX": false,
"parallaxLoopY": false,
"parallaxName": "",
"parallaxShow": true,
"parallaxSx": 0,
"parallaxSy": 0,
"scrollType": 0,
"specifyBattleback": false,
"tilesetId": 1,
"width": 9,
"data": [
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"events": [
null,
{
"id": 1,
"name": "自動実行",
"note": "",
"pages": [
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 1,
"switch1Valid": false,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"tileId": 0,
"characterName": "!GF_Add_Debug",
"direction": 2,
"pattern": 1,
"characterIndex": 0
},
"list": [
{
"code": 108,
"indent": 0,
"parameters": [
"===================================================="
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"■ 夜まで休憩・割り込みチェックなど"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"===================================================="
]
},
{
"code": 108,
"indent": 0,
"parameters": [
"・夜開始の数値を入力"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"・タイムテーブル値に基づき時間帯フラグ更新"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"・アニメーション表示フラグを立てておく"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"・夜スイッチオン"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
16
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"setElapsedAnime"
]
},
{
"code": 108,
"indent": 0,
"parameters": [
"---------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"□ 昼⇒夜の時に削除するフラグ群"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"---------------------------------"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
34
]
},
{
"code": 108,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"□ 通常の復帰"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 118,
"indent": 0,
"parameters": [
"通常の復帰"
]
},
{
"code": 201,
"indent": 0,
"parameters": [
0,
55,
12,
3,
4,
2
]
},
{
"code": 230,
"indent": 0,
"parameters": [
90
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": false,
"through": false,
"trigger": 3,
"walkAnime": true
}
],
"x": 4,
"y": 3
}
]
}

37907
www/data/Map013.json Normal file

File diff suppressed because it is too large Load diff

2445
www/data/Map014.json Normal file

File diff suppressed because it is too large Load diff

18062
www/data/Map015.json Normal file

File diff suppressed because it is too large Load diff

7687
www/data/Map016.json Normal file

File diff suppressed because it is too large Load diff

9295
www/data/Map017.json Normal file

File diff suppressed because it is too large Load diff

18781
www/data/Map018.json Normal file

File diff suppressed because it is too large Load diff

5137
www/data/Map019.json Normal file

File diff suppressed because it is too large Load diff

10515
www/data/Map020.json Normal file

File diff suppressed because it is too large Load diff

7412
www/data/Map021.json Normal file

File diff suppressed because it is too large Load diff

7342
www/data/Map022.json Normal file

File diff suppressed because it is too large Load diff

6502
www/data/Map023.json Normal file

File diff suppressed because it is too large Load diff

16539
www/data/Map024.json Normal file

File diff suppressed because it is too large Load diff

3144
www/data/Map025.json Normal file

File diff suppressed because it is too large Load diff

10439
www/data/Map026.json Normal file

File diff suppressed because it is too large Load diff

13161
www/data/Map027.json Normal file

File diff suppressed because it is too large Load diff

25849
www/data/Map029.json Normal file

File diff suppressed because it is too large Load diff

8442
www/data/Map030.json Normal file

File diff suppressed because it is too large Load diff

15061
www/data/Map031.json Normal file

File diff suppressed because it is too large Load diff

15089
www/data/Map032.json Normal file

File diff suppressed because it is too large Load diff

16776
www/data/Map033.json Normal file

File diff suppressed because it is too large Load diff

2055
www/data/Map034.json Normal file

File diff suppressed because it is too large Load diff

5964
www/data/Map035.json Normal file

File diff suppressed because it is too large Load diff

26102
www/data/Map037.json Normal file

File diff suppressed because it is too large Load diff

2861
www/data/Map038.json Normal file

File diff suppressed because it is too large Load diff

16837
www/data/Map039.json Normal file

File diff suppressed because it is too large Load diff

11746
www/data/Map040.json Normal file

File diff suppressed because it is too large Load diff

31876
www/data/Map041.json Normal file

File diff suppressed because it is too large Load diff

16372
www/data/Map043.json Normal file

File diff suppressed because it is too large Load diff

28188
www/data/Map044.json Normal file

File diff suppressed because it is too large Load diff

7205
www/data/Map045.json Normal file

File diff suppressed because it is too large Load diff

14004
www/data/Map046.json Normal file

File diff suppressed because it is too large Load diff

6573
www/data/Map047.json Normal file

File diff suppressed because it is too large Load diff

12326
www/data/Map048.json Normal file

File diff suppressed because it is too large Load diff

6066
www/data/Map049.json Normal file

File diff suppressed because it is too large Load diff

55383
www/data/Map050.json Normal file

File diff suppressed because it is too large Load diff

47873
www/data/Map051.json Normal file

File diff suppressed because it is too large Load diff

77812
www/data/Map054.json Normal file

File diff suppressed because it is too large Load diff

30144
www/data/Map055.json Normal file

File diff suppressed because it is too large Load diff

7413
www/data/Map056.json Normal file

File diff suppressed because it is too large Load diff

44172
www/data/Map057.json Normal file

File diff suppressed because it is too large Load diff

4980
www/data/Map058.json Normal file

File diff suppressed because it is too large Load diff

6850
www/data/Map059.json Normal file

File diff suppressed because it is too large Load diff

15997
www/data/Map062.json Normal file

File diff suppressed because it is too large Load diff

8967
www/data/Map063.json Normal file

File diff suppressed because it is too large Load diff

14726
www/data/Map064.json Normal file

File diff suppressed because it is too large Load diff

25169
www/data/Map066.json Normal file

File diff suppressed because it is too large Load diff

12470
www/data/Map068.json Normal file

File diff suppressed because it is too large Load diff

3896
www/data/Map069.json Normal file

File diff suppressed because it is too large Load diff

4051
www/data/Map070.json Normal file

File diff suppressed because it is too large Load diff

742
www/data/Map071.json Normal file
View file

@ -0,0 +1,742 @@
{
"autoplayBgm": false,
"autoplayBgs": false,
"battleback1Name": "",
"battleback2Name": "",
"bgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"bgs": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"disableDashing": false,
"displayName": "",
"encounterList": [],
"encounterStep": 30,
"height": 9,
"note": "",
"parallaxLoopX": false,
"parallaxLoopY": false,
"parallaxName": "",
"parallaxShow": true,
"parallaxSx": 0,
"parallaxSy": 0,
"scrollType": 0,
"specifyBattleback": false,
"tilesetId": 1,
"width": 13,
"data": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"events": [
null,
null
]
}

6027
www/data/Map072.json Normal file

File diff suppressed because it is too large Load diff

15665
www/data/Map073.json Normal file

File diff suppressed because it is too large Load diff

813
www/data/Map074.json Normal file
View file

@ -0,0 +1,813 @@
{
"autoplayBgm": false,
"autoplayBgs": false,
"battleback1Name": "",
"battleback2Name": "",
"bgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"bgs": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"disableDashing": false,
"displayName": "",
"encounterList": [],
"encounterStep": 30,
"height": 7,
"note": "",
"parallaxLoopX": false,
"parallaxLoopY": false,
"parallaxName": "",
"parallaxShow": true,
"parallaxSx": 0,
"parallaxSy": 0,
"scrollType": 0,
"specifyBattleback": false,
"tilesetId": 1,
"width": 9,
"data": [
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"events": [
null,
{
"id": 1,
"name": "自動実行",
"note": "",
"pages": [
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 1,
"switch1Valid": false,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"tileId": 0,
"characterName": "!GF_Add_Debug",
"direction": 2,
"pattern": 1,
"characterIndex": 0
},
"list": [
{
"code": 108,
"indent": 0,
"parameters": [
"===================================================="
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"■ 玄関から帰宅後、割り込みチェック"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"===================================================="
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"※時間を使い切って帰宅した場合も、ここを経由する。"
]
},
{
"code": 108,
"indent": 0,
"parameters": [
""
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"記録・休憩アイコンが消えていれば、表示する。"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"removeFlag フキダシ消去"
]
},
{
"code": 108,
"indent": 0,
"parameters": [
""
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"帰宅時はジャケットを脱ぐ。"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"よって、ここからの割り込みイベントはinHeroineを実行する必要がある。"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"ジャケットを脱がせたくないなど、別の衣装にしたい場合は"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"moveFadeInの前に各自設定を行うこと。"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"H_body noJacket"
]
},
{
"code": 322,
"indent": 0,
"parameters": [
1,
"GF30_Katty01",
1,
"Katty01",
0,
""
]
},
{
"code": 108,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"Event:ヘリアン進行3"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"※午後に帰宅した時のみ発生"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"※玄関から帰宅時にも判定があるので注意"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
12,
"canPlayEvent"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"getFlag Key_ヘリアン進行_帰宅から"
]
},
{
"code": 115,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 108,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"Event:最初の就寝2"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"※ベンノと最初の会話を済ませている場合"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
12,
"canPlayEvent"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"getEventFlag Key_最初の就寝"
]
},
{
"code": 115,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 108,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"Flag:Key_カティ就寝準備"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"※夜終了時を想定。就寝フラグを持ち帰った場合は通常移動をせずに直にジャンプ。"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
12,
"canPlayEvent"
]
},
{
"code": 201,
"indent": 1,
"parameters": [
0,
55,
0,
0,
0,
2
]
},
{
"code": 115,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 108,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"□ 通常の帰宅"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 201,
"indent": 0,
"parameters": [
0,
55,
7,
8,
8,
2
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"moveFadeIn"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"fadeHeroine"
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": false,
"through": false,
"trigger": 3,
"walkAnime": true
}
],
"x": 4,
"y": 3
}
]
}

651
www/data/Map075.json Normal file
View file

@ -0,0 +1,651 @@
{
"autoplayBgm": false,
"autoplayBgs": false,
"battleback1Name": "",
"battleback2Name": "",
"bgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"bgs": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"disableDashing": false,
"displayName": "",
"encounterList": [],
"encounterStep": 30,
"height": 7,
"note": "",
"parallaxLoopX": false,
"parallaxLoopY": false,
"parallaxName": "",
"parallaxShow": true,
"parallaxSx": 0,
"parallaxSy": 0,
"scrollType": 0,
"specifyBattleback": false,
"tilesetId": 1,
"width": 9,
"data": [
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
1544,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"events": [
null,
{
"id": 1,
"name": "自動実行",
"note": "",
"pages": [
{
"conditions": {
"actorId": 1,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "A",
"selfSwitchValid": false,
"switch1Id": 1,
"switch1Valid": false,
"switch2Id": 1,
"switch2Valid": false,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"tileId": 0,
"characterName": "!GF_Add_Debug",
"direction": 2,
"pattern": 1,
"characterIndex": 0
},
"list": [
{
"code": 108,
"indent": 0,
"parameters": [
"===================================================="
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"■ 午後まで休憩・割り込みチェックなど"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"===================================================="
]
},
{
"code": 108,
"indent": 0,
"parameters": [
"・午後開始の数値を入力"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"・タイムテーブル値に基づき時間帯フラグ更新"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"・アニメーション表示フラグを立てておく"
]
},
{
"code": 122,
"indent": 0,
"parameters": [
13,
13,
0,
0,
4
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"reflectZoneFlag"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"setElapsedAnime"
]
},
{
"code": 108,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"Event:ヘリアン進行3"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"※玄関から帰宅時にも判定があるので注意"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
12,
"canPlayEvent"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"getEventFlag Key_ヘリアン進行_休憩から"
]
},
{
"code": 119,
"indent": 1,
"parameters": [
"通常の復帰"
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 108,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"□ 通常の復帰"
]
},
{
"code": 408,
"indent": 0,
"parameters": [
"--------------------------------"
]
},
{
"code": 118,
"indent": 0,
"parameters": [
"通常の復帰"
]
},
{
"code": 201,
"indent": 0,
"parameters": [
0,
55,
12,
3,
4,
2
]
},
{
"code": 230,
"indent": 0,
"parameters": [
60
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 1,
"stepAnime": false,
"through": false,
"trigger": 3,
"walkAnime": true
}
],
"x": 4,
"y": 3
}
]
}

12580
www/data/Map076.json Normal file

File diff suppressed because it is too large Load diff

30202
www/data/Map077.json Normal file

File diff suppressed because it is too large Load diff

6830
www/data/Map078.json Normal file

File diff suppressed because it is too large Load diff

10346
www/data/Map079.json Normal file

File diff suppressed because it is too large Load diff

4516
www/data/Map080.json Normal file

File diff suppressed because it is too large Load diff

24104
www/data/Map081.json Normal file

File diff suppressed because it is too large Load diff

2935
www/data/Map082.json Normal file

File diff suppressed because it is too large Load diff

23997
www/data/Map083.json Normal file

File diff suppressed because it is too large Load diff

4135
www/data/Map084.json Normal file

File diff suppressed because it is too large Load diff

10578
www/data/Map085.json Normal file

File diff suppressed because it is too large Load diff

6888
www/data/Map086.json Normal file

File diff suppressed because it is too large Load diff

16069
www/data/Map091.json Normal file

File diff suppressed because it is too large Load diff

6680
www/data/Map092.json Normal file

File diff suppressed because it is too large Load diff

5827
www/data/Map093.json Normal file

File diff suppressed because it is too large Load diff

8873
www/data/Map094.json Normal file

File diff suppressed because it is too large Load diff

4997
www/data/Map095.json Normal file

File diff suppressed because it is too large Load diff

5117
www/data/Map096.json Normal file

File diff suppressed because it is too large Load diff

715
www/data/MapInfos.json Normal file
View file

@ -0,0 +1,715 @@
[
null,
{
"id": 1,
"expanded": false,
"name": "あきらのお助け部屋",
"order": 15,
"parentId": 57,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 2,
"expanded": false,
"name": "Album",
"order": 2,
"parentId": 14,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 3,
"expanded": true,
"name": "劇場:舞台:夜",
"order": 37,
"parentId": 32,
"scrollX": 769.5,
"scrollY": 424
},
null,
{
"id": 5,
"expanded": true,
"name": "薬屋の回想用",
"order": 41,
"parentId": 32,
"scrollX": 766,
"scrollY": 418.5
},
null,
null,
null,
null,
null,
{
"id": 11,
"expanded": false,
"name": "緊縛男の地下室",
"order": 24,
"parentId": 37,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 12,
"expanded": true,
"name": "Judgment:Rest_Evening",
"order": 13,
"parentId": 55,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 13,
"expanded": true,
"name": "救貧院",
"order": 66,
"parentId": 62,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 14,
"expanded": true,
"name": "ゲーム開始",
"order": 1,
"parentId": 0,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 15,
"expanded": true,
"name": "劇場:裏方部屋",
"order": 38,
"parentId": 32,
"scrollX": 819,
"scrollY": 481
},
{
"id": 16,
"expanded": false,
"name": "Event:Talk of Evil Soul",
"order": 7,
"parentId": 14,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 17,
"expanded": false,
"name": "Event:Full Size CG",
"order": 6,
"parentId": 14,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 18,
"expanded": false,
"name": "ディーサの家",
"order": 49,
"parentId": 54,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 19,
"expanded": false,
"name": "カロラの家",
"order": 67,
"parentId": 62,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 20,
"expanded": false,
"name": "アンスガルの家",
"order": 69,
"parentId": 66,
"scrollX": 765,
"scrollY": 438.5
},
{
"id": 21,
"expanded": false,
"name": "マルクの家",
"order": 73,
"parentId": 66,
"scrollX": 765,
"scrollY": 438.5
},
{
"id": 22,
"expanded": true,
"name": "浴場:受付",
"order": 71,
"parentId": 66,
"scrollX": 765,
"scrollY": 438.5
},
{
"id": 23,
"expanded": false,
"name": "ケビの家",
"order": 70,
"parentId": 66,
"scrollX": 765,
"scrollY": 438.5
},
{
"id": 24,
"expanded": true,
"name": "ヘリアンとアクセルの家",
"order": 30,
"parentId": 57,
"scrollX": 769.5,
"scrollY": 424
},
{
"id": 25,
"expanded": true,
"name": "牢屋受付",
"order": 25,
"parentId": 57,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 26,
"expanded": true,
"name": "劇場:舞台:昼",
"order": 36,
"parentId": 32,
"scrollX": 769.5,
"scrollY": 424
},
{
"id": 27,
"expanded": true,
"name": "市長:執務室",
"order": 20,
"parentId": 40,
"scrollX": 761.5,
"scrollY": 440
},
null,
{
"id": 29,
"expanded": true,
"name": "宿屋",
"order": 51,
"parentId": 51,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 30,
"expanded": true,
"name": "宿屋:住人の部屋",
"order": 52,
"parentId": 29,
"scrollX": 819,
"scrollY": 481
},
{
"id": 31,
"expanded": false,
"name": "宿屋:二階客室",
"order": 53,
"parentId": 29,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 32,
"expanded": true,
"name": "劇場:受付&回廊",
"order": 35,
"parentId": 54,
"scrollX": 811,
"scrollY": 581
},
{
"id": 33,
"expanded": true,
"name": "劇場:楽屋左",
"order": 39,
"parentId": 32,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 34,
"expanded": true,
"name": "劇場:楽屋右",
"order": 40,
"parentId": 32,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 35,
"expanded": true,
"name": "カスペルの雑貨屋",
"order": 31,
"parentId": 57,
"scrollX": 766,
"scrollY": 418.5
},
null,
{
"id": 37,
"expanded": true,
"name": "教会",
"order": 22,
"parentId": 57,
"scrollX": 758,
"scrollY": 637.5
},
{
"id": 38,
"expanded": false,
"name": "洞窟",
"order": 75,
"parentId": 0,
"scrollX": 758,
"scrollY": 445.5
},
{
"id": 39,
"expanded": false,
"name": "門番詰め所",
"order": 60,
"parentId": 51,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 40,
"expanded": false,
"name": "市長:エントランス",
"order": 16,
"parentId": 57,
"scrollX": 758,
"scrollY": 632.5
},
{
"id": 41,
"expanded": true,
"name": "武器屋",
"order": 42,
"parentId": 54,
"scrollX": 766,
"scrollY": 418.5
},
null,
{
"id": 43,
"expanded": true,
"name": "サリアン商会",
"order": 57,
"parentId": 51,
"scrollX": 758,
"scrollY": 481.5
},
{
"id": 44,
"expanded": true,
"name": "金融:会長の部屋",
"order": 58,
"parentId": 43,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 45,
"expanded": true,
"name": "金融:会長の私室",
"order": 59,
"parentId": 43,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 46,
"expanded": true,
"name": "市長:使用人の部屋",
"order": 19,
"parentId": 40,
"scrollX": 761.5,
"scrollY": 522
},
{
"id": 47,
"expanded": true,
"name": "市長:倉庫",
"order": 21,
"parentId": 40,
"scrollX": 769.5,
"scrollY": 424
},
{
"id": 48,
"expanded": false,
"name": "市長:カティの部屋",
"order": 17,
"parentId": 40,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 49,
"expanded": false,
"name": "市長:スヴェンの部屋",
"order": 18,
"parentId": 40,
"scrollX": 769.5,
"scrollY": 424
},
{
"id": 50,
"expanded": true,
"name": "酒場",
"order": 62,
"parentId": 51,
"scrollX": 758,
"scrollY": 440.5
},
{
"id": 51,
"expanded": true,
"name": "街:南区",
"order": 50,
"parentId": 0,
"scrollX": 970,
"scrollY": 645.5
},
null,
null,
{
"id": 54,
"expanded": true,
"name": "街:中央区",
"order": 34,
"parentId": 0,
"scrollX": 811,
"scrollY": 473.5
},
{
"id": 55,
"expanded": true,
"name": "カティ拠点",
"order": 9,
"parentId": 57,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 56,
"expanded": true,
"name": "カティの家:浴室",
"order": 10,
"parentId": 55,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 57,
"expanded": true,
"name": "街:北区",
"order": 8,
"parentId": 0,
"scrollX": 1015,
"scrollY": 1176.5
},
{
"id": 58,
"expanded": false,
"name": "詰め所:二階",
"order": 61,
"parentId": 39,
"scrollX": 620,
"scrollY": 448
},
{
"id": 59,
"expanded": false,
"name": "鉱石の洞窟",
"order": 76,
"parentId": 38,
"scrollX": 760,
"scrollY": 536.5
},
null,
null,
{
"id": 62,
"expanded": false,
"name": "街:スラム",
"order": 65,
"parentId": 0,
"scrollX": 758,
"scrollY": 584.5
},
{
"id": 63,
"expanded": false,
"name": "研究者バートの家",
"order": 29,
"parentId": 57,
"scrollX": 769.5,
"scrollY": 424
},
{
"id": 64,
"expanded": true,
"name": "マリアとメルケルの家",
"order": 33,
"parentId": 57,
"scrollX": 766,
"scrollY": 418.5
},
null,
{
"id": 66,
"expanded": false,
"name": "村:デュリグ",
"order": 68,
"parentId": 0,
"scrollX": 758,
"scrollY": 493.5
},
null,
{
"id": 68,
"expanded": false,
"name": "教会_幹部部屋",
"order": 23,
"parentId": 37,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 69,
"expanded": true,
"name": "Judgment:Sleep",
"order": 14,
"parentId": 55,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 70,
"expanded": false,
"name": "ダンの倉庫",
"order": 64,
"parentId": 51,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 71,
"expanded": false,
"name": "For MapReload",
"order": 5,
"parentId": 14,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 72,
"expanded": true,
"name": "牢屋特別房",
"order": 27,
"parentId": 25,
"scrollX": 758,
"scrollY": 445.5
},
{
"id": 73,
"expanded": true,
"name": "牢屋一般房",
"order": 26,
"parentId": 25,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 74,
"expanded": false,
"name": "Judgment:Entrance",
"order": 11,
"parentId": 55,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 75,
"expanded": true,
"name": "Judgment:Rest_Afternoon",
"order": 12,
"parentId": 55,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 76,
"expanded": false,
"name": "酒場二階",
"order": 63,
"parentId": 50,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 77,
"expanded": false,
"name": "ピーアの診療所",
"order": 43,
"parentId": 54,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 78,
"expanded": false,
"name": "浴場:湯船",
"order": 72,
"parentId": 66,
"scrollX": 765,
"scrollY": 438.5
},
{
"id": 79,
"expanded": true,
"name": "診療所:診察室",
"order": 44,
"parentId": 77,
"scrollX": 804.5,
"scrollY": 454
},
{
"id": 80,
"expanded": true,
"name": "エーギル邸",
"order": 54,
"parentId": 51,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 81,
"expanded": false,
"name": "エーギル邸:アトリエ",
"order": 56,
"parentId": 80,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 82,
"expanded": true,
"name": "エーギル邸:寝室",
"order": 55,
"parentId": 80,
"scrollX": 769.5,
"scrollY": 424
},
{
"id": 83,
"expanded": true,
"name": "クラフティ交易",
"order": 45,
"parentId": 54,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 84,
"expanded": true,
"name": "カスペルの雑貨屋の倉庫",
"order": 32,
"parentId": 35,
"scrollX": 769.5,
"scrollY": 424
},
{
"id": 85,
"expanded": true,
"name": "牢屋最奥",
"order": 28,
"parentId": 25,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 86,
"expanded": false,
"name": "クリステルの家",
"order": 47,
"parentId": 54,
"scrollX": 766,
"scrollY": 418.5
},
null,
null,
null,
null,
{
"id": 91,
"expanded": false,
"name": "ヴィルヘルムのたまり場",
"order": 48,
"parentId": 54,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 92,
"expanded": false,
"name": "For Ending",
"order": 3,
"parentId": 14,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 93,
"expanded": false,
"name": "照々草の洞窟",
"order": 77,
"parentId": 38,
"scrollX": 758,
"scrollY": 972.5
},
{
"id": 94,
"expanded": false,
"name": "兄弟の部屋",
"order": 46,
"parentId": 83,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 95,
"expanded": false,
"name": "For Opning",
"order": 4,
"parentId": 14,
"scrollX": 766,
"scrollY": 418.5
},
{
"id": 96,
"expanded": false,
"name": "リーマンの宿",
"order": 74,
"parentId": 66,
"scrollX": 765,
"scrollY": 438.5
}
]

345
www/data/Skills.json Normal file
View file

@ -0,0 +1,345 @@
[
null,
{
"id": 1,
"animationId": -1,
"damage": {
"critical": true,
"elementId": -1,
"formula": "a.atk * 4 - b.def * 2",
"type": 1,
"variance": 20
},
"description": "",
"effects": [
{
"code": 21,
"dataId": 0,
"value1": 1,
"value2": 0
}
],
"hitType": 1,
"iconIndex": 76,
"message1": "の攻撃!",
"message2": "",
"mpCost": 0,
"name": "攻撃",
"note": "スキル1番は[攻撃]コマンドを\n選択したときに使用されます。",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 1,
"speed": 0,
"stypeId": 0,
"successRate": 100,
"tpCost": 0,
"tpGain": 10
},
{
"id": 2,
"animationId": 0,
"damage": {
"critical": false,
"elementId": 0,
"formula": "0",
"type": 0,
"variance": 20
},
"description": "",
"effects": [
{
"code": 21,
"dataId": 2,
"value1": 1,
"value2": 0
}
],
"hitType": 0,
"iconIndex": 81,
"message1": "は身を守っている。",
"message2": "",
"mpCost": 0,
"name": "防御",
"note": "スキル2番は[防御]コマンドを\n選択したときに使用されます。",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 11,
"speed": 2000,
"stypeId": 0,
"successRate": 100,
"tpCost": 0,
"tpGain": 10
},
{
"id": 3,
"animationId": -1,
"damage": {
"critical": true,
"elementId": -1,
"formula": "a.atk * 4 - b.def * 2",
"type": 1,
"variance": 20
},
"description": "",
"effects": [
{
"code": 21,
"dataId": 0,
"value1": 1,
"value2": 0
}
],
"hitType": 1,
"iconIndex": 76,
"message1": "の攻撃!",
"message2": "",
"mpCost": 0,
"name": "連続攻撃",
"note": "",
"occasion": 1,
"repeats": 2,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 1,
"speed": 0,
"stypeId": 0,
"successRate": 100,
"tpCost": 0,
"tpGain": 5
},
{
"id": 4,
"animationId": -1,
"damage": {
"critical": true,
"elementId": -1,
"formula": "a.atk * 4 - b.def * 2",
"type": 1,
"variance": 20
},
"description": "",
"effects": [
{
"code": 21,
"dataId": 0,
"value1": 1,
"value2": 0
}
],
"hitType": 1,
"iconIndex": 76,
"message1": "の攻撃!",
"message2": "",
"mpCost": 0,
"name": "2回攻撃",
"note": "",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 4,
"speed": 0,
"stypeId": 0,
"successRate": 100,
"tpCost": 0,
"tpGain": 5
},
{
"id": 5,
"animationId": -1,
"damage": {
"critical": true,
"elementId": -1,
"formula": "a.atk * 4 - b.def * 2",
"type": 1,
"variance": 20
},
"description": "",
"effects": [
{
"code": 21,
"dataId": 0,
"value1": 1,
"value2": 0
}
],
"hitType": 1,
"iconIndex": 76,
"message1": "の攻撃!",
"message2": "",
"mpCost": 0,
"name": "3回攻撃",
"note": "",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 5,
"speed": 0,
"stypeId": 0,
"successRate": 100,
"tpCost": 0,
"tpGain": 4
},
{
"id": 6,
"animationId": 0,
"damage": {
"critical": false,
"elementId": 0,
"formula": "0",
"type": 0,
"variance": 20
},
"description": "",
"effects": [
{
"code": 41,
"dataId": 0,
"value1": 0,
"value2": 0
}
],
"hitType": 0,
"iconIndex": 82,
"message1": "は逃げてしまった。",
"message2": "",
"mpCost": 0,
"name": "逃げる",
"note": "",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 11,
"speed": 0,
"stypeId": 0,
"successRate": 100,
"tpCost": 0,
"tpGain": 0
},
{
"id": 7,
"animationId": 0,
"damage": {
"critical": false,
"elementId": 0,
"formula": "0",
"type": 0,
"variance": 20
},
"description": "",
"effects": [],
"hitType": 0,
"iconIndex": 81,
"message1": "は様子を見ている。",
"message2": "",
"mpCost": 0,
"name": "様子を見る",
"note": "",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 0,
"speed": 0,
"stypeId": 0,
"successRate": 100,
"tpCost": 0,
"tpGain": 10
},
{
"id": 8,
"animationId": 41,
"damage": {
"critical": false,
"elementId": 0,
"formula": "200 + a.mat",
"type": 3,
"variance": 20
},
"description": "",
"effects": [],
"hitType": 0,
"iconIndex": 72,
"message1": "は%1を唱えた",
"message2": "",
"mpCost": 5,
"name": "ヒール",
"note": "",
"occasion": 0,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 7,
"speed": 0,
"stypeId": 1,
"successRate": 100,
"tpCost": 0,
"tpGain": 10
},
{
"id": 9,
"animationId": 66,
"damage": {
"critical": false,
"elementId": 2,
"formula": "100 + a.mat * 2 - b.mdf * 2",
"type": 1,
"variance": 20
},
"description": "",
"effects": [],
"hitType": 2,
"iconIndex": 64,
"message1": "は%1を唱えた",
"message2": "",
"mpCost": 5,
"name": "ファイア",
"note": "",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 1,
"speed": 0,
"stypeId": 1,
"successRate": 100,
"tpCost": 0,
"tpGain": 10
},
{
"id": 10,
"animationId": 78,
"damage": {
"critical": false,
"elementId": 4,
"formula": "100 + a.mat * 2 - b.mdf * 2",
"type": 1,
"variance": 20
},
"description": "",
"effects": [],
"hitType": 2,
"iconIndex": 66,
"message1": "は%1を唱えた",
"message2": "",
"mpCost": 5,
"name": "スパーク",
"note": "",
"occasion": 1,
"repeats": 1,
"requiredWtypeId1": 0,
"requiredWtypeId2": 0,
"scope": 2,
"speed": 0,
"stypeId": 1,
"successRate": 100,
"tpCost": 0,
"tpGain": 10
}
]

295
www/data/States.json Normal file
View file

@ -0,0 +1,295 @@
[
null,
{
"id": 1,
"autoRemovalTiming": 0,
"chanceByDamage": 100,
"iconIndex": 1,
"maxTurns": 1,
"message1": "は倒れた!",
"message2": "を倒した!",
"message3": "",
"message4": "は立ち上がった!",
"minTurns": 1,
"motion": 3,
"name": "戦闘不能",
"note": "ステート1番はHPが0になったときに\n自動的に付加されます。",
"overlay": 0,
"priority": 100,
"releaseByDamage": false,
"removeAtBattleEnd": false,
"removeByDamage": false,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 4,
"stepsToRemove": 100,
"traits": [
{
"code": 23,
"dataId": 9,
"value": 0
}
]
},
{
"id": 2,
"autoRemovalTiming": 2,
"chanceByDamage": 100,
"description": "",
"iconIndex": 0,
"maxTurns": 1,
"message1": "",
"message2": "",
"message3": "",
"message4": "",
"minTurns": 1,
"motion": 0,
"name": "防御",
"note": "",
"overlay": 0,
"priority": 0,
"removeAtBattleEnd": true,
"removeByDamage": false,
"removeByRestriction": true,
"removeByWalking": false,
"restriction": 0,
"stepsToRemove": 100,
"traits": [
{
"code": 62,
"dataId": 1,
"value": 0
}
]
},
{
"id": 3,
"autoRemovalTiming": 0,
"chanceByDamage": 100,
"description": "",
"iconIndex": 0,
"maxTurns": 1,
"message1": "",
"message2": "",
"message3": "",
"message4": "",
"minTurns": 1,
"motion": 0,
"name": "不死身",
"note": "",
"overlay": 0,
"priority": 0,
"removeAtBattleEnd": true,
"removeByDamage": false,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 0,
"stepsToRemove": 100,
"traits": [
{
"code": 14,
"dataId": 1,
"value": 0
}
]
},
{
"id": 4,
"autoRemovalTiming": 0,
"chanceByDamage": 100,
"iconIndex": 2,
"maxTurns": 1,
"message1": "は毒にかかった!",
"message2": "に毒をかけた!",
"message3": "",
"message4": "の毒が消えた!",
"minTurns": 1,
"motion": 1,
"overlay": 1,
"name": "毒",
"note": "",
"priority": 50,
"releaseByDamage": false,
"removeAtBattleEnd": false,
"removeByDamage": false,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 0,
"stepsToRemove": 100,
"traits": [
{
"code": 22,
"dataId": 7,
"value": -0.1
}
]
},
{
"id": 5,
"autoRemovalTiming": 1,
"chanceByDamage": 100,
"iconIndex": 3,
"maxTurns": 5,
"message1": "は暗闇に閉ざされた!",
"message2": "を暗闇に閉ざした!",
"message3": "",
"message4": "の暗闇が消えた!",
"minTurns": 3,
"motion": 1,
"name": "暗闇",
"note": "",
"overlay": 2,
"priority": 60,
"releaseByDamage": false,
"removeAtBattleEnd": true,
"removeByDamage": false,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 0,
"stepsToRemove": 100,
"traits": [
{
"code": 22,
"dataId": 0,
"value": -0.5
}
]
},
{
"id": 6,
"autoRemovalTiming": 1,
"chanceByDamage": 100,
"iconIndex": 4,
"maxTurns": 5,
"message1": "は沈黙した!",
"message2": "を沈黙させた!",
"message3": "",
"message4": "の沈黙が解けた!",
"minTurns": 3,
"motion": 1,
"name": "沈黙",
"note": "",
"overlay": 3,
"priority": 65,
"releaseByDamage": false,
"removeAtBattleEnd": true,
"removeByDamage": false,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 0,
"stepsToRemove": 100,
"traits": [
{
"code": 42,
"dataId": 1,
"value": 0
}
]
},
{
"id": 7,
"autoRemovalTiming": 1,
"chanceByDamage": 50,
"iconIndex": 5,
"maxTurns": 4,
"message1": "は激昂した!",
"message2": "を激昂させた!",
"message3": "",
"message4": "は我に返った!",
"minTurns": 2,
"motion": 1,
"name": "激昂",
"note": "",
"overlay": 4,
"priority": 70,
"releaseByDamage": false,
"removeAtBattleEnd": true,
"removeByDamage": true,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 1,
"stepsToRemove": 100,
"traits": []
},
{
"id": 8,
"autoRemovalTiming": 1,
"chanceByDamage": 50,
"iconIndex": 6,
"maxTurns": 4,
"message1": "は混乱した!",
"message2": "を混乱させた!",
"message3": "",
"message4": "は我に返った!",
"minTurns": 2,
"motion": 1,
"name": "混乱",
"note": "",
"overlay": 5,
"priority": 75,
"releaseByDamage": false,
"removeAtBattleEnd": true,
"removeByDamage": true,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 2,
"stepsToRemove": 100,
"traits": []
},
{
"id": 9,
"autoRemovalTiming": 1,
"chanceByDamage": 50,
"iconIndex": 7,
"maxTurns": 4,
"message1": "は魅了された!",
"message2": "を魅了した!",
"message3": "",
"message4": "は我に返った!",
"minTurns": 2,
"motion": 1,
"name": "魅了",
"note": "",
"overlay": 6,
"priority": 80,
"releaseByDamage": false,
"removeAtBattleEnd": true,
"removeByDamage": true,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 3,
"stepsToRemove": 100,
"traits": []
},
{
"id": 10,
"autoRemovalTiming": 1,
"chanceByDamage": 100,
"iconIndex": 8,
"maxTurns": 5,
"message1": "は眠った!",
"message2": "を眠らせた!",
"message3": "は眠っている。",
"message4": "は目を覚ました!",
"minTurns": 3,
"motion": 2,
"name": "睡眠",
"note": "",
"overlay": 7,
"priority": 90,
"releaseByDamage": true,
"removeAtBattleEnd": true,
"removeByDamage": true,
"removeByRestriction": false,
"removeByWalking": false,
"restriction": 4,
"stepsToRemove": 100,
"traits": [
{
"code": 22,
"dataId": 1,
"value": -1
}
]
}
]

705
www/data/System.json Normal file
View file

@ -0,0 +1,705 @@
{
"airship": {
"bgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"characterIndex": 3,
"characterName": "Vehicle",
"startMapId": 0,
"startX": 0,
"startY": 0
},
"armorTypes": [
"",
"一般防具",
"魔法防具",
"軽装防具",
"重装防具",
"小型盾",
"大型盾"
],
"attackMotions": [
{
"type": 0,
"weaponImageId": 0
},
{
"type": 1,
"weaponImageId": 1
},
{
"type": 1,
"weaponImageId": 2
},
{
"type": 1,
"weaponImageId": 3
},
{
"type": 1,
"weaponImageId": 4
},
{
"type": 1,
"weaponImageId": 5
},
{
"type": 1,
"weaponImageId": 6
},
{
"type": 2,
"weaponImageId": 7
},
{
"type": 2,
"weaponImageId": 8
},
{
"type": 2,
"weaponImageId": 9
},
{
"type": 0,
"weaponImageId": 10
},
{
"type": 0,
"weaponImageId": 11
},
{
"type": 0,
"weaponImageId": 12
}
],
"battleBgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"battleback1Name": "Grassland",
"battleback2Name": "Grassland",
"battlerHue": 0,
"battlerName": "Dragon",
"boat": {
"bgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"characterIndex": 0,
"characterName": "Vehicle",
"startMapId": 0,
"startX": 0,
"startY": 0
},
"currencyUnit": "",
"defeatMe": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"editMapId": 38,
"elements": [
"",
"物理",
"炎",
"氷",
"雷",
"水",
"土",
"風",
"光",
"闇"
],
"equipTypes": [
"",
"武器",
"盾",
"頭",
"身体",
"装飾品"
],
"gameTitle": "悪魂入りのカティ",
"gameoverMe": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"locale": "ja_JP",
"magicSkills": [
1
],
"menuCommands": [
true,
true,
true,
true,
true,
true
],
"optDisplayTp": false,
"optDrawTitle": false,
"optExtraExp": false,
"optFloorDeath": false,
"optFollowers": false,
"optSideView": false,
"optSlipDeath": false,
"optTransparent": false,
"partyMembers": [
1
],
"ship": {
"bgm": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"characterIndex": 1,
"characterName": "Vehicle",
"startMapId": 0,
"startX": 0,
"startY": 0
},
"skillTypes": [
"",
"魔法",
"必殺技"
],
"sounds": [
{
"name": "_Cursor1",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "_Ok1",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "_Cancel1",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "$Buzzer1",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "_Save",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "_Load",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
{
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
}
],
"startMapId": 14,
"startX": 4,
"startY": 2,
"switches": [
"",
"汎用スイッチA",
"汎用スイッチB",
"汎用スイッチC",
"",
"isNight?",
"EroticTypeFlag",
"SCFlag",
"canGoToLast",
"isGallery?",
"isHideTimeSign?",
"",
"",
"{hasCleared}",
"{hasClearedDisgrace}",
"{hasClearedDignity}",
"{isEasy}低難易度?",
"{isDignityRoot}",
"{isTrial}体験版?",
"{isTooLate}残り時間1昼夜共通",
"{test}動的テスト",
"isOfficial",
"",
"runTutorial?",
"",
"",
"",
"デュリグ通行証が欲しい",
"スラム通行証が欲しい",
"採取通行証が欲しい",
"透過鉱石が欲しい",
"照々草が欲しい",
"",
"",
"",
"",
"",
"",
"",
"",
"エーギル窓待機実行",
"ルー:サリアン",
"ルー:ヘリアン",
"ルー:冒険者",
"サリアン:真意確認",
"サリアン:トビー",
"サリアン:クラフティ",
"ピーア:ディーサ",
"{PiaKnut}ピーア:クヌート",
"",
"リーマン:デュリグ",
"リーマン:グベンタ",
"ケイ:ベンノ1(緊縛)",
"ケイ:ベンノ2(劇場)",
"ケイ:ディックについて",
"ベンノ:ケイにヘルプ中",
"パウル:ベンノ2(劇場)",
"入浴:覗き待機",
"スラム:抗議選択",
"",
""
],
"terms": {
"basic": [
"レベル",
"Lv",
"",
"HP",
"",
"MP",
"",
"TP",
"経験値",
"EXP"
],
"commands": [
"戦う",
"逃げる",
"攻撃",
"防御",
"アイテム",
"スキル",
"装備",
"ステータス",
"並び替え",
"セーブ",
"ゲーム終了",
"オプション",
"武器",
"防具",
"大事なもの",
"装備",
"最強装備",
"全て外す",
"最初から",
"続きから",
null,
"タイトルへ戻る",
"キャンセル",
null,
"購入する",
"売却する"
],
"params": [
"最大HP",
"最大MP",
"攻撃力",
"防御力",
"魔法力",
"魔法防御",
"敏捷性",
"運",
"命中率",
"回避率"
],
"messages": {
"actionFailure": "%1には効かなかった",
"actorDamage": "%1は %2 のダメージを受けた!",
"actorDrain": "%1は%2を %3 奪われた!",
"actorGain": "%1の%2が %3 増えた!",
"actorLoss": "%1の%2が %3 減った!",
"actorNoDamage": "%1はダメージを受けていない",
"actorNoHit": "ミス! %1はダメージを受けていない",
"actorRecovery": "%1の%2が %3 回復した!",
"alwaysDash": "常にダッシュ?",
"bgmVolume": "BGM",
"bgsVolume": "BGS",
"buffAdd": "%1の%2が上がった",
"buffRemove": "%1の%2が元に戻った",
"commandRemember": "カーソル位置記憶",
"counterAttack": "%1の反撃",
"criticalToActor": "痛恨の一撃!!",
"criticalToEnemy": "会心の一撃!!",
"debuffAdd": "%1の%2が下がった",
"defeat": "%1は戦いに敗れた。",
"emerge": "%1が出現",
"enemyDamage": "%1に %2 のダメージを与えた!",
"enemyDrain": "%1の%2を %3 奪った!",
"enemyGain": "%1の%2が %3 増えた!",
"enemyLoss": "%1の%2が %3 減った!",
"enemyNoDamage": "%1にダメージを与えられない",
"enemyNoHit": "ミス! %1にダメージを与えられない",
"enemyRecovery": "%1の%2が %3 回復した!",
"escapeFailure": "しかし逃げることはできなかった!",
"escapeStart": "%1は逃げ出した",
"evasion": "%1は攻撃をかわした",
"expNext": "次の%1まで",
"expTotal": "現在の%1",
"file": "ファイル",
"levelUp": "%1は%2 %3 に上がった!",
"loadMessage": "どのファイルをロードしますか?",
"magicEvasion": "%1は魔法を打ち消した",
"magicReflection": "%1は魔法を跳ね返した",
"meVolume": "ME",
"obtainExp": "%1 の%2を獲得",
"obtainGold": "お金を %1\\G 手に入れた!",
"obtainItem": "%1を手に入れた",
"obtainSkill": "%1を覚えた",
"partyName": "%1たち",
"possession": "持っている数",
"preemptive": "%1は先手を取った",
"saveMessage": "どのファイルにセーブしますか?",
"seVolume": "SE",
"substitute": "%1が%2をかばった",
"surprise": "%1は不意をつかれた",
"useItem": "%1は%2を使った",
"victory": "%1の勝利"
}
},
"testBattlers": [
{
"actorId": 1,
"equips": [
1,
1,
2,
3,
0
],
"level": 1
},
{
"actorId": 2,
"equips": [
2,
1,
2,
3,
0
],
"level": 1
},
{
"actorId": 3,
"equips": [
3,
0,
2,
3,
4
],
"level": 1
},
{
"actorId": 4,
"equips": [
4,
0,
2,
3,
4
],
"level": 1
}
],
"testTroopId": 4,
"title1Name": "GF30title01",
"title2Name": "",
"titleBgm": {
"name": "ハヤシユウ_ありふれたしあわせ",
"pan": 0,
"pitch": 100,
"volume": 70
},
"variables": [
"",
"汎用変数A",
"汎用変数B",
"汎用変数C",
"Difficulty(1:normal 2:easy)",
"HistoryMemo",
"DebugMemo",
"Branch_Ending",
"Version",
"",
"***********timeTablePrev",
"No. of past days",
"Deadline day",
"timeTable",
"Dignity Points",
"Coins",
"*********",
"*********SaveDataLabel",
"Gallery Common ID",
"Gallery_CG文字列",
"=同値出現テスト",
"Count:avoiding Katty",
"Count:dog remaining life",
"Count:after helping researchers",
"Count:reward level of passport",
"Count:clear owner",
"Count:skirt flaped by wind magic",
"Count:set up skirt lifting trap",
"Count:Worked at variety store",
"Count:get Crystal",
"Count:救貧院支援理由探し",
"Count:メインイベント完了",
"Count:get mirrors",
"Count:ルーが襲われるまで",
"Count:マリア身売りまでの日数",
"Count:Crafty's Request",
"Count:星を眺めた",
"Count:教会の情報数",
"Count:",
"Count:",
"Count:",
"Data:EvilsoulAttackTarget",
"Data:briberyAmount",
"Data:passportFee",
"Data:conditionPassport01",
"Data:conditionPassport02",
"Data:conditionPassport03",
"Data:rewardResearcher",
"Data:dogRescue",
"Data:rewardModel",
"Data:priceSpices",
"Data:kimRequest",
"Data:rewardBar",
"Data:postponementMariaFee",
"Data:talkWithPaul",
"",
"",
"",
"",
"",
"",
"COM:進行",
"COM:爆弾娘",
"COM:特攻の魔璃男",
"COM:スマッシュ大運動会",
"COM:落書き小隊",
"COM:連勝数",
"=COM:どのゲームを選んだ?",
"",
"",
"",
"DVD:進行",
"DVD:総実行数",
"DVD:スロットレベル",
"DVD:スロット正解数",
"DVD:訪問数",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"versionId": 70860927,
"victoryMe": {
"name": "",
"pan": 0,
"pitch": 100,
"volume": 90
},
"weaponTypes": [
"",
"短剣",
"剣",
"フレイル",
"斧",
"ムチ",
"杖",
"弓",
"クロスボウ",
"銃",
"爪",
"グローブ",
"槍"
],
"windowTone": [
0,
0,
0,
0
],
"hasEncryptedImages": true,
"hasEncryptedAudio": true,
"encryptionKey": "a843d0bfd9065caaf1599bb6446861d0"
}

24756
www/data/Tilesets.json Normal file

File diff suppressed because it is too large Load diff

167
www/data/Troops.json Normal file
View file

@ -0,0 +1,167 @@
[
null,
{
"id": 1,
"members": [
{
"enemyId": 1,
"x": 336,
"y": 436,
"hidden": false
},
{
"enemyId": 1,
"x": 480,
"y": 436,
"hidden": false
}
],
"name": "こうもり*2",
"pages": [
{
"conditions": {
"actorHp": 50,
"actorId": 1,
"actorValid": false,
"enemyHp": 50,
"enemyIndex": 0,
"enemyValid": false,
"switchId": 1,
"switchValid": false,
"turnA": 0,
"turnB": 0,
"turnEnding": false,
"turnValid": false
},
"list": [
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"span": 0
}
]
},
{
"id": 2,
"members": [
{
"enemyId": 2,
"x": 337,
"y": 436,
"hidden": false
},
{
"enemyId": 2,
"x": 480,
"y": 436,
"hidden": false
}
],
"name": "スライム*2",
"pages": [
{
"conditions": {
"actorHp": 50,
"actorId": 1,
"actorValid": false,
"enemyHp": 50,
"enemyIndex": 0,
"enemyValid": false,
"switchId": 1,
"switchValid": false,
"turnA": 0,
"turnB": 0,
"turnEnding": false,
"turnValid": false
},
"list": [
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"span": 0
}
]
},
{
"id": 3,
"members": [
{
"enemyId": 3,
"x": 408,
"y": 436,
"hidden": false
}
],
"name": "オーク",
"pages": [
{
"conditions": {
"actorHp": 50,
"actorId": 1,
"actorValid": false,
"enemyHp": 50,
"enemyIndex": 0,
"enemyValid": false,
"switchId": 1,
"switchValid": false,
"turnA": 0,
"turnB": 0,
"turnEnding": false,
"turnValid": false
},
"list": [
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"span": 0
}
]
},
{
"id": 4,
"members": [
{
"enemyId": 4,
"x": 408,
"y": 436,
"hidden": false
}
],
"name": "ミノタウロス",
"pages": [
{
"conditions": {
"actorHp": 50,
"actorId": 1,
"actorValid": false,
"enemyHp": 50,
"enemyIndex": 0,
"enemyValid": false,
"switchId": 1,
"switchValid": false,
"turnA": 0,
"turnB": 0,
"turnEnding": false,
"turnValid": false
},
"list": [
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"span": 0
}
]
}
]

135
www/data/Weapons.json Normal file
View file

@ -0,0 +1,135 @@
[
null,
{
"id": 1,
"animationId": 6,
"description": "",
"etypeId": 1,
"traits": [
{
"code": 31,
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 0,
"value": 0
}
],
"iconIndex": 97,
"name": "剣",
"note": "",
"params": [
0,
0,
10,
0,
0,
0,
0,
0
],
"price": 500,
"wtypeId": 2
},
{
"id": 2,
"animationId": 6,
"description": "",
"etypeId": 1,
"traits": [
{
"code": 31,
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 0,
"value": 0
}
],
"iconIndex": 99,
"name": "斧",
"note": "",
"params": [
0,
0,
10,
0,
0,
0,
0,
0
],
"price": 500,
"wtypeId": 4
},
{
"id": 3,
"animationId": 1,
"description": "",
"etypeId": 1,
"traits": [
{
"code": 31,
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 0,
"value": 0
}
],
"iconIndex": 101,
"name": "杖",
"note": "",
"params": [
0,
0,
10,
0,
0,
0,
0,
0
],
"price": 500,
"wtypeId": 6
},
{
"id": 4,
"animationId": 11,
"description": "",
"etypeId": 1,
"traits": [
{
"code": 31,
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 0,
"value": 0
}
],
"iconIndex": 102,
"name": "弓",
"note": "",
"params": [
0,
0,
10,
0,
0,
0,
0,
0
],
"price": 500,
"wtypeId": 7
}
]

53
www/js/libs/fpsmeter.js Normal file
View file

@ -0,0 +1,53 @@
/*! FPSMeter 0.3.1 - 9th May 2013 | https://github.com/Darsain/fpsmeter */
(function (m, j) {
function s(a, e) { for (var g in e) try { a.style[g] = e[g] } catch (j) { } return a } function H(a) { return null == a ? String(a) : "object" === typeof a || "function" === typeof a ? Object.prototype.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase() || "object" : typeof a } function R(a, e) { if ("array" !== H(e)) return -1; if (e.indexOf) return e.indexOf(a); for (var g = 0, j = e.length; g < j; g++)if (e[g] === a) return g; return -1 } function I() {
var a = arguments, e; for (e in a[1]) if (a[1].hasOwnProperty(e)) switch (H(a[1][e])) {
case "object": a[0][e] =
I({}, a[0][e], a[1][e]); break; case "array": a[0][e] = a[1][e].slice(0); break; default: a[0][e] = a[1][e]
}return 2 < a.length ? I.apply(null, [a[0]].concat(Array.prototype.slice.call(a, 2))) : a[0]
} function N(a) { a = Math.round(255 * a).toString(16); return 1 === a.length ? "0" + a : a } function S(a, e, g, j) { if (a.addEventListener) a[j ? "removeEventListener" : "addEventListener"](e, g, !1); else if (a.attachEvent) a[j ? "detachEvent" : "attachEvent"]("on" + e, g) } function D(a, e) {
function g(a, b, d, c) { return y[0 | a][Math.round(Math.min((b - d) / (c - d) * J, J))] }
function r() { f.legend.fps !== q && (f.legend.fps = q, f.legend[T] = q ? "FPS" : "ms"); K = q ? b.fps : b.duration; f.count[T] = 999 < K ? "999+" : K.toFixed(99 < K ? 0 : d.decimals) } function m() {
z = A(); L < z - d.threshold && (b.fps -= b.fps / Math.max(1, 60 * d.smoothing / d.interval), b.duration = 1E3 / b.fps); for (c = d.history; c--;)E[c] = 0 === c ? b.fps : E[c - 1], F[c] = 0 === c ? b.duration : F[c - 1]; r(); if (d.heat) {
if (w.length) for (c = w.length; c--;)w[c].el.style[h[w[c].name].heatOn] = q ? g(h[w[c].name].heatmap, b.fps, 0, d.maxFps) : g(h[w[c].name].heatmap, b.duration, d.threshold,
0); if (f.graph && h.column.heatOn) for (c = u.length; c--;)u[c].style[h.column.heatOn] = q ? g(h.column.heatmap, E[c], 0, d.maxFps) : g(h.column.heatmap, F[c], d.threshold, 0)
} if (f.graph) for (p = 0; p < d.history; p++)u[p].style.height = (q ? E[p] ? Math.round(O / d.maxFps * Math.min(E[p], d.maxFps)) : 0 : F[p] ? Math.round(O / d.threshold * Math.min(F[p], d.threshold)) : 0) + "px"
} function k() { 20 > d.interval ? (x = M(k), m()) : (x = setTimeout(k, d.interval), P = M(m)) } function G(a) {
a = a || window.event; a.preventDefault ? (a.preventDefault(), a.stopPropagation()) : (a.returnValue =
!1, a.cancelBubble = !0); b.toggle()
} function U() { d.toggleOn && S(f.container, d.toggleOn, G, 1); a.removeChild(f.container) } function V() {
f.container && U(); h = D.theme[d.theme]; y = h.compiledHeatmaps || []; if (!y.length && h.heatmaps.length) {
for (p = 0; p < h.heatmaps.length; p++) {
y[p] = []; for (c = 0; c <= J; c++) {
var b = y[p], e = c, g; g = 0.33 / J * c; var j = h.heatmaps[p].saturation, m = h.heatmaps[p].lightness, n = void 0, k = void 0, l = void 0, t = l = void 0, v = n = k = void 0, v = void 0, l = 0.5 >= m ? m * (1 + j) : m + j - m * j; 0 === l ? g = "#000" : (t = 2 * m - l, k = (l - t) / l, g *= 6, n = Math.floor(g),
v = g - n, v *= l * k, 0 === n || 6 === n ? (n = l, k = t + v, l = t) : 1 === n ? (n = l - v, k = l, l = t) : 2 === n ? (n = t, k = l, l = t + v) : 3 === n ? (n = t, k = l - v) : 4 === n ? (n = t + v, k = t) : (n = l, k = t, l -= v), g = "#" + N(n) + N(k) + N(l)); b[e] = g
}
} h.compiledHeatmaps = y
} f.container = s(document.createElement("div"), h.container); f.count = f.container.appendChild(s(document.createElement("div"), h.count)); f.legend = f.container.appendChild(s(document.createElement("div"), h.legend)); f.graph = d.graph ? f.container.appendChild(s(document.createElement("div"), h.graph)) : 0; w.length = 0; for (var q in f) f[q] &&
h[q].heatOn && w.push({ name: q, el: f[q] }); u.length = 0; if (f.graph) { f.graph.style.width = d.history * h.column.width + (d.history - 1) * h.column.spacing + "px"; for (c = 0; c < d.history; c++)u[c] = f.graph.appendChild(s(document.createElement("div"), h.column)), u[c].style.position = "absolute", u[c].style.bottom = 0, u[c].style.right = c * h.column.width + c * h.column.spacing + "px", u[c].style.width = h.column.width + "px", u[c].style.height = "0px" } s(f.container, d); r(); a.appendChild(f.container); f.graph && (O = f.graph.clientHeight); d.toggleOn && ("click" ===
d.toggleOn && (f.container.style.cursor = "pointer"), S(f.container, d.toggleOn, G))
} "object" === H(a) && a.nodeType === j && (e = a, a = document.body); a || (a = document.body); var b = this, d = I({}, D.defaults, e || {}), f = {}, u = [], h, y, J = 100, w = [], W = 0, B = d.threshold, Q = 0, L = A() - B, z, E = [], F = [], x, P, q = "fps" === d.show, O, K, c, p; b.options = d; b.fps = 0; b.duration = 0; b.isPaused = 0; b.tickStart = function () { Q = A() }; b.tick = function () { z = A(); W = z - L; B += (W - B) / d.smoothing; b.fps = 1E3 / B; b.duration = Q < L ? B : z - Q; L = z }; b.pause = function () {
x && (b.isPaused = 1, clearTimeout(x),
C(x), C(P), x = P = 0); return b
}; b.resume = function () { x || (b.isPaused = 0, k()); return b }; b.set = function (a, c) { d[a] = c; q = "fps" === d.show; -1 !== R(a, X) && V(); -1 !== R(a, Y) && s(f.container, d); return b }; b.showDuration = function () { b.set("show", "ms"); return b }; b.showFps = function () { b.set("show", "fps"); return b }; b.toggle = function () { b.set("show", q ? "ms" : "fps"); return b }; b.hide = function () { b.pause(); f.container.style.display = "none"; return b }; b.show = function () { b.resume(); f.container.style.display = "block"; return b }; b.destroy = function () {
b.pause();
U(); b.tick = b.tickStart = function () { }
}; V(); k()
} var A, r = m.performance; A = r && (r.now || r.webkitNow) ? r[r.now ? "now" : "webkitNow"].bind(r) : function () { return +new Date }; for (var C = m.cancelAnimationFrame || m.cancelRequestAnimationFrame, M = m.requestAnimationFrame, r = ["moz", "webkit", "o"], G = 0, k = 0, Z = r.length; k < Z && !C; ++k)M = (C = m[r[k] + "CancelAnimationFrame"] || m[r[k] + "CancelRequestAnimationFrame"]) && m[r[k] + "RequestAnimationFrame"]; C || (M = function (a) {
var e = A(), g = Math.max(0, 16 - (e - G)); G = e + g; return m.setTimeout(function () {
a(e +
g)
}, g)
}, C = function (a) { clearTimeout(a) }); var T = "string" === H(document.createElement("div").textContent) ? "textContent" : "innerText"; D.extend = I; window.FPSMeter = D; D.defaults = { interval: 100, smoothing: 10, show: "fps", toggleOn: "click", decimals: 1, maxFps: 60, threshold: 100, position: "absolute", zIndex: 10, left: "5px", top: "5px", right: "auto", bottom: "auto", margin: "0 0 0 0", theme: "dark", heat: 0, graph: 0, history: 20 }; var X = ["toggleOn", "theme", "heat", "graph", "history"], Y = "position zIndex left top right bottom margin".split(" ")
})(window); (function (m, j) {
j.theme = {}; var s = j.theme.base = {
heatmaps: [], container: { heatOn: null, heatmap: null, padding: "5px", minWidth: "95px", height: "30px", lineHeight: "30px", textAlign: "right", textShadow: "none" }, count: { heatOn: null, heatmap: null, position: "absolute", top: 0, right: 0, padding: "5px 10px", height: "30px", fontSize: "24px", fontFamily: "Consolas, Andale Mono, monospace", zIndex: 2 }, legend: {
heatOn: null, heatmap: null, position: "absolute", top: 0, left: 0, padding: "5px 10px", height: "30px", fontSize: "12px", lineHeight: "32px", fontFamily: "sans-serif",
textAlign: "left", zIndex: 2
}, graph: { heatOn: null, heatmap: null, position: "relative", boxSizing: "padding-box", MozBoxSizing: "padding-box", height: "100%", zIndex: 1 }, column: { width: 4, spacing: 1, heatOn: null, heatmap: null }
}; j.theme.dark = j.extend({}, s, { heatmaps: [{ saturation: 0.8, lightness: 0.8 }], container: { background: "#222", color: "#fff", border: "1px solid #1a1a1a", textShadow: "1px 1px 0 #222" }, count: { heatOn: "color" }, column: { background: "#3f3f3f" } }); j.theme.light = j.extend({}, s, {
heatmaps: [{ saturation: 0.5, lightness: 0.5 }],
container: { color: "#666", background: "#fff", textShadow: "1px 1px 0 rgba(255,255,255,.5), -1px -1px 0 rgba(255,255,255,.5)", boxShadow: "0 0 0 1px rgba(0,0,0,.1)" }, count: { heatOn: "color" }, column: { background: "#eaeaea" }
}); j.theme.colorful = j.extend({}, s, { heatmaps: [{ saturation: 0.5, lightness: 0.6 }], container: { heatOn: "backgroundColor", background: "#888", color: "#fff", textShadow: "1px 1px 0 rgba(0,0,0,.2)", boxShadow: "0 0 0 1px rgba(0,0,0,.1)" }, column: { background: "#777", backgroundColor: "rgba(0,0,0,.2)" } }); j.theme.transparent =
j.extend({}, s, { heatmaps: [{ saturation: 0.8, lightness: 0.5 }], container: { padding: 0, color: "#fff", textShadow: "1px 1px 0 rgba(0,0,0,.5)" }, count: { padding: "0 5px", height: "40px", lineHeight: "40px" }, legend: { padding: "0 5px", height: "40px", lineHeight: "42px" }, graph: { height: "40px" }, column: { width: 5, background: "#999", heatOn: "backgroundColor", opacity: 0.5 } })
})(window, FPSMeter);

View file

@ -0,0 +1,5 @@
/*! npm.im/iphone-inline-video */
var makeVideoPlayableInline = function () {
"use strict";/*! npm.im/intervalometer */
function e(e, n, r, i) { function t(r) { d = n(t, i), e(r - (a || r)), a = r } var d, a; return { start: function () { d || t(0) }, stop: function () { r(d), d = null, a = 0 } } } function n(n) { return e(n, requestAnimationFrame, cancelAnimationFrame) } function r(e, n, r, i) { function t(n) { Boolean(e[r]) === Boolean(i) && n.stopImmediatePropagation(), delete e[r] } return e.addEventListener(n, t, !1), t } function i(e, n, r, i) { function t() { return r[n] } function d(e) { r[n] = e } i && d(e[n]), Object.defineProperty(e, n, { get: t, set: d }) } function t(e, n, r) { r.addEventListener(n, function () { return e.dispatchEvent(new Event(n)) }) } function d(e, n) { Promise.resolve().then(function () { e.dispatchEvent(new Event(n)) }) } function a(e) { var n = new Audio; return t(e, "play", n), t(e, "playing", n), t(e, "pause", n), n.crossOrigin = e.crossOrigin, n.src = e.src || e.currentSrc || "data:", n } function o(e, n, r) { (m || 0) + 200 < Date.now() && (e[g] = !0, m = Date.now()), r || (e.currentTime = n), A[++k % 3] = 100 * n | 0 } function u(e) { return e.driver.currentTime >= e.video.duration } function s(e) { var n = this; n.video.readyState >= n.video.HAVE_FUTURE_DATA ? (n.hasAudio || (n.driver.currentTime = n.video.currentTime + e * n.video.playbackRate / 1e3, n.video.loop && u(n) && (n.driver.currentTime = 0)), o(n.video, n.driver.currentTime)) : n.video.networkState !== n.video.NETWORK_IDLE || n.video.buffered.length || n.video.load(), n.video.ended && (delete n.video[g], n.video.pause(!0)) } function c() { var e = this, n = e[b]; return e.webkitDisplayingFullscreen ? void e[E]() : ("data:" !== n.driver.src && n.driver.src !== e.src && (o(e, 0, !0), n.driver.src = e.src), void (e.paused && (n.paused = !1, e.buffered.length || e.load(), n.driver.play(), n.updater.start(), n.hasAudio || (d(e, "play"), n.video.readyState >= n.video.HAVE_ENOUGH_DATA && d(e, "playing"))))) } function v(e) { var n = this, r = n[b]; r.driver.pause(), r.updater.stop(), n.webkitDisplayingFullscreen && n[T](), r.paused && !e || (r.paused = !0, r.hasAudio || d(n, "pause"), n.ended && (n[g] = !0, d(n, "ended"))) } function p(e, r) { var i = e[b] = {}; i.paused = !0, i.hasAudio = r, i.video = e, i.updater = n(s.bind(i)), r ? i.driver = a(e) : (e.addEventListener("canplay", function () { e.paused || d(e, "playing") }), i.driver = { src: e.src || e.currentSrc || "data:", muted: !0, paused: !0, pause: function () { i.driver.paused = !0 }, play: function () { i.driver.paused = !1, u(i) && o(e, 0) }, get ended() { return u(i) } }), e.addEventListener("emptied", function () { var n = !i.driver.src || "data:" === i.driver.src; i.driver.src && i.driver.src !== e.src && (o(e, 0, !0), i.driver.src = e.src, n ? i.driver.play() : i.updater.stop()) }, !1), e.addEventListener("webkitbeginfullscreen", function () { e.paused ? r && !i.driver.buffered.length && i.driver.load() : (e.pause(), e[E]()) }), r && (e.addEventListener("webkitendfullscreen", function () { i.driver.currentTime = e.currentTime }), e.addEventListener("seeking", function () { A.indexOf(100 * e.currentTime | 0) < 0 && (i.driver.currentTime = e.currentTime) })) } function l(e) { var n = e[b]; e[E] = e.play, e[T] = e.pause, e.play = c, e.pause = v, i(e, "paused", n.driver), i(e, "muted", n.driver, !0), i(e, "playbackRate", n.driver, !0), i(e, "ended", n.driver), i(e, "loop", n.driver, !0), r(e, "seeking"), r(e, "seeked"), r(e, "timeupdate", g, !1), r(e, "ended", g, !1) } function f(e, n, r) { void 0 === n && (n = !0), void 0 === r && (r = !0), r && !h || e[b] || (p(e, n), l(e), e.classList.add("IIV"), !n && e.autoplay && e.play(), /iPhone|iPod|iPad/.test(navigator.platform) || console.warn("iphone-inline-video is not guaranteed to work in emulated environments")) } var m, y = "undefined" == typeof Symbol ? function (e) { return "@" + (e || "@") + Math.random() } : Symbol, h = "object-fit" in document.head.style && /iPhone|iPod/i.test(navigator.userAgent) && !matchMedia("(-webkit-video-playable-inline)").matches, b = y(), g = y(), E = y("nativeplay"), T = y("nativepause"), A = [], k = 0; return f.isWhitelisted = h, f
}();

1
www/js/libs/lz-string.js Normal file

File diff suppressed because one or more lines are too long

428
www/js/libs/pixi-picture.js Normal file
View file

@ -0,0 +1,428 @@
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
var shaderLib = [
{
vertUniforms: "",
vertCode: "vTextureCoord = aTextureCoord;",
fragUniforms: "uniform vec4 uTextureClamp;",
fragCode: "vec2 textureCoord = clamp(vTextureCoord, uTextureClamp.xy, uTextureClamp.zw);"
},
{
vertUniforms: "uniform mat3 uTransform;",
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
fragUniforms: "",
fragCode: "vec2 textureCoord = vTextureCoord;"
},
{
vertUniforms: "uniform mat3 uTransform;",
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
fragUniforms: "uniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;",
fragCode: "vec2 textureCoord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;" +
"\ntextureCoord = (uMapCoord * vec3(textureCoord, 1.0)).xy;" +
"\ntextureCoord = clamp(textureCoord, uClampFrame.xy, uClampFrame.zw);"
}
];
var PictureShader = (function (_super) {
__extends(PictureShader, _super);
function PictureShader(gl, vert, frag, tilingMode) {
var lib = shaderLib[tilingMode];
_super.call(this, gl, vert.replace(/%SPRITE_UNIFORMS%/gi, lib.vertUniforms)
.replace(/%SPRITE_CODE%/gi, lib.vertCode), frag.replace(/%SPRITE_UNIFORMS%/gi, lib.fragUniforms)
.replace(/%SPRITE_CODE%/gi, lib.fragCode));
this.bind();
this.tilingMode = tilingMode;
this.tempQuad = new PIXI.Quad(gl);
this.tempQuad.initVao(this);
this.uniforms.uColor = new Float32Array([1, 1, 1, 1]);
this.uniforms.uSampler = [0, 1];
}
PictureShader.blendVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\nuniform mat3 mapMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n vMapCoord = (mapMatrix * vec3(aVertexPosition, 1.0)).xy;\n}\n";
return PictureShader;
}(PIXI.Shader));
extras.PictureShader = PictureShader;
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
var overlayFrag = "\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cs2 = Cs * 2.0 - 1.0;\n vec3 screen = Cb + Cs2 - Cb * Cs2;\n vec3 B;\n if (Cb.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cb.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cb.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
var HardLightShader = (function (_super) {
__extends(HardLightShader, _super);
function HardLightShader(gl, tilingMode) {
_super.call(this, gl, extras.PictureShader.blendVert, overlayFrag, tilingMode);
}
return HardLightShader;
}(extras.PictureShader));
extras.HardLightShader = HardLightShader;
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
function mapFilterBlendModesToPixi(gl, array) {
if (array === void 0) { array = []; }
array[PIXI.BLEND_MODES.OVERLAY] = [new extras.OverlayShader(gl, 0), new extras.OverlayShader(gl, 1), new extras.OverlayShader(gl, 2)];
array[PIXI.BLEND_MODES.HARD_LIGHT] = [new extras.HardLightShader(gl, 0), new extras.HardLightShader(gl, 1), new extras.HardLightShader(gl, 2)];
return array;
}
extras.mapFilterBlendModesToPixi = mapFilterBlendModesToPixi;
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
var normalFrag = "\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n\n vec4 sample = texture2D(uSampler[0], textureCoord);\n gl_FragColor = sample * uColor;\n}\n";
var normalVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n}\n";
var NormalShader = (function (_super) {
__extends(NormalShader, _super);
function NormalShader(gl, tilingMode) {
_super.call(this, gl, normalVert, normalFrag, tilingMode);
}
return NormalShader;
}(extras.PictureShader));
extras.NormalShader = NormalShader;
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
var overlayFrag = "\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cb2 = Cb * 2.0 - 1.0;\n vec3 screen = Cb2 + Cs - Cb2 * Cs;\n vec3 B;\n if (Cs.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cs.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cs.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
var OverlayShader = (function (_super) {
__extends(OverlayShader, _super);
function OverlayShader(gl, tilingMode) {
_super.call(this, gl, extras.PictureShader.blendVert, overlayFrag, tilingMode);
}
return OverlayShader;
}(extras.PictureShader));
extras.OverlayShader = OverlayShader;
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
function nextPow2(v) {
v += (v === 0) ? 1 : 0;
--v;
v |= v >>> 1;
v |= v >>> 2;
v |= v >>> 4;
v |= v >>> 8;
v |= v >>> 16;
return v + 1;
}
var PictureRenderer = (function (_super) {
__extends(PictureRenderer, _super);
function PictureRenderer(renderer) {
_super.call(this, renderer);
}
PictureRenderer.prototype.onContextChange = function () {
var gl = this.renderer.gl;
this.drawModes = extras.mapFilterBlendModesToPixi(gl);
this.normalShader = [new extras.NormalShader(gl, 0), new extras.NormalShader(gl, 1), new extras.NormalShader(gl, 2)];
this._tempClamp = new Float32Array(4);
this._tempColor = new Float32Array(4);
this._tempRect = new PIXI.Rectangle();
this._tempRect2 = new PIXI.Rectangle();
this._tempRect3 = new PIXI.Rectangle();
this._tempMatrix = new PIXI.Matrix();
this._tempMatrix2 = new PIXI.Matrix();
this._bigBuf = new Uint8Array(1 << 20);
this._renderTexture = new PIXI.BaseRenderTexture(1024, 1024);
};
PictureRenderer.prototype.start = function () {
};
PictureRenderer.prototype.flush = function () {
};
PictureRenderer.prototype._getRenderTexture = function (minWidth, minHeight) {
if (this._renderTexture.width < minWidth ||
this._renderTexture.height < minHeight) {
minHeight = nextPow2(minWidth);
minHeight = nextPow2(minHeight);
this._renderTexture.resize(minWidth, minHeight);
}
return this._renderTexture;
};
PictureRenderer.prototype._getBuf = function (size) {
var buf = this._bigBuf;
if (buf.length < size) {
size = nextPow2(size);
buf = new Uint8Array(size);
this._bigBuf = buf;
}
return buf;
};
PictureRenderer.prototype.render = function (sprite) {
if (!sprite.texture.valid) {
return;
}
var tilingMode = 0;
if (sprite.tileTransform) {
tilingMode = this._isSimpleSprite(sprite) ? 1 : 2;
}
var blendShader = this.drawModes[sprite.blendMode];
if (blendShader) {
this._renderBlend(sprite, blendShader[tilingMode]);
}
else {
this._renderNormal(sprite, this.normalShader[tilingMode]);
}
};
PictureRenderer.prototype._renderNormal = function (sprite, shader) {
var renderer = this.renderer;
renderer.bindShader(shader);
renderer.state.setBlendMode(sprite.blendMode);
this._renderInner(sprite, shader);
};
PictureRenderer.prototype._renderBlend = function (sprite, shader) {
var renderer = this.renderer;
var spriteBounds = sprite.getBounds();
var renderTarget = renderer._activeRenderTarget;
var matrix = renderTarget.projectionMatrix;
var flipX = matrix.a < 0;
var flipY = matrix.d < 0;
var resolution = renderTarget.resolution;
var screen = this._tempRect;
var fr = renderTarget.sourceFrame || renderTarget.destinationFrame;
screen.x = 0;
screen.y = 0;
screen.width = fr.width;
screen.height = fr.height;
var bounds = this._tempRect2;
var fbw = fr.width * resolution, fbh = fr.height * resolution;
bounds.x = (spriteBounds.x + matrix.tx / matrix.a) * resolution + fbw / 2;
bounds.y = (spriteBounds.y + matrix.ty / matrix.d) * resolution + fbh / 2;
bounds.width = spriteBounds.width * resolution;
bounds.height = spriteBounds.height * resolution;
if (flipX) {
bounds.y = fbw - bounds.width - bounds.x;
}
if (flipY) {
bounds.y = fbh - bounds.height - bounds.y;
}
var screenBounds = this._tempRect3;
var x_1 = Math.floor(Math.max(screen.x, bounds.x));
var x_2 = Math.ceil(Math.min(screen.x + screen.width, bounds.x + bounds.width));
var y_1 = Math.floor(Math.max(screen.y, bounds.y));
var y_2 = Math.ceil(Math.min(screen.y + screen.height, bounds.y + bounds.height));
var pixelsWidth = x_2 - x_1;
var pixelsHeight = y_2 - y_1;
if (pixelsWidth <= 0 || pixelsHeight <= 0) {
return;
}
var rt = this._getRenderTexture(pixelsWidth, pixelsHeight);
renderer.bindTexture(rt, 1, true);
var gl = renderer.gl;
if (renderer.renderingToScreen && renderTarget.root) {
var buf = this._getBuf(pixelsWidth * pixelsHeight * 4);
gl.readPixels(x_1, y_1, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);
}
else {
gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, x_1, y_1, pixelsWidth, pixelsHeight);
}
renderer.bindShader(shader);
renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
if (shader.uniforms.mapMatrix) {
var mapMatrix = this._tempMatrix;
mapMatrix.a = bounds.width / rt.width / spriteBounds.width;
if (flipX) {
mapMatrix.a = -mapMatrix.a;
mapMatrix.tx = (bounds.x - x_1) / rt.width - (spriteBounds.x + spriteBounds.width) * mapMatrix.a;
}
else {
mapMatrix.tx = (bounds.x - x_1) / rt.width - spriteBounds.x * mapMatrix.a;
}
mapMatrix.d = bounds.height / rt.height / spriteBounds.height;
if (flipY) {
mapMatrix.d = -mapMatrix.d;
mapMatrix.ty = (bounds.y - y_1) / rt.height - (spriteBounds.y + spriteBounds.height) * mapMatrix.d;
}
else {
mapMatrix.ty = (bounds.y - y_1) / rt.height - spriteBounds.y * mapMatrix.d;
}
shader.uniforms.mapMatrix = mapMatrix.toArray(true);
}
this._renderInner(sprite, shader);
};
PictureRenderer.prototype._renderInner = function (sprite, shader) {
var renderer = this.renderer;
if (shader.tilingMode > 0) {
this._renderWithShader(sprite, shader.tilingMode === 1, shader);
}
else {
this._renderSprite(sprite, shader);
}
};
PictureRenderer.prototype._renderWithShader = function (ts, isSimple, shader) {
var quad = shader.tempQuad;
var renderer = this.renderer;
renderer.bindVao(quad.vao);
var vertices = quad.vertices;
var _width = ts._width;
var _height = ts._height;
var _anchorX = ts._anchor._x;
var _anchorY = ts._anchor._y;
var w0 = _width * (1 - _anchorX);
var w1 = _width * -_anchorX;
var h0 = _height * (1 - _anchorY);
var h1 = _height * -_anchorY;
var wt = ts.transform.worldTransform;
var a = wt.a;
var b = wt.b;
var c = wt.c;
var d = wt.d;
var tx = wt.tx;
var ty = wt.ty;
vertices[0] = (a * w1) + (c * h1) + tx;
vertices[1] = (d * h1) + (b * w1) + ty;
vertices[2] = (a * w0) + (c * h1) + tx;
vertices[3] = (d * h1) + (b * w0) + ty;
vertices[4] = (a * w0) + (c * h0) + tx;
vertices[5] = (d * h0) + (b * w0) + ty;
vertices[6] = (a * w1) + (c * h0) + tx;
vertices[7] = (d * h0) + (b * w1) + ty;
vertices = quad.uvs;
vertices[0] = vertices[6] = -ts.anchor.x;
vertices[1] = vertices[3] = -ts.anchor.y;
vertices[2] = vertices[4] = 1.0 - ts.anchor.x;
vertices[5] = vertices[7] = 1.0 - ts.anchor.y;
quad.upload();
var tex = ts._texture;
var lt = ts.tileTransform.localTransform;
var uv = ts.uvTransform;
var mapCoord = uv.mapCoord;
var uClampFrame = uv.uClampFrame;
var uClampOffset = uv.uClampOffset;
var w = tex.width;
var h = tex.height;
var W = _width;
var H = _height;
var tempMat = this._tempMatrix2;
tempMat.set(lt.a * w / W, lt.b * w / H, lt.c * h / W, lt.d * h / H, lt.tx / W, lt.ty / H);
tempMat.invert();
if (isSimple) {
tempMat.append(mapCoord);
}
else {
shader.uniforms.uMapCoord = mapCoord.toArray(true);
shader.uniforms.uClampFrame = uClampFrame;
shader.uniforms.uClampOffset = uClampOffset;
}
shader.uniforms.uTransform = tempMat.toArray(true);
var color = this._tempColor;
var alpha = ts.worldAlpha;
PIXI.utils.hex2rgb(ts.tint, color);
color[0] *= alpha;
color[1] *= alpha;
color[2] *= alpha;
color[3] = alpha;
shader.uniforms.uColor = color;
renderer.bindTexture(tex, 0, true);
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
};
PictureRenderer.prototype._renderSprite = function (sprite, shader) {
var renderer = this.renderer;
var quad = shader.tempQuad;
renderer.bindVao(quad.vao);
var uvs = sprite.texture._uvs;
var vertices = quad.vertices;
var vd = sprite.vertexData;
for (var i = 0; i < 8; i++) {
quad.vertices[i] = vd[i];
}
quad.uvs[0] = uvs.x0;
quad.uvs[1] = uvs.y0;
quad.uvs[2] = uvs.x1;
quad.uvs[3] = uvs.y1;
quad.uvs[4] = uvs.x2;
quad.uvs[5] = uvs.y2;
quad.uvs[6] = uvs.x3;
quad.uvs[7] = uvs.y3;
quad.upload();
var frame = sprite.texture.frame;
var base = sprite.texture.baseTexture;
var clamp = this._tempClamp;
var eps = 0.5 / base.resolution;
clamp[0] = (frame.x + eps) / base.width;
clamp[1] = (frame.y + eps) / base.height;
clamp[2] = (frame.x + frame.width - eps) / base.width;
clamp[3] = (frame.y + frame.height - eps) / base.height;
shader.uniforms.uTextureClamp = clamp;
var color = this._tempColor;
PIXI.utils.hex2rgb(sprite.tint, color);
var alpha = sprite.worldAlpha;
color[0] *= alpha;
color[1] *= alpha;
color[2] *= alpha;
color[3] = alpha;
shader.uniforms.uColor = color;
renderer.bindTexture(base, 0, true);
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
};
PictureRenderer.prototype._isSimpleSprite = function (ts) {
var renderer = this.renderer;
var tex = ts._texture;
var baseTex = tex.baseTexture;
var isSimple = baseTex.isPowerOfTwo && tex.frame.width === baseTex.width && tex.frame.height === baseTex.height;
if (isSimple) {
if (!baseTex._glTextures[renderer.CONTEXT_UID]) {
if (baseTex.wrapMode === PIXI.WRAP_MODES.CLAMP) {
baseTex.wrapMode = PIXI.WRAP_MODES.REPEAT;
}
}
else {
isSimple = baseTex.wrapMode !== PIXI.WRAP_MODES.CLAMP;
}
}
return isSimple;
};
return PictureRenderer;
}(PIXI.ObjectRenderer));
extras.PictureRenderer = PictureRenderer;
PIXI.WebGLRenderer.registerPlugin('picture', PictureRenderer);
PIXI.CanvasRenderer.registerPlugin('picture', PIXI.CanvasSpriteRenderer);
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
var PictureSprite = (function (_super) {
__extends(PictureSprite, _super);
function PictureSprite(texture) {
_super.call(this, texture);
this.pluginName = 'picture';
}
return PictureSprite;
}(PIXI.Sprite));
extras.PictureSprite = PictureSprite;
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var extras;
(function (extras) {
var PictureTilingSprite = (function (_super) {
__extends(PictureTilingSprite, _super);
function PictureTilingSprite(texture) {
_super.call(this, texture);
this.pluginName = 'picture';
}
return PictureTilingSprite;
}(extras.TilingSprite));
extras.PictureTilingSprite = PictureTilingSprite;
})(extras = PIXI.extras || (PIXI.extras = {}));
})(PIXI || (PIXI = {}));
//# sourceMappingURL=pixi-picture.js.map

887
www/js/libs/pixi-tilemap.js Normal file
View file

@ -0,0 +1,887 @@
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var CanvasTileRenderer = (function () {
function CanvasTileRenderer(renderer) {
this.tileAnim = [0, 0];
this.dontUseTransform = false;
this.renderer = renderer;
this.tileAnim = [0, 0];
}
return CanvasTileRenderer;
}());
tilemap.CanvasTileRenderer = CanvasTileRenderer;
PIXI.CanvasRenderer.registerPlugin('tilemap', CanvasTileRenderer);
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var CompositeRectTileLayer = (function (_super) {
__extends(CompositeRectTileLayer, _super);
function CompositeRectTileLayer(zIndex, bitmaps, useSquare, texPerChild) {
var _this = _super.call(this) || this;
_this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
_this.modificationMarker = 0;
_this._globalMat = null;
_this._tempScale = null;
_this.initialize.apply(_this, arguments);
return _this;
}
CompositeRectTileLayer.prototype.updateTransform = function () {
_super.prototype.displayObjectUpdateTransform.call(this);
};
CompositeRectTileLayer.prototype.initialize = function (zIndex, bitmaps, useSquare, texPerChild) {
this.z = this.zIndex = zIndex;
this.useSquare = useSquare;
this.texPerChild = texPerChild || 16;
if (bitmaps) {
this.setBitmaps(bitmaps);
}
};
CompositeRectTileLayer.prototype.setBitmaps = function (bitmaps) {
var texPerChild = this.texPerChild;
var len1 = this.children.length;
var len2 = Math.ceil(bitmaps.length / texPerChild);
var i;
for (i = 0; i < len1; i++) {
this.children[i].textures = bitmaps.slice(i * texPerChild, (i + 1) * texPerChild);
}
for (i = len1; i < len2; i++) {
this.addChild(new tilemap.RectTileLayer(this.zIndex, bitmaps.slice(i * texPerChild, (i + 1) * texPerChild)));
}
};
CompositeRectTileLayer.prototype.clear = function () {
for (var i = 0; i < this.children.length; i++)
this.children[i].clear();
this.modificationMarker = 0;
};
CompositeRectTileLayer.prototype.addRect = function (num, u, v, x, y, tileWidth, tileHeight) {
if (this.children[num] && this.children[num].textures)
this.children[num].addRect(0, u, v, x, y, tileWidth, tileHeight);
};
CompositeRectTileLayer.prototype.addFrame = function (texture_, x, y, animX, animY) {
var texture;
var layer = null, ind = 0;
var children = this.children;
if (typeof texture_ === "number") {
var childIndex = texture_ / this.texPerChild >> 0;
layer = children[childIndex];
if (!layer) {
layer = children[0];
if (!layer) {
return false;
}
ind = 0;
}
else {
ind = texture_ % this.texPerChild;
}
texture = layer.textures[ind];
}
else if (typeof texture_ === "string") {
texture = PIXI.Texture.fromImage(texture_);
}
else {
texture = texture_;
for (var i = 0; i < children.length; i++) {
var child = children[i];
var tex = child.textures;
for (var j = 0; j < tex.length; j++) {
if (tex[j].baseTexture == texture.baseTexture) {
layer = child;
ind = j;
break;
}
}
if (layer) {
break;
}
}
if (!layer) {
for (i = 0; i < children.length; i++) {
var child = children[i];
if (child.textures.length < this.texPerChild) {
layer = child;
ind = child.textures.length;
child.textures.push(texture);
break;
}
}
if (!layer) {
children.push(layer = new tilemap.RectTileLayer(this.zIndex, texture));
ind = 0;
}
}
}
layer.addRect(ind, texture.frame.x, texture.frame.y, x, y, texture.frame.width, texture.frame.height, animX, animY);
return true;
};
;
CompositeRectTileLayer.prototype.renderCanvas = function (renderer) {
if (!renderer.plugins.tilemap.dontUseTransform) {
var wt = this.worldTransform;
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
}
var layers = this.children;
for (var i = 0; i < layers.length; i++)
layers[i].renderCanvas(renderer);
};
;
CompositeRectTileLayer.prototype.renderWebGL = function (renderer) {
var gl = renderer.gl;
var shader = renderer.plugins.tilemap.getShader(this.useSquare);
renderer.setObjectRenderer(renderer.plugins.tilemap);
renderer.bindShader(shader);
this._globalMat = this._globalMat || new PIXI.Matrix();
renderer._activeRenderTarget.projectionMatrix.copy(this._globalMat).append(this.worldTransform);
shader.uniforms.projectionMatrix = this._globalMat.toArray(true);
shader.uniforms.shadowColor = this.shadowColor;
if (this.useSquare) {
var tempScale = this._tempScale = (this._tempScale || [0, 0]);
tempScale[0] = this._globalMat.a >= 0 ? 1 : -1;
tempScale[1] = this._globalMat.d < 0 ? 1 : -1;
var ps = shader.uniforms.pointScale = tempScale;
shader.uniforms.projectionScale = Math.abs(this.worldTransform.a) * renderer.resolution;
}
var af = shader.uniforms.animationFrame = renderer.plugins.tilemap.tileAnim;
var layers = this.children;
for (var i = 0; i < layers.length; i++)
layers[i].renderWebGL(renderer, this.useSquare);
};
CompositeRectTileLayer.prototype.isModified = function (anim) {
var layers = this.children;
if (this.modificationMarker != layers.length) {
return true;
}
for (var i = 0; i < layers.length; i++) {
var layer = layers[i];
if (layer.modificationMarker != layer.pointsBuf.length ||
anim && layer.hasAnim) {
return true;
}
}
return false;
};
CompositeRectTileLayer.prototype.clearModify = function () {
var layers = this.children;
this.modificationMarker = layers.length;
for (var i = 0; i < layers.length; i++) {
var layer = layers[i];
layer.modificationMarker = layer.pointsBuf.length;
}
};
return CompositeRectTileLayer;
}(PIXI.Container));
tilemap.CompositeRectTileLayer = CompositeRectTileLayer;
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var GraphicsLayer = (function (_super) {
__extends(GraphicsLayer, _super);
function GraphicsLayer(zIndex) {
var _this = _super.call(this) || this;
_this.z = _this.zIndex = zIndex;
return _this;
}
GraphicsLayer.prototype.renderCanvas = function (renderer) {
var wt = null;
if (renderer.plugins.tilemap.dontUseTransform) {
wt = this.transform.worldTransform;
this.transform.worldTransform = PIXI.Matrix.IDENTITY;
}
renderer.plugins.graphics.render(this);
if (renderer.plugins.tilemap.dontUseTransform) {
this.transform.worldTransform = wt;
}
renderer.context.globalAlpha = 1.0;
};
GraphicsLayer.prototype.renderWebGL = function (renderer) {
if (!this._webGL[renderer.CONTEXT_UID])
this.dirty = true;
_super.prototype.renderWebGL.call(this, renderer);
};
GraphicsLayer.prototype.isModified = function (anim) {
return false;
};
GraphicsLayer.prototype.clearModify = function () {
};
return GraphicsLayer;
}(PIXI.Graphics));
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var RectTileLayer = (function (_super) {
__extends(RectTileLayer, _super);
function RectTileLayer(zIndex, texture) {
var _this = _super.call(this) || this;
_this.z = 0;
_this.zIndex = 0;
_this.pointsBuf = [];
_this._tempSize = new Float32Array([0, 0]);
_this._tempTexSize = 1;
_this.modificationMarker = 0;
_this.hasAnim = false;
_this.vbId = 0;
_this.vbBuffer = null;
_this.vbArray = null;
_this.vbInts = null;
_this.initialize(zIndex, texture);
return _this;
}
RectTileLayer.prototype.initialize = function (zIndex, textures) {
if (!textures) {
textures = [];
}
else if (!(textures instanceof Array) && textures.baseTexture) {
textures = [textures];
}
this.textures = textures;
this.z = this.zIndex = zIndex;
this.visible = false;
};
RectTileLayer.prototype.clear = function () {
this.pointsBuf.length = 0;
this.modificationMarker = 0;
this.hasAnim = false;
};
RectTileLayer.prototype.renderCanvas = function (renderer) {
if (this.textures.length === 0)
return;
var points = this.pointsBuf;
renderer.context.fillStyle = '#000000';
for (var i = 0, n = points.length; i < n; i += 9) {
var x1 = points[i], y1 = points[i + 1];
var x2 = points[i + 2], y2 = points[i + 3];
var w = points[i + 4];
var h = points[i + 5];
x1 += points[i + 6] * renderer.plugins.tilemap.tileAnim[0];
y1 += points[i + 7] * renderer.plugins.tilemap.tileAnim[1];
var textureId = points[i + 8];
if (textureId >= 0) {
renderer.context.drawImage(this.textures[textureId].baseTexture.source, x1, y1, w, h, x2, y2, w, h);
}
else {
renderer.context.globalAlpha = 0.5;
renderer.context.fillRect(x2, y2, w, h);
renderer.context.globalAlpha = 1;
}
}
};
RectTileLayer.prototype.addRect = function (textureId, u, v, x, y, tileWidth, tileHeight, animX, animY) {
if (animX === void 0) { animX = 0; }
if (animY === void 0) { animY = 0; }
var pb = this.pointsBuf;
this.hasAnim = this.hasAnim || animX > 0 || animY > 0;
if (tileWidth == tileHeight) {
pb.push(u);
pb.push(v);
pb.push(x);
pb.push(y);
pb.push(tileWidth);
pb.push(tileHeight);
pb.push(animX | 0);
pb.push(animY | 0);
pb.push(textureId);
}
else {
var i;
if (tileWidth % tileHeight === 0) {
for (i = 0; i < tileWidth / tileHeight; i++) {
pb.push(u + i * tileHeight);
pb.push(v);
pb.push(x + i * tileHeight);
pb.push(y);
pb.push(tileHeight);
pb.push(tileHeight);
pb.push(animX | 0);
pb.push(animY | 0);
pb.push(textureId);
}
}
else if (tileHeight % tileWidth === 0) {
for (i = 0; i < tileHeight / tileWidth; i++) {
pb.push(u);
pb.push(v + i * tileWidth);
pb.push(x);
pb.push(y + i * tileWidth);
pb.push(tileWidth);
pb.push(tileWidth);
pb.push(animX | 0);
pb.push(animY | 0);
pb.push(textureId);
}
}
else {
pb.push(u);
pb.push(v);
pb.push(x);
pb.push(y);
pb.push(tileWidth);
pb.push(tileHeight);
pb.push(animX | 0);
pb.push(animY | 0);
pb.push(textureId);
}
}
};
;
RectTileLayer.prototype.renderWebGL = function (renderer, useSquare) {
if (useSquare === void 0) { useSquare = false; }
var points = this.pointsBuf;
if (points.length === 0)
return;
var rectsCount = points.length / 9;
var tile = renderer.plugins.tilemap;
var gl = renderer.gl;
if (!useSquare) {
tile.checkIndexBuffer(rectsCount);
}
var shader = tile.getShader(useSquare);
var textures = this.textures;
if (textures.length === 0)
return;
var len = textures.length;
if (this._tempTexSize < shader.maxTextures) {
this._tempTexSize = shader.maxTextures;
this._tempSize = new Float32Array(2 * shader.maxTextures);
}
for (var i = 0; i < len; i++) {
if (!textures[i] || !textures[i].valid)
return;
var texture = textures[i].baseTexture;
}
tile.bindTextures(renderer, shader, textures);
var vb = tile.getVb(this.vbId);
if (!vb) {
vb = tile.createVb(useSquare);
this.vbId = vb.id;
this.vbBuffer = null;
this.modificationMarker = 0;
}
var vao = vb.vao;
renderer.bindVao(vao);
var vertexBuf = vb.vb;
vertexBuf.bind();
var vertices = rectsCount * shader.vertPerQuad;
if (vertices === 0)
return;
if (this.modificationMarker != vertices) {
this.modificationMarker = vertices;
var vs = shader.stride * vertices;
if (!this.vbBuffer || this.vbBuffer.byteLength < vs) {
var bk = shader.stride;
while (bk < vs) {
bk *= 2;
}
this.vbBuffer = new ArrayBuffer(bk);
this.vbArray = new Float32Array(this.vbBuffer);
this.vbInts = new Uint32Array(this.vbBuffer);
vertexBuf.upload(this.vbBuffer, 0, true);
}
var arr = this.vbArray, ints = this.vbInts;
var sz = 0;
var textureId, shiftU, shiftV;
if (useSquare) {
for (i = 0; i < points.length; i += 9) {
textureId = (points[i + 8] >> 2);
shiftU = 1024 * (points[i + 8] & 1);
shiftV = 1024 * ((points[i + 8] >> 1) & 1);
arr[sz++] = points[i + 2];
arr[sz++] = points[i + 3];
arr[sz++] = points[i + 0] + shiftU;
arr[sz++] = points[i + 1] + shiftV;
arr[sz++] = points[i + 4];
arr[sz++] = points[i + 6];
arr[sz++] = points[i + 7];
arr[sz++] = textureId;
}
}
else {
var tint = -1;
for (i = 0; i < points.length; i += 9) {
var eps = 0.5;
textureId = (points[i + 8] >> 2);
shiftU = 1024 * (points[i + 8] & 1);
shiftV = 1024 * ((points[i + 8] >> 1) & 1);
var x = points[i + 2], y = points[i + 3];
var w = points[i + 4], h = points[i + 5];
var u = points[i] + shiftU, v = points[i + 1] + shiftV;
var animX = points[i + 6], animY = points[i + 7];
arr[sz++] = x;
arr[sz++] = y;
arr[sz++] = u;
arr[sz++] = v;
arr[sz++] = u + eps;
arr[sz++] = v + eps;
arr[sz++] = u + w - eps;
arr[sz++] = v + h - eps;
arr[sz++] = animX;
arr[sz++] = animY;
arr[sz++] = textureId;
arr[sz++] = x + w;
arr[sz++] = y;
arr[sz++] = u + w;
arr[sz++] = v;
arr[sz++] = u + eps;
arr[sz++] = v + eps;
arr[sz++] = u + w - eps;
arr[sz++] = v + h - eps;
arr[sz++] = animX;
arr[sz++] = animY;
arr[sz++] = textureId;
arr[sz++] = x + w;
arr[sz++] = y + h;
arr[sz++] = u + w;
arr[sz++] = v + h;
arr[sz++] = u + eps;
arr[sz++] = v + eps;
arr[sz++] = u + w - eps;
arr[sz++] = v + h - eps;
arr[sz++] = animX;
arr[sz++] = animY;
arr[sz++] = textureId;
arr[sz++] = x;
arr[sz++] = y + h;
arr[sz++] = u;
arr[sz++] = v + h;
arr[sz++] = u + eps;
arr[sz++] = v + eps;
arr[sz++] = u + w - eps;
arr[sz++] = v + h - eps;
arr[sz++] = animX;
arr[sz++] = animY;
arr[sz++] = textureId;
}
}
vertexBuf.upload(arr, 0, true);
}
if (useSquare)
gl.drawArrays(gl.POINTS, 0, vertices);
else
gl.drawElements(gl.TRIANGLES, rectsCount * 6, gl.UNSIGNED_SHORT, 0);
};
return RectTileLayer;
}(PIXI.Container));
tilemap.RectTileLayer = RectTileLayer;
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var rectShaderFrag = "varying vec2 vTextureCoord;\nvarying vec4 vFrame;\nvarying float vTextureId;\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\n\nvoid main(void){\n vec2 textureCoord = clamp(vTextureCoord, vFrame.xy, vFrame.zw);\n float textureId = floor(vTextureId + 0.5);\n\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}";
var rectShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aFrame;\nattribute vec2 aAnim;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform vec2 animationFrame;\n\nvarying vec2 vTextureCoord;\nvarying float vTextureId;\nvarying vec4 vFrame;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vec2 anim = aAnim * animationFrame;\n vTextureCoord = aTextureCoord + anim;\n vFrame = aFrame + vec4(anim, anim);\n vTextureId = aTextureId;\n}\n";
var TilemapShader = (function (_super) {
__extends(TilemapShader, _super);
function TilemapShader(gl, maxTextures, shaderVert, shaderFrag) {
var _this = _super.call(this, gl, shaderVert, shaderFrag) || this;
_this.maxTextures = 0;
_this.maxTextures = maxTextures;
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
return _this;
}
return TilemapShader;
}(PIXI.Shader));
tilemap.TilemapShader = TilemapShader;
var RectTileShader = (function (_super) {
__extends(RectTileShader, _super);
function RectTileShader(gl, maxTextures) {
var _this = _super.call(this, gl, maxTextures, rectShaderVert, tilemap.shaderGenerator.generateFragmentSrc(maxTextures, rectShaderFrag)) || this;
_this.vertSize = 11;
_this.vertPerQuad = 4;
_this.stride = _this.vertSize * 4;
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
return _this;
}
RectTileShader.prototype.createVao = function (renderer, vb) {
var gl = renderer.gl;
return renderer.createVao()
.addIndex(this.indexBuffer)
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
.addAttribute(vb, this.attributes.aFrame, gl.FLOAT, false, this.stride, 4 * 4)
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 8 * 4)
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 10 * 4);
};
return RectTileShader;
}(TilemapShader));
tilemap.RectTileShader = RectTileShader;
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var shaderGenerator;
(function (shaderGenerator) {
function fillSamplers(shader, maxTextures) {
var sampleValues = [];
for (var i = 0; i < maxTextures; i++) {
sampleValues[i] = i;
}
shader.bind();
shader.uniforms.uSamplers = sampleValues;
var samplerSize = [];
for (i = 0; i < maxTextures; i++) {
samplerSize.push(1.0 / 2048);
samplerSize.push(1.0 / 2048);
}
shader.uniforms.uSamplerSize = samplerSize;
}
shaderGenerator.fillSamplers = fillSamplers;
function generateFragmentSrc(maxTextures, fragmentSrc) {
return fragmentSrc.replace(/%count%/gi, maxTextures + "")
.replace(/%forloop%/gi, this.generateSampleSrc(maxTextures));
}
shaderGenerator.generateFragmentSrc = generateFragmentSrc;
function generateSampleSrc(maxTextures) {
var src = '';
src += '\n';
src += '\n';
src += 'if(vTextureId <= -1.0) {';
src += '\n\tcolor = shadowColor;';
src += '\n}';
for (var i = 0; i < maxTextures; i++) {
src += '\nelse ';
if (i < maxTextures - 1) {
src += 'if(textureId == ' + i + '.0)';
}
src += '\n{';
src += '\n\tcolor = texture2D(uSamplers[' + i + '], textureCoord * uSamplerSize[' + i + ']);';
src += '\n}';
}
src += '\n';
src += '\n';
return src;
}
shaderGenerator.generateSampleSrc = generateSampleSrc;
})(shaderGenerator = tilemap.shaderGenerator || (tilemap.shaderGenerator = {}));
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var squareShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec2 aAnim;\nattribute float aTextureId;\nattribute float aSize;\n\nuniform mat3 projectionMatrix;\nuniform vec2 samplerSize;\nuniform vec2 animationFrame;\nuniform float projectionScale;\n\nvarying vec2 vTextureCoord;\nvarying float vSize;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition + aSize * 0.5, 1.0)).xy, 0.0, 1.0);\n gl_PointSize = aSize * projectionScale;\n vTextureCoord = aTextureCoord + aAnim * animationFrame;\n vTextureId = aTextureId;\n vSize = aSize;\n}\n";
var squareShaderFrag = "\nvarying vec2 vTextureCoord;\nvarying float vSize;\nvarying float vTextureId;\n\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\nuniform vec2 pointScale;\n\nvoid main(void){\n float margin = 0.5 / vSize;\n vec2 pointCoord = (gl_PointCoord - 0.5) * pointScale + 0.5;\n vec2 clamped = vec2(clamp(pointCoord.x, margin, 1.0 - margin), clamp(pointCoord.y, margin, 1.0 - margin));\n vec2 textureCoord = pointCoord * vSize + vTextureCoord;\n float textureId = vTextureId;\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}\n\n";
var SquareTileShader = (function (_super) {
__extends(SquareTileShader, _super);
function SquareTileShader(gl, maxTextures) {
var _this = _super.call(this, gl, maxTextures, squareShaderVert, tilemap.shaderGenerator.generateFragmentSrc(maxTextures, squareShaderFrag)) || this;
_this.vertSize = 8;
_this.vertPerQuad = 1;
_this.stride = _this.vertSize * 4;
_this.maxTextures = maxTextures;
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
return _this;
}
SquareTileShader.prototype.createVao = function (renderer, vb) {
var gl = renderer.gl;
return renderer.createVao()
.addIndex(this.indexBuffer)
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
.addAttribute(vb, this.attributes.aSize, gl.FLOAT, false, this.stride, 4 * 4)
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 5 * 4)
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 7 * 4);
};
;
return SquareTileShader;
}(tilemap.TilemapShader));
tilemap.SquareTileShader = SquareTileShader;
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap) {
var glCore = PIXI.glCore;
function _hackSubImage(tex, sprite, clearBuffer, clearWidth, clearHeight) {
var gl = tex.gl;
var baseTex = sprite.texture.baseTexture;
if (clearBuffer && clearWidth > 0 && clearHeight > 0) {
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, clearWidth, clearHeight, tex.format, tex.type, clearBuffer);
}
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, tex.format, tex.type, baseTex.source);
}
var TileRenderer = (function (_super) {
__extends(TileRenderer, _super);
function TileRenderer(renderer) {
var _this = _super.call(this, renderer) || this;
_this.vbs = {};
_this.indices = new Uint16Array(0);
_this.lastTimeCheck = 0;
_this.tileAnim = [0, 0];
_this.maxTextures = 4;
_this.texLoc = [];
return _this;
}
TileRenderer.prototype.onContextChange = function () {
var gl = this.renderer.gl;
var maxTextures = this.maxTextures;
this.rectShader = new tilemap.RectTileShader(gl, maxTextures);
this.squareShader = new tilemap.SquareTileShader(gl, maxTextures);
this.checkIndexBuffer(2000);
this.rectShader.indexBuffer = this.indexBuffer;
this.squareShader.indexBuffer = this.indexBuffer;
this.vbs = {};
this.glTextures = [];
this.boundSprites = [];
this.initBounds();
};
TileRenderer.prototype.initBounds = function () {
var gl = this.renderer.gl;
var tempCanvas = document.createElement('canvas');
tempCanvas.width = 2048;
tempCanvas.height = 2048;
for (var i = 0; i < this.maxTextures; i++) {
var rt = PIXI.RenderTexture.create(2048, 2048);
rt.baseTexture.premultipliedAlpha = true;
rt.baseTexture.scaleMode = TileRenderer.SCALE_MODE;
rt.baseTexture.wrapMode = PIXI.WRAP_MODES.CLAMP;
this.renderer.textureManager.updateTexture(rt);
this.glTextures.push(rt);
var bs = [];
for (var j = 0; j < 4; j++) {
var spr = new PIXI.Sprite();
spr.position.x = 1024 * (j & 1);
spr.position.y = 1024 * (j >> 1);
bs.push(spr);
}
this.boundSprites.push(bs);
}
};
TileRenderer.prototype.bindTextures = function (renderer, shader, textures) {
var bounds = this.boundSprites;
var glts = this.glTextures;
var len = textures.length;
var maxTextures = this.maxTextures;
if (len > 4 * maxTextures) {
return;
}
var doClear = TileRenderer.DO_CLEAR;
if (doClear && !this._clearBuffer) {
this._clearBuffer = new Uint8Array(1024 * 1024 * 4);
}
var i;
for (i = 0; i < len; i++) {
var texture = textures[i];
if (!texture || !textures[i].valid)
continue;
var bs = bounds[i >> 2][i & 3];
if (!bs.texture ||
bs.texture.baseTexture !== texture.baseTexture) {
bs.texture = texture;
var glt = glts[i >> 2];
renderer.bindTexture(glt, 0, true);
if (doClear) {
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs, this._clearBuffer, 1024, 1024);
}
else {
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs);
}
}
}
this.texLoc.length = 0;
for (i = 0; i < maxTextures; i++) {
this.texLoc.push(renderer.bindTexture(glts[i], i, true));
}
shader.uniforms.uSamplers = this.texLoc;
};
TileRenderer.prototype.checkLeaks = function () {
var now = Date.now();
var old = now - 10000;
if (this.lastTimeCheck < old ||
this.lastTimeCheck > now) {
this.lastTimeCheck = now;
var vbs = this.vbs;
for (var key in vbs) {
if (vbs[key].lastTimeAccess < old) {
this.removeVb(key);
}
}
}
};
;
TileRenderer.prototype.start = function () {
this.renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
};
TileRenderer.prototype.getVb = function (id) {
this.checkLeaks();
var vb = this.vbs[id];
if (vb) {
vb.lastAccessTime = Date.now();
return vb;
}
return null;
};
TileRenderer.prototype.createVb = function (useSquare) {
var id = ++TileRenderer.vbAutoincrement;
var shader = this.getShader(useSquare);
var gl = this.renderer.gl;
var vb = PIXI.glCore.GLBuffer.createVertexBuffer(gl, null, gl.STREAM_DRAW);
var stuff = {
id: id,
vb: vb,
vao: shader.createVao(this.renderer, vb),
lastTimeAccess: Date.now(),
useSquare: useSquare,
shader: shader
};
this.vbs[id] = stuff;
return stuff;
};
TileRenderer.prototype.removeVb = function (id) {
if (this.vbs[id]) {
this.vbs[id].vb.destroy();
this.vbs[id].vao.destroy();
delete this.vbs[id];
}
};
TileRenderer.prototype.checkIndexBuffer = function (size) {
var totalIndices = size * 6;
var indices = this.indices;
if (totalIndices <= indices.length) {
return;
}
var len = indices.length || totalIndices;
while (len < totalIndices) {
len <<= 1;
}
indices = new Uint16Array(len);
this.indices = indices;
for (var i = 0, j = 0; i + 5 < indices.length; i += 6, j += 4) {
indices[i + 0] = j + 0;
indices[i + 1] = j + 1;
indices[i + 2] = j + 2;
indices[i + 3] = j + 0;
indices[i + 4] = j + 2;
indices[i + 5] = j + 3;
}
if (this.indexBuffer) {
this.indexBuffer.upload(indices);
}
else {
var gl = this.renderer.gl;
this.indexBuffer = glCore.GLBuffer.createIndexBuffer(gl, this.indices, gl.STATIC_DRAW);
}
};
TileRenderer.prototype.getShader = function (useSquare) {
return useSquare ? this.squareShader : this.rectShader;
};
TileRenderer.prototype.destroy = function () {
_super.prototype.destroy.call(this);
this.rectShader.destroy();
this.squareShader.destroy();
this.rectShader = null;
this.squareShader = null;
};
;
return TileRenderer;
}(PIXI.ObjectRenderer));
TileRenderer.vbAutoincrement = 0;
TileRenderer.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
TileRenderer.DO_CLEAR = false;
tilemap.TileRenderer = TileRenderer;
PIXI.WebGLRenderer.registerPlugin('tilemap', TileRenderer);
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
var PIXI;
(function (PIXI) {
var tilemap;
(function (tilemap_1) {
var ZLayer = (function (_super) {
__extends(ZLayer, _super);
function ZLayer(tilemap, zIndex) {
var _this = _super.call(this) || this;
_this._lastAnimationFrame = -1;
_this.tilemap = tilemap;
_this.z = zIndex;
return _this;
}
ZLayer.prototype.clear = function () {
var layers = this.children;
for (var i = 0; i < layers.length; i++)
layers[i].clear();
this._previousLayers = 0;
};
ZLayer.prototype.cacheIfDirty = function () {
var tilemap = this.tilemap;
var layers = this.children;
var modified = this._previousLayers != layers.length;
this._previousLayers = layers.length;
var buf = this.canvasBuffer;
var tempRender = this._tempRender;
if (!buf) {
buf = this.canvasBuffer = document.createElement('canvas');
tempRender = this._tempRender = new PIXI.CanvasRenderer(100, 100, { view: buf });
tempRender.context = tempRender.rootContext;
tempRender.plugins.tilemap.dontUseTransform = true;
}
if (buf.width != tilemap._layerWidth ||
buf.height != tilemap._layerHeight) {
buf.width = tilemap._layerWidth;
buf.height = tilemap._layerHeight;
modified = true;
}
var i;
if (!modified) {
for (i = 0; i < layers.length; i++) {
if (layers[i].isModified(this._lastAnimationFrame != tilemap.animationFrame)) {
modified = true;
break;
}
}
}
this._lastAnimationFrame = tilemap.animationFrame;
if (modified) {
if (tilemap._hackRenderer) {
tilemap._hackRenderer(tempRender);
}
tempRender.context.clearRect(0, 0, buf.width, buf.height);
for (i = 0; i < layers.length; i++) {
layers[i].clearModify();
layers[i].renderCanvas(tempRender);
}
}
this.layerTransform = this.worldTransform;
for (i = 0; i < layers.length; i++) {
this.layerTransform = layers[i].worldTransform;
break;
}
};
;
ZLayer.prototype.renderCanvas = function (renderer) {
this.cacheIfDirty();
var wt = this.layerTransform;
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
var tilemap = this.tilemap;
renderer.context.drawImage(this.canvasBuffer, 0, 0);
};
;
return ZLayer;
}(PIXI.Container));
tilemap_1.ZLayer = ZLayer;
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
})(PIXI || (PIXI = {}));
//# sourceMappingURL=pixi-tilemap.js.map

40199
www/js/libs/pixi.js Normal file

File diff suppressed because it is too large Load diff

9
www/js/main.js Normal file
View file

@ -0,0 +1,9 @@
//=============================================================================
// main.js
//=============================================================================
PluginManager.setup($plugins);
window.onload = function() {
SceneManager.run(Scene_Boot);
};

46
www/js/plugins.js Normal file
View file

@ -0,0 +1,46 @@
// Generated by RPG Maker.
// Do not edit this file directly.
var $plugins =
[
{ "name": "001_YEP_CoreEngine", "status": true, "description": "v1.28 Needed for the majority of Yanfly Engine Scripts. Also\r\ncontains bug fixes found inherently in RPG Maker.", "parameters": { "---Screen---": "", "Screen Width": "1008", "Screen Height": "624", "Scale Battlebacks": "false", "Scale Title": "false", "Scale Game Over": "false", "Open Console": "true", "Reposition Battlers": "true", "GameFont Load Timer": "0", "Update Real Scale": "false", "Collection Clear": "true", "---Gold---": "", "Gold Max": "99999999", "Gold Font Size": "20", "Gold Icon": "313", "Gold Overlap": "A lotta", "---Items---": "", "Default Max": "99", "Quantity Text Size": "20", "---Parameters---": "", "Max Level": "99", "Actor MaxHP": "9999", "Actor MaxMP": "9999", "Actor Parameter": "999", "Enemy MaxHP": "999999", "Enemy MaxMP": "9999", "Enemy Parameter": "999", "---Battle---": "", "Animation Rate": "4", "Flash Target": "false", "Show Events Transition": "true", "Show Events Snapshot": "true", "---Map Optimization---": "", "Refresh Update HP": "true", "Refresh Update MP": "true", "Refresh Update TP": "false", "---Font---": "", "Chinese Font": "SimHei, Heiti TC, sans-serif", "Korean Font": "Dotum, AppleGothic, sans-serif", "Default Font": "GameFont, Verdana, Arial, Courier New", "Font Size": "28", "Text Align": "left", "---Windows---": "", "Digit Grouping": "true", "Line Height": "36", "Icon Width": "32", "Icon Height": "32", "Face Width": "144", "Face Height": "144", "Window Padding": "18", "Text Padding": "6", "Window Opacity": "192", "Gauge Outline": "true", "Gauge Height": "18", "Menu TP Bar": "true", "---Window Colors---": "", "Color: Normal": "0", "Color: System": "16", "Color: Crisis": "17", "Color: Death": "18", "Color: Gauge Back": "19", "Color: HP Gauge 1": "20", "Color: HP Gauge 2": "21", "Color: MP Gauge 1": "22", "Color: MP Gauge 2": "23", "Color: MP Cost": "23", "Color: Power Up": "24", "Color: Power Down": "25", "Color: TP Gauge 1": "28", "Color: TP Gauge 2": "29", "Color: TP Cost Color": "29" } },
{ "name": "002_Oggy_CustomLoading", "status": true, "description": "ローディング画面の処理変更", "parameters": {} },
{ "name": "003_InputForm", "status": true, "description": "フォーム作って文字入力(修正版)", "parameters": {} },
{ "name": "099_Integration", "status": true, "description": "", "parameters": {} },
{ "name": "101_GF_Core", "status": false, "description": "基本システム改変プラグイン", "parameters": {} },
{ "name": "102_Base_Button", "status": false, "description": "新規雛形:ボタンオブジェクトの雛形を定義", "parameters": {} },
{ "name": "103_Base_Numbers", "status": false, "description": "新規雛形:画像による数字表示オブジェクトの雛形を定義", "parameters": {} },
{ "name": "104_Base_SpriteEX", "status": false, "description": "新規雛形:拡張機能を追加したスプライトの雛形を定義", "parameters": {} },
{ "name": "111_Extend_Choices", "status": false, "description": "既存拡張選択肢の表示に条件を追加する。前提ReBase", "parameters": {} },
{ "name": "112_Extend_SwitchesAndVariables", "status": false, "description": "既存拡張:動的スイッチの導入・変数による出現条件の拡張", "parameters": {} },
{ "name": "113_Extend_MapMove", "status": false, "description": "既存拡張:マップシーンでの移動に関わるスクリプト群", "parameters": {} },
{ "name": "114_Extend_Region", "status": false, "description": "既存拡張:リージョン・地形タグを利用するスクリプト群", "parameters": {} },
{ "name": "115_Extend_SaveLoad", "status": false, "description": "既存拡張:セーブロード画面関連の修正", "parameters": {} },
{ "name": "119_Extend_Config", "status": false, "description": "既存拡張:オプションに、ゲームパッドのボタン割り当て変更機能を追加。", "parameters": {} },
{ "name": "121_Extend_Message", "status": false, "description": "既存拡張:主にウィンドウのスキン部分に関わるプラグイン", "parameters": {} },
{ "name": "122_Extend_Message_Option", "status": false, "description": "既存拡張:メッセージの表示にスキップ・バックログなどのオプションを追加する", "parameters": {} },
{ "name": "123_Extend_Message_Type", "status": false, "description": "既存拡張メッセージウィンドウの種類を増やす前提Extend_Message_Option", "parameters": {} },
{ "name": "131_Add_MoveFade", "status": false, "description": "機能追加:移動専用のフェードイン・アウト命令", "parameters": {} },
{ "name": "132_Add_Attention", "status": false, "description": "機能追加:画像を主にシステムメッセージとして表示する", "parameters": {} },
{ "name": "133_Add_ShowPointsChange", "status": false, "description": "機能追加:任意の変数を増減させる同時に、変動値をプレイヤーの上に表示する。", "parameters": {} },
{ "name": "134_Add_RandomMessage", "status": false, "description": "機能追加:ランダムメッセージ", "parameters": {} },
{ "name": "139_Add_ChoicesByComments", "status": false, "description": "機能追加注釈を利用した選択肢表示機能前提Extend_Choices", "parameters": {} },
{ "name": "141_Add_GraphicStand", "status": false, "description": "機能追加立ち絵表示専用命令前提Base_SpriteEX", "parameters": {} },
{ "name": "142_Add_GraphicKatty", "status": false, "description": "機能追加ヒロイン専用命令前提Base_SpriteEX", "parameters": {} },
{ "name": "143_Add_GraphicEventCG", "status": false, "description": "機能追加イベント専用表示命令前提Base_SpriteEX", "parameters": {} },
{ "name": "151_MusicManager", "status": false, "description": "既存拡張:BGM再生をマクロ化", "parameters": {} },
{ "name": "152_TimeManager", "status": false, "description": "機能追加劇中での時間管理前提Add_EventManager", "parameters": {} },
{ "name": "155_EventManager", "status": false, "description": "機能追加:イベントの実行管理", "parameters": {} },
{ "name": "156_EventManager_Condition", "status": false, "description": "機能追加注釈を用いた出現条件拡張前提Add_EventManager", "parameters": {} },
{ "name": "157_EventManager_List", "status": false, "description": "機能追加イベントリスト前提Add_EventManager", "parameters": {} },
{ "name": "161_Scene_Menu", "status": false, "description": "シーン追加:悪魂入りのカティ専用のメニュー画面を作成。", "parameters": {} },
{ "name": "162_Scene_Menu_History", "status": false, "description": "シーン追加:イベント実行状況が確認できるシーンを追加。", "parameters": {} },
{ "name": "163_Scene_Menu_Items", "status": false, "description": "シーン追加:独自のアイテム所持欄を作成\r\n\r\nアイテムの入手や、アイテムの所持による分岐はデフォルトの処理を用いる。\r\nただ、メニュー画面での所持アイテム確認だけは新たに作る必要がある。\r\nそのための拡張。\r\n\r\n作成 21:22 2019/11/03\r\n更新 3:23 2019/11/07", "parameters": {} },
{ "name": "171_Scene_Gallery", "status": false, "description": "シーン追加:ギャラリーモード", "parameters": {} },
{ "name": "172_Scene_Gallery_Viewer", "status": false, "description": "シーン追加:ギャラリーモード拡張", "parameters": {} },
{ "name": "173_Scene_Gallery_List", "status": false, "description": "シーン追加:ギャラリーモード用のリスト", "parameters": {} },
{ "name": "181_Scene_Title", "status": false, "description": "シーン追加GF30専用タイトル改変処理前提Base_Button & Scene_Gallery", "parameters": {} },
{ "name": "204_Judge_Slot", "status": false, "description": "判定追加:スロット判定", "parameters": {} },
{ "name": "201_Judge_Circle", "status": false, "description": "判定追加:円をタイミング良く押す判定", "parameters": {} },
{ "name": "203_Judge_DrawCard", "status": false, "description": "判定追加:カードめくり判定", "parameters": {} },
{ "name": "202_Judge_Dice", "status": false, "description": "判定追加:ダイスロール", "parameters": {} }
];

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more