Compare commits

...

11 commits

Author SHA1 Message Date
802f0b906f 1.1.0 2024-01-17 15:15:06 -06:00
952f5635a6 Reformat Files 2024-01-17 14:24:27 -06:00
199829652b Patch 1.0.6 2023-07-23 13:06:44 -05:00
9c057ab980 gitignore now working 2023-07-23 12:58:39 -05:00
44b1034b09 Add 7z to gitignore 2023-07-23 12:49:25 -05:00
8c861d9c70 Patch 1.0.5 2023-07-12 15:04:14 -05:00
838ebcb816 v1.0.3 patch 2023-07-09 14:13:20 -05:00
33ab890963 Add rpgmvp files 2023-07-03 14:30:37 -05:00
62082b0ce3 Merge branch 'v1.0.2' into original 2023-07-03 14:10:45 -05:00
0bc3207073 format Actors 2023-07-03 14:05:41 -05:00
a9a421943c Apply patch v1.0.2 2023-07-03 13:46:31 -05:00
181 changed files with 292022 additions and 116852 deletions

2
.gitignore vendored
View file

@ -5,5 +5,7 @@
!*.json
!*.js
!*.zip
!*.7z
!.gitignore
!.md
package.json

View file

@ -1,35 +0,0 @@
# Apply Patch
1. Click Code
2. Click Download ZIP
3. Extract to game folder and Replace All.
# How To Contribute
TLDR 3 steps.
Fork the repository.
Make the changes.
Submit a pull request to the project owner.
If everything looks good and doesn't break things I'll merge it in.
Longer Version:
Things that are needed:
* An editor of some kind. (I recommend [VSCode](https://code.visualstudio.com/))
* The Game
* [Git (Duh)](https://git-scm.com/downloads)
* Motivation to learn
1. Fork the repo using the fork button at the top. Click Code > HTTPS > Copy URL.
2. Open the terminal in your game folder by shift + right clicking and clicking Terminal.
3. Enter `git init` and then `git remote add origin [PASTEURL]`
4. Enter `git pull origin main`
Now you are all setup, all you need to do is play the game and look for any changes that need to be made. Stuff like spelling errors, wrong names, inconsistencies, spacing issues, etc.
6. When you do find a change that needs to be made, do the following to make things easy. Right click on the `data` folder and click `open with VScode`. If you dont see that option see [this](https://dev.to/matheusgomes062/how-to-open-your-files-with-vs-code-from-the-context-menu-on-windows-5fi9) or you can just open vscode and drag it in.
7. Use the FIND functionality to search for what you are trying to fix. For example if a character's name is wrong, type that into the search menu and start looking, then make the change. Try not to mess with any scripts or variables you might see. If you can't find it in `data` try `js` folder instead.
8. After you are satisfied with your changes it's time to put in a PR. Use `git add -A` to add changes then Use `git commit -m 'MESSAGE HERE'` to save your changes. then do `git push` to push them to your fork. If everything works your fork should update with the changes.
9. Go to Pull Requests > New Pull Requests. Look at the arrow, your fork should be pointing to the original repo (mine). Add in details on what you fixed and Submit. If everything looks good I'll merge it in and you would have successfully contributed.
Got questions? Just shoot me a message, more than happy to walk you through any of the tools.

View file

@ -21,11 +21,6 @@
"dataId": 3,
"value": 1
},
{
"code": 22,
"dataId": 0,
"value": 1
},
{
"code": 14,
"dataId": 82,
@ -34,7 +29,7 @@
],
"initialLevel": 1,
"maxLevel": 1,
"name": "Yamemoto",
"name": "ヤマモト",
"nickname": "",
"note": "<stand_picture:shujinkou_menyu>\n",
"profile": ""
@ -59,16 +54,11 @@
"code": 62,
"dataId": 3,
"value": 1
},
{
"code": 22,
"dataId": 0,
"value": 1
}
],
"initialLevel": 1,
"maxLevel": 1,
"name": "Monica",
"name": "モニカ",
"nickname": "",
"note": "<stand_picture:monica_menu>\n",
"profile": ""
@ -97,7 +87,7 @@
],
"initialLevel": 1,
"maxLevel": 99,
"name": "Marsha",
"name": "マーシャ",
"nickname": "",
"note": "",
"profile": ""
@ -126,7 +116,7 @@
],
"initialLevel": 1,
"maxLevel": 99,
"name": "Lucius",
"name": "ルキウス",
"nickname": "",
"note": "",
"profile": ""

File diff suppressed because it is too large Load diff

View file

@ -197,7 +197,7 @@
"skillId": 58
}
],
"name": "Adventurer",
"name": "冒険者",
"note": "",
"params": [
[
@ -1089,7 +1089,7 @@
}
],
"learnings": [],
"name": "Adventurer",
"name": "冒険者",
"note": "",
"params": [
[
@ -2107,7 +2107,7 @@
"skillId": 58
}
],
"name": "Adventurer Monica",
"name": "冒険者モニカ",
"note": "",
"params": [
[
@ -2985,7 +2985,7 @@
"skillId": 8
}
],
"name": "Monk",
"name": "僧侶",
"note": "",
"params": [
[

File diff suppressed because it is too large Load diff

View file

@ -61,7 +61,7 @@
}
],
"gold": 0,
"name": "Bat",
"name": "こうもり",
"note": "",
"params": [
20,
@ -111,6 +111,11 @@
"dataId": 0,
"value": 1
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 31,
"dataId": 1,
@ -148,7 +153,7 @@
}
],
"gold": 0,
"name": "Slime",
"name": "スライム",
"note": "",
"params": [
20,
@ -168,7 +173,7 @@
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"rating": 8,
"skillId": 31
},
{
@ -182,7 +187,7 @@
"conditionParam1": 0,
"conditionParam2": 0.2,
"conditionType": 2,
"rating": 5,
"rating": 3,
"skillId": 2
}
],
@ -217,6 +222,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -264,13 +274,13 @@
}
],
"gold": 0,
"name": "Goblin Warrior",
"name": "ゴブリン戦士",
"note": "",
"params": [
25,
30,
0,
18,
12,
20,
1,
1,
20,
@ -333,6 +343,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -370,13 +385,13 @@
}
],
"gold": 0,
"name": "Goblin Junior Shaman",
"name": "ゴブリン下級シャーマン",
"note": "",
"params": [
25,
30,
100,
15,
10,
15,
2,
3,
10,
@ -469,7 +484,7 @@
}
],
"gold": 0,
"name": "Ancient Warrior",
"name": "古代の戦士",
"note": "",
"params": [
60,
@ -593,6 +608,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 32,
"dataId": 4,
@ -615,7 +635,7 @@
}
],
"gold": 0,
"name": "Matango",
"name": "マタンゴ",
"note": "",
"params": [
30,
@ -691,6 +711,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 4,
@ -733,7 +758,7 @@
}
],
"gold": 3000,
"name": "Darkstrike",
"name": "あくらつ",
"note": "雷に弱い\n",
"params": [
50,
@ -788,6 +813,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -800,7 +830,7 @@
}
],
"gold": 0,
"name": "Mimic",
"name": "ミミック",
"note": "火に弱い",
"params": [
80,
@ -862,6 +892,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 63,
@ -894,7 +929,7 @@
}
],
"gold": 0,
"name": "Dungeon Worm",
"name": "ダンジョンワーム",
"note": "火に弱い",
"params": [
90,
@ -914,14 +949,14 @@
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 6,
"rating": 8,
"skillId": 31
},
{
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"rating": 1,
"skillId": 21
}
],
@ -956,6 +991,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -998,7 +1038,7 @@
}
],
"gold": 0,
"name": "Goblin",
"name": "ゴブリン",
"note": "",
"params": [
20,
@ -1309,6 +1349,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -1356,13 +1401,13 @@
}
],
"gold": 0,
"name": "Kidnapper",
"name": "人さらい",
"note": "雷に弱い",
"params": [
120,
200,
0,
25,
13,
30,
20,
10,
10,
13,
@ -1723,7 +1768,7 @@
}
],
"gold": 0,
"name": "Fire-breathing bat",
"name": "火吹きこうもり",
"note": "水に弱い",
"params": [
50,
@ -1743,7 +1788,7 @@
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 1,
"rating": 9,
"rating": 5,
"skillId": 7
},
{
@ -1780,6 +1825,13 @@
"conditionType": 1,
"rating": 9,
"skillId": 32
},
{
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 4,
"skillId": 31
}
],
"battlerHue": 0,
@ -1813,6 +1865,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 4,
@ -1867,16 +1924,21 @@
"code": 14,
"dataId": 50,
"value": 1
},
{
"code": 14,
"dataId": 81,
"value": 1
}
],
"gold": 0,
"name": "Guardian",
"name": "ガーディアン",
"note": "",
"params": [
600,
650,
1000,
30,
30,
40,
40,
30,
5,
@ -1957,7 +2019,7 @@
}
],
"gold": 0,
"name": "Mummy Man",
"name": "ミイラ男",
"note": "",
"params": [
100,
@ -2012,6 +2074,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -2024,7 +2091,7 @@
}
],
"gold": 0,
"name": "Mimic (Gold)",
"name": "ミミック(金)",
"note": "雷に弱い",
"params": [
120,
@ -2079,6 +2146,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -2086,7 +2158,7 @@
}
],
"gold": 0,
"name": "Mimic (Rainbow)",
"name": "ミミック(虹)",
"note": "",
"params": [
140,
@ -2160,6 +2232,11 @@
"dataId": 2,
"value": 1
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -2207,7 +2284,7 @@
}
],
"gold": 0,
"name": "Goblin Hero",
"name": "ゴブリンヒーロー",
"note": "",
"params": [
52,
@ -2297,6 +2374,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -2334,10 +2416,10 @@
}
],
"gold": 0,
"name": "Goblin Advanced Shaman",
"name": "ゴブリン上級シャーマン",
"note": "",
"params": [
30,
35,
100,
15,
15,
@ -2384,6 +2466,11 @@
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 31,
"dataId": 1,
@ -2406,7 +2493,7 @@
}
],
"gold": 0,
"name": "Kegare: Fetal Movement",
"name": "ケガレ:胎動",
"note": "",
"params": [
30000,
@ -2475,6 +2562,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -2512,13 +2604,13 @@
}
],
"gold": 0,
"name": "Goblin Shaman Elite",
"name": "ゴブリンシャーマンエリート",
"note": "",
"params": [
45,
50,
100,
15,
20,
25,
10,
3,
10,
@ -2609,6 +2701,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 4,
@ -2661,7 +2758,7 @@
}
],
"gold": 0,
"name": "Suspicious Man",
"name": "あやしい男",
"note": "雷に弱い",
"params": [
350,
@ -2718,6 +2815,11 @@
"dataId": 0,
"value": 1
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 31,
"dataId": 1,
@ -2755,7 +2857,7 @@
}
],
"gold": 0,
"name": "Tar Slime",
"name": "タールスライム",
"note": "火に弱い",
"params": [
40,
@ -2838,6 +2940,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 10,
@ -2865,13 +2972,13 @@
}
],
"gold": 0,
"name": "Dark Knight",
"name": "暗黒騎士",
"note": "",
"params": [
250,
400,
0,
36,
30,
40,
35,
10,
25,
1,
@ -2981,6 +3088,11 @@
"dataId": 1,
"value": 1
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -3020,15 +3132,20 @@
"code": 11,
"dataId": 2,
"value": 1.2
},
{
"code": 13,
"dataId": 81,
"value": 0.1
}
],
"gold": 0,
"name": "Demon",
"name": "あくま",
"note": "",
"params": [
666,
4,
30,
40,
20,
25,
20,
@ -3085,6 +3202,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -3122,13 +3244,13 @@
}
],
"gold": 0,
"name": "Underground Person",
"name": "地底人",
"note": "",
"params": [
150,
200,
0,
15,
15,
18,
30,
15,
15,
@ -3217,6 +3339,11 @@
"dataId": 2,
"value": 0.6
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -3264,12 +3391,12 @@
}
],
"gold": 0,
"name": "Dragon",
"name": "ドラゴン",
"note": "",
"params": [
350,
400,
10,
30,
40,
25,
30,
20,
@ -3361,6 +3488,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 5,
@ -3393,7 +3525,7 @@
}
],
"gold": 0,
"name": "Gaze",
"name": "ゲイズ",
"note": "火に弱い",
"params": [
35,
@ -3464,6 +3596,11 @@
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 31,
"dataId": 1,
@ -3486,10 +3623,10 @@
}
],
"gold": 0,
"name": "Sahagin",
"name": "サハギン",
"note": "雷に弱い",
"params": [
80,
100,
0,
19,
11,
@ -3583,6 +3720,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 10,
@ -3605,7 +3747,7 @@
}
],
"gold": 0,
"name": "Poltergeist",
"name": "ポルターガイスト",
"note": "",
"params": [
53,
@ -3688,6 +3830,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -3705,10 +3852,10 @@
}
],
"gold": 0,
"name": "Guraboizu",
"name": "グラボイズ",
"note": "火に弱い",
"params": [
230,
250,
0,
40,
20,
@ -3809,6 +3956,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -3846,7 +3998,7 @@
}
],
"gold": 0,
"name": "Zombie",
"name": "ゾンビ",
"note": "",
"params": [
90,
@ -3950,6 +4102,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 10,
@ -3987,7 +4144,7 @@
}
],
"gold": 0,
"name": "Zombie Soldier",
"name": "ゾンビ兵",
"note": "",
"params": [
100,
@ -4056,6 +4213,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -4068,7 +4230,7 @@
}
],
"gold": 0,
"name": "Mushroom Ghost",
"name": "お化けきのこ",
"note": "",
"params": [
80,
@ -4167,6 +4329,11 @@
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -4209,12 +4376,12 @@
}
],
"gold": 0,
"name": "Tadareta Otoko (Ragged Man)",
"name": "ただれた男",
"note": "",
"params": [
150,
180,
0,
28,
35,
5,
10,
10,
@ -4292,6 +4459,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 5,
@ -4329,12 +4501,12 @@
}
],
"gold": 0,
"name": "Golem",
"name": "ゴーレム",
"note": "攻撃力がたかい\n水に弱い",
"params": [
120,
0,
24,
30,
15,
10,
15,
@ -4405,6 +4577,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -4437,10 +4614,10 @@
}
],
"gold": 0,
"name": "Heal Golem",
"name": "ヒールゴーレム",
"note": "全体回復もち\n火に弱い",
"params": [
80,
120,
0,
18,
18,
@ -4508,6 +4685,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 13,
"dataId": 50,
@ -4545,13 +4727,13 @@
}
],
"gold": 0,
"name": "Crystal Golem",
"name": "クリスタルゴーレム",
"note": "攻撃力防御力が高い\n防具破壊ステートつきやすい",
"params": [
200,
250,
0,
29,
35,
50,
10,
10,
5,
@ -4656,6 +4838,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 4,
@ -4700,16 +4887,21 @@
"code": 14,
"dataId": 8,
"value": 1
},
{
"code": 13,
"dataId": 81,
"value": 0.1
}
],
"gold": 0,
"name": "Orc",
"name": "オーク",
"note": "",
"params": [
800,
900,
0,
55,
25,
60,
35,
10,
2,
10,
@ -4786,6 +4978,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 32,
"dataId": 4,
@ -4813,7 +5010,7 @@
}
],
"gold": 0,
"name": "Poison Dragon",
"name": "ポイズンドラゴン",
"note": "",
"params": [
180,
@ -4903,6 +5100,11 @@
"dataId": 1,
"value": 0
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 11,
"dataId": 2,
@ -4960,7 +5162,7 @@
}
],
"gold": 0,
"name": "Dragon",
"name": "ドラゴン",
"note": "",
"params": [
350,
@ -5031,6 +5233,13 @@
"conditionType": 1,
"rating": 5,
"skillId": 7
},
{
"conditionParam1": 0,
"conditionParam2": 0,
"conditionType": 0,
"rating": 4,
"skillId": 31
}
],
"battlerHue": 0,
@ -5059,6 +5268,11 @@
"dataId": 0,
"value": 0.95
},
{
"code": 22,
"dataId": 1,
"value": 0.02
},
{
"code": 31,
"dataId": 1,
@ -5098,16 +5312,21 @@
"code": 14,
"dataId": 10,
"value": 1
},
{
"code": 13,
"dataId": 81,
"value": 0.1
}
],
"gold": 0,
"name": "Master of Tentacles",
"name": "触手の主",
"note": "",
"params": [
1000,
1500,
0,
40,
30,
50,
45,
10,
10,
10,
@ -5122,11 +5341,11 @@
"conditionParam2": 0,
"conditionType": 0,
"rating": 5,
"skillId": 1
"skillId": 7
}
],
"battlerHue": 0,
"battlerName": "",
"battlerName": "enemy1_hitosarai",
"dropItems": [
{
"dataId": 1,
@ -5163,10 +5382,10 @@
}
],
"gold": 0,
"name": "",
"name": "テスト君",
"note": "",
"params": [
100,
50000,
0,
10,
10,

File diff suppressed because it is too large Load diff

View file

@ -2305,7 +2305,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Innkeeper】 Welcome back! I've prepared a meal for you! Huh? Are you\nalone?"
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"おう、おかえり!飯用意してあるぞ!"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"あれ?一人かい?"
]
},
{
@ -2332,7 +2346,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Innkeeper】 Welcome back! I've prepared a meal for you!"
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"おう、おかえり!飯用意してあるぞ!"
]
},
{
@ -2372,7 +2393,14 @@
"code": 401,
"indent": 2,
"parameters": [
"Due to extreme fatigue, Monica prepared to rest and returned to her\nroom without much conversation."
"あまりの疲労のため、会話もそこそこにモニカは休む準備を"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"して自室にもどっていった。"
]
},
{
@ -2389,7 +2417,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Innkeeper】 ..."
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"・・・"
]
},
{
@ -2459,9 +2494,9 @@
"indent": 0,
"parameters": [
[
"To my room",
"Listen to the customer",
"Leave the inn"
"自室へ",
"客に話を聞く",
"宿屋を去る"
],
0,
0,
@ -2577,7 +2612,7 @@
"indent": 1,
"parameters": [
[
"(I want to rest for the day)"
"(今日はもう休みたい)"
],
-1,
0,
@ -3427,7 +3462,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3460,7 +3495,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3781,14 +3816,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment\\C[18]\\v[97]\\C[0]Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -3839,14 +3874,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -3907,14 +3942,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{

View file

@ -2462,7 +2462,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Will you proceed?"
"次に進みますか?"
]
},
{
@ -2470,9 +2470,9 @@
"indent": 0,
"parameters": [
[
"Yes",
"Open the menu",
"No"
"はい",
"メニューを開く",
"いいえ"
],
1,
0,
@ -3551,7 +3551,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Will you proceed?"
"次に進みますか?"
]
},
{
@ -3559,9 +3559,9 @@
"indent": 0,
"parameters": [
[
"Yes",
"Open the menu",
"No"
"はい",
"メニューを開く",
"いいえ"
],
1,
0,
@ -3840,7 +3840,7 @@
"code": 401,
"indent": 0,
"parameters": [
"I will roll the dice."
"ダイスを振ります"
]
},
{
@ -3963,7 +3963,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\V[51] it is!"
"\\V[51]だ!"
]
},
{
@ -4005,7 +4005,7 @@
"code": 401,
"indent": 1,
"parameters": [
"Ah"
""
]
},
{
@ -4191,7 +4191,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Will you proceed?"
"次に進みますか?"
]
},
{
@ -4199,9 +4199,9 @@
"indent": 0,
"parameters": [
[
"Yes",
"Open the menu",
"No"
"はい",
"メニューを開く",
"いいえ"
],
1,
0,

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2319,6 +2319,38 @@
1
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
4,
1,
5,
3
]
},
{
"code": 122,
"indent": 2,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 119,
"indent": 1,
@ -3273,12 +3305,86 @@
]
},
{
"code": 117,
"code": 111,
"indent": 1,
"parameters": [
4,
2,
6,
10
]
},
{
"code": 117,
"indent": 2,
"parameters": [
187
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 411,
"indent": 1,
"parameters": []
},
{
"code": 111,
"indent": 2,
"parameters": [
4,
2,
6,
62
]
},
{
"code": 117,
"indent": 3,
"parameters": [
187
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 411,
"indent": 2,
"parameters": []
},
{
"code": 117,
"indent": 3,
"parameters": [
139
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 122,
"indent": 1,
@ -4280,6 +4386,130 @@
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
11,
0,
13,
0
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
6,
0,
60,
0
]
},
{
"code": 111,
"indent": 2,
"parameters": [
1,
101,
0,
50,
1
]
},
{
"code": 111,
"indent": 3,
"parameters": [
0,
308,
0
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 411,
"indent": 3,
"parameters": []
},
{
"code": 117,
"indent": 4,
"parameters": [
492
]
},
{
"code": 117,
"indent": 4,
"parameters": [
47
]
},
{
"code": 122,
"indent": 4,
"parameters": [
6,
6,
1,
0,
20
]
},
{
"code": 119,
"indent": 4,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 412,
"indent": 3,
"parameters": []
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
@ -5033,6 +5263,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -5169,6 +5408,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -5305,6 +5553,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -5492,6 +5749,28 @@
177
]
},
{
"code": 122,
"indent": 1,
"parameters": [
92,
92,
0,
0,
0
]
},
{
"code": 122,
"indent": 1,
"parameters": [
91,
91,
0,
0,
0
]
},
{
"code": 201,
"indent": 1,
@ -5590,7 +5869,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Will you proceed?"
"次に進みますか?"
]
},
{
@ -6418,14 +6697,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -6476,14 +6755,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -6544,14 +6823,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -6709,7 +6988,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -6742,7 +7021,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{

View file

@ -2240,7 +2240,14 @@
"code": 401,
"indent": 1,
"parameters": [
"■At the item shop, you can purchase useful items for the dungeon and\nsell the items you bring back."
"■道具屋ではダンジョンで役立つアイテムの購入、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
" 持ち帰ったアイテムの売却ができます。"
]
},
{
@ -2257,7 +2264,21 @@
"code": 401,
"indent": 1,
"parameters": [
"■It is recommended to have \\item[24] on hand in order to safely conquer\nthe dungeon, where you cannot escape from battles."
"■戦闘から逃げることのできないダンジョンを"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
" 安全に攻略するために、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
" \\item[24]は常備しておくことをおすすめいたします。"
]
},
{
@ -2394,7 +2415,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Sanae】 Welcome!"
"【さなえ】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"いらっしゃいませ!"
]
},
{
@ -2409,8 +2437,8 @@
"indent": 0,
"parameters": [
[
"I would like to see the products",
"Leaving the store"
"商品をみたい",
"店から出る"
],
1,
0,
@ -2557,6 +2585,16 @@
0
]
},
{
"code": 605,
"indent": 1,
"parameters": [
0,
55,
0,
0
]
},
{
"code": 605,
"indent": 1,
@ -2597,6 +2635,16 @@
0
]
},
{
"code": 605,
"indent": 1,
"parameters": [
0,
56,
1,
100
]
},
{
"code": 119,
"indent": 1,
@ -2631,7 +2679,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Sanae】 Thank you very much!"
"【サナエ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ありがとうございました!"
]
},
{
@ -2893,7 +2948,21 @@
"code": 401,
"indent": 0,
"parameters": [
"【Sanae】 Ah! Monica-san, \\N[1]-san! Welcome!"
"【さなえ】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"あ!モニカさん、\\n[1]さん!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"いらっしゃいませ!"
]
},
{
@ -2908,8 +2977,8 @@
"indent": 0,
"parameters": [
[
"I want to see the products",
"Leaving the store"
"商品をみたい",
"店から出る"
],
1,
0,
@ -3056,6 +3125,16 @@
0
]
},
{
"code": 605,
"indent": 1,
"parameters": [
0,
55,
0,
0
]
},
{
"code": 605,
"indent": 1,
@ -3096,6 +3175,16 @@
0
]
},
{
"code": 605,
"indent": 1,
"parameters": [
0,
56,
1,
100
]
},
{
"code": 119,
"indent": 1,
@ -3164,7 +3253,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Alright, preparations are good to go!"
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"よし、準備おっけー!"
]
},
{
@ -3206,7 +3302,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Come on, let's go to the dungeon quickly!"
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ほら、早くダンジョンいくよ!"
]
},
{
@ -3258,7 +3361,7 @@
"indent": 1,
"parameters": [
[
"You're so impatient Wait a moment, let's―――"
"気がはやいなぁ…ちょっと、まっ―――"
],
-1,
0,
@ -3298,7 +3401,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Sanae】 Ah, um! Mr. \\N[1]!"
"【サナエ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"あ、あの!\\n[1]さん!"
]
},
{
@ -3365,7 +3475,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Sanae】 Um, well, um!"
"【サナエ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"えぇっと、その!"
]
},
{
@ -3416,7 +3533,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Sanae】 Could you come to the shop again tonight?"
"【サナエ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"今晩、またお店にきていただけませんか?"
]
},
{
@ -3449,8 +3573,8 @@
"indent": 1,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -3498,7 +3622,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Sanae】 Yatta! (We did it!)"
"【サナエ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"やった!"
]
},
{
@ -3515,7 +3646,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Sanae】 It's a promise, okay?"
"【サナエ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"約束ですよ?"
]
},
{
@ -4122,14 +4260,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -4180,14 +4318,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -4248,14 +4386,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -4698,7 +4836,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -4731,7 +4869,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{

View file

@ -2245,7 +2245,14 @@
"code": 401,
"indent": 1,
"parameters": [
"\\#■ In the training grounds, you can purchase skills that are useful\nin dungeons. The skills you purchase can be acquired by using them."
"\\#■訓練場ではダンジョンで役立つスキルを購入することが出来ます。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"購入したスキルは使用することで習得ができます。"
]
},
{
@ -2278,7 +2285,21 @@
"code": 401,
"indent": 1,
"parameters": [
"However, there is a limit to the skills that can be taken into the\ndungeon, and you can equip or unequip learned skills from your\n\\c[18]room in the inn\\c[0] or the \\c[18]skill icon\\c[0] on the main\nscreen."
"ただし、ダンジョン内に持っていけるスキルには限りがあり、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"覚えたスキルの着脱は\\c[18]宿の自室\\c[0]またはメイン画面の\\c[18]スキルアイコン\\c[0]から"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"行うことができます。"
]
},
{
@ -2311,7 +2332,14 @@
"code": 401,
"indent": 1,
"parameters": [
"The number of skill sets is limited to a maximum of three. Skills have\na set amount of required points (CP)."
"スキルのセット数は最大で3つまで。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"スキルには必要ポイントCPが設定されています。"
]
},
{
@ -2328,7 +2356,21 @@
"code": 401,
"indent": 1,
"parameters": [
"The maximum value of CP is 5. Taking Lightning Slash as an example, it\nrequires 3 CP. So, if you set Lightning Slash, you will have 2\nremaining CP available for use."
"CPの最大値はです。「いなずま斬り」を例にすると、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"「いなずま斬り」のCPは必要なのでこれをセットする場合、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"使用できる残りCPはということになります。"
]
},
{
@ -2405,7 +2447,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Instructor】 Welcome! You're an interesting one who has come!"
"【教官】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"よく来たな!見どころのあるやつだ!"
]
},
{
@ -2429,7 +2478,21 @@
"code": 401,
"indent": 0,
"parameters": [
"【Instructor】 If even pigs like you can survive my training, each of\nyou will become a weapon!"
"【教官】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"お前らのような豚でもおれの訓練に生き残れたら、"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"各人が兵器となる!"
]
},
{
@ -2547,7 +2610,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Instructor】 You can still keep going right?!"
"【教官】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"まだまだ鍛えたりないんじゃないか?!"
]
},
{
@ -2562,8 +2632,8 @@
"indent": 0,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -2613,7 +2683,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Instructor】 Don't neglect your daily training!!"
"【教官】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"日々の鍛錬を怠るんじゃあないぞ!!"
]
},
{
@ -2864,14 +2941,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -2922,14 +2999,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -2990,14 +3067,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -3144,7 +3221,7 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT Day\\v[16] 32"
"D_TEXT \\v[16]日目 32"
]
},
{

View file

@ -2243,7 +2243,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# Dungeon---"
"\\#ダンジョン―――"
]
},
{
@ -2260,7 +2260,14 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# It is a mysterious labyrinth that has existed all over the world\nsince ancient times, long before humans began recording history."
"\\#それは人が歴史を刻むよりはるか昔から世界各地に"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\#点在する謎の迷宮。"
]
},
{
@ -2277,7 +2284,14 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# Many humans were attracted to it, which was filled with numerous\ntreasures and monsters."
"\\#多くの財宝と魔物で満ち溢れたそれに、多くの人間が"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\#むらがった。"
]
},
{
@ -2294,7 +2308,14 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# Some sought fame, while others sought wealth, and day and night\nwithout rest, they explored the dungeon. And many people lost their\nlives."
"\\#ある者は名声を求め、またある者は富を求めて日夜問わず"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\#ダンジョンを探検し、そして多くの人が亡くなっていった。"
]
},
{
@ -2311,7 +2332,14 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# Nevertheless, people who were captivated continued to gather in the\ndungeon, \\# and eventually a town centered around the dungeon was\nestablished."
"\\#それでも魅入られた人々は続々とダンジョンに集まり、"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\#やがてダンジョンを中心とした町ができた。"
]
},
{
@ -2328,7 +2356,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# And so, many long years passed."
"\\#それから長い月日がながれた。"
]
},
{
@ -2345,7 +2373,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# And once again, a young man captivated by the unknown visited the\ntown alone."
"\\#そしてまた未知に魅了された青年が独り、町を訪れた。"
]
},
{

File diff suppressed because it is too large Load diff

View file

@ -2231,7 +2231,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -2264,7 +2264,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -2656,7 +2656,7 @@
"indent": 1,
"parameters": [
[
"Um, I think it's to the guild――"
"えっと、たしかギルドに――"
],
0,
0,
@ -2725,7 +2725,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\#■ About the Controls"
"\\#■操作について"
]
},
{
@ -2742,7 +2742,21 @@
"code": 401,
"indent": 0,
"parameters": [
"\\#[W] [A] [S] [D] ... Move the cursor [F] [Enter] ... Confirm [C] [V]\n... Cancel"
"\\#[W] [A] [S] [D]  …カーソルの移動"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"[F] [Enter]  …決定"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"[C] [V]    …キャンセル"
]
},
{
@ -2759,7 +2773,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\# You can also operate using the mouse in addition to the keyboard."
"\\#またキーボードの他にマウスでの操作もできます。"
]
},
{
@ -2776,7 +2790,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\#■ To enter the dungeon, first you need to register as an adventurer."
"\\#■ダンジョンに入るためにはまず冒険者の登録が必要です。"
]
},
{
@ -2793,7 +2807,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\#■ Let's complete the registration at the guild."
"\\#■ギルドで登録をすませましょう。"
]
},
{
@ -2857,7 +2871,7 @@
"code": 401,
"indent": 1,
"parameters": [
"\\# First, let's register as an adventurer at the guild."
"\\#まずはギルドで冒険者の登録をしてこよう。"
]
},
{
@ -2932,7 +2946,7 @@
"code": 401,
"indent": 1,
"parameters": [
"Tattattatta---"
"タッタッタッタ―――"
]
},
{
@ -3037,7 +3051,7 @@
"indent": 1,
"parameters": [
[
"Whoa!"
"どわ!"
],
0,
0,
@ -3124,7 +3138,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 Itsutsutsu..."
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"いつつつッ…"
]
},
{
@ -3141,7 +3162,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 Ah..."
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"あっ…"
]
},
{
@ -3199,7 +3227,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 I'm sorry...!"
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ごめーん…ッ!"
]
},
{
@ -3257,7 +3292,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 Are you okay?"
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"大丈夫ー?"
]
},
{
@ -3272,7 +3314,7 @@
"indent": 1,
"parameters": [
[
"Yes"
"はい"
],
0,
0,
@ -3353,7 +3395,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 I'm glad you're okay!"
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"よかったー!"
]
},
{
@ -3411,7 +3460,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 Jii...."
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"じっ…。"
]
},
{
@ -3426,7 +3482,7 @@
"indent": 1,
"parameters": [
[
"Huh?"
"ん?"
],
0,
0,
@ -3482,7 +3538,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 Yeah, it's nothing!"
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"うんん、なんでもない!"
]
},
{
@ -3508,7 +3571,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【???】 I feel like something like this has happened before!"
"【???】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"前にもこんなことがあった気がするなって!"
]
},
{
@ -3549,7 +3619,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【???】 Well then, I'm in a bit of a hurry! See you later!"
"【???】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"それじゃー、ちょっと急いでるから!"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"またね!"
]
},
{
@ -3598,7 +3682,7 @@
"indent": 1,
"parameters": [
[
"She left, what a noisy person"
"いってしまった。騒がしい人だな。"
],
0,
0,
@ -3701,7 +3785,7 @@
"code": 401,
"indent": 1,
"parameters": [
"\\# First, let's register as adventurers at the guild."
"\\#まずはギルドで冒険者の登録をしてこよう。"
]
},
{
@ -3731,7 +3815,7 @@
"code": 401,
"indent": 1,
"parameters": [
"\\# First, let's register as adventurers at the guild."
"\\#まずはギルドで冒険者の登録をしてこよう。"
]
},
{
@ -3761,7 +3845,7 @@
"code": 401,
"indent": 1,
"parameters": [
"\\# First, let's register as adventurers at the guild."
"\\#まずはギルドで冒険者の登録をしてこよう。"
]
},
{
@ -3914,7 +3998,7 @@
"code": 401,
"indent": 0,
"parameters": [
"\\#■Before exploring the dungeon, let's rent a room at the inn!"
"\\#■ダンジョン探索の前に宿で部屋を借りましょう!"
]
},
{
@ -4020,7 +4104,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【\\N[1]】 \\# Let's go to the inn."
"【\\N[1]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"\\#宿屋にいってみよう。"
]
},
{
@ -4050,7 +4141,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【\\N[1]】 \\# Let's go to the inn."
"【\\N[1]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"\\#宿屋にいってみよう。"
]
},
{
@ -4080,7 +4178,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【\\N[1]】 \\# Let's go to the inn."
"【\\N[1]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"\\#宿屋にいってみよう。"
]
},
{
@ -4110,7 +4215,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【\\N[1]】 \\# Let's go to the inn."
"【\\N[1]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"\\#宿屋にいってみよう。"
]
},
{
@ -4216,6 +4328,15 @@
"indent": 0,
"parameters": []
},
{
"code": 121,
"indent": 0,
"parameters": [
121,
121,
1
]
},
{
"code": 117,
"indent": 0,
@ -4643,7 +4764,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I really want to go to the dungeon right away, but as your\nsenior, let me explain a little bit!"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"早速ダンジョンにいきたいところだけど、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"先輩として少し説明しておくわ!"
]
},
{
@ -4667,7 +4802,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 The things you need for an adventure can be found at the\n\\c[18] item shop, so let's stop by there first."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"冒険で必要なものは\\c[18]道具屋\\c[0]で揃うから"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"まずは寄ってみることね。"
]
},
{
@ -4684,7 +4833,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Well, it's not exactly free, but at the training facility,\nyou can learn skills that will help you progress in your adventure."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"タダ、というわけではないんだけど、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"訓練所では冒険を有利に進められるスキルを教えてもらえるわ。"
]
},
{
@ -4701,7 +4864,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I think the guild explained about paying money, but besides\nthat, at the guild, you can also take on \\c[18] requests \\c[0]."
"【\\n[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"お金を納めることはギルドから説明があったと思うけど、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"それ以外にもギルドでは\\c[18]依頼\\c[0]を請けられるから"
]
},
{
@ -4718,7 +4895,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 It might be a good idea to stop by before going on an\nadventure. The requests change periodically, so let's check it out\nfrom time to time."
"【\\n[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"冒険前に寄ってみるといいかもね。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"依頼内容は定期的に変わるから、ちょくちょく覗いてみよう。"
]
},
{
@ -4735,7 +4926,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Oh, and also, in your room at the inn, there is a box \\C[0]\nwhere you can store \\C[18] items."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"あとそうね、宿の自室では\\C[18]アイテムを預けておける箱\\C[0]が"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"用意されているわ。"
]
},
{
@ -4752,7 +4957,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 It's essential to organize your items before heading to the\ndungeon! Don't forget, okay?"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ダンジョンに出かける前にアイテムの整理は基本よ!"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"忘れずにね!"
]
},
{
@ -4785,7 +5004,28 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Oh, right! Just having weapons and armor isn't enough! You\nneed to equip them, or else they won't have any effect, you know? Have\nyou double-checked?"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"あ、そうそう!武器や防具は持ってるだけじゃダメ!"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"装備しないと効果がないからね?"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ちゃんと確認した?"
]
},
{
@ -4802,7 +5042,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Well, I guess that's about it."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"まぁこんなとこかな。"
]
},
{
@ -4819,7 +5066,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Do you want to hear it again?"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"もう一度聞きたい?"
]
},
{
@ -4834,8 +5088,8 @@
"indent": 1,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -4865,7 +5119,21 @@
"code": 401,
"indent": 2,
"parameters": [
"【Monica】 Okay. Then, I'll explain it again!"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"おっけー。"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"じゃあもう一度説明するね!"
]
},
{
@ -4914,7 +5182,7 @@
"code": 401,
"indent": 2,
"parameters": [
"\\# About the Save"
"\\#セーブについて"
]
},
{
@ -4947,7 +5215,14 @@
"code": 401,
"indent": 2,
"parameters": [
"# About the Save The save can be done in your room at the inn or by\nfinding the Goddess Statue inside the dungeon."
"冒険のセーブは宿の自室もしくは、ダンジョン内で「女神像」"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"を見つけることで行うことができます。"
]
},
{
@ -4964,7 +5239,14 @@
"code": 401,
"indent": 2,
"parameters": [
"Also, when the progress of each floor of the dungeon reaches 40%, it\nwill be automatically saved in Save Slot 1."
"また、ダンジョンの各階層の進行度40%時に自動で"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"セーブスロット1にセーブされます。"
]
},
{
@ -5005,7 +5287,21 @@
"code": 401,
"indent": 2,
"parameters": [
"【Monica】 Alright. Then, let's first try accepting a request at the\nguild!"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"おっけー。"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"それじゃ、まずギルドで依頼うけてみよっか!"
]
},
{
@ -5244,7 +5540,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Where should we go?"
"どこにいこう?"
]
},
{
@ -5363,7 +5659,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 First, let's try accepting a request at the guild!"
"【モニカ】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"まずはギルドで依頼請けてみようよ!"
]
},
{
@ -5548,7 +5851,14 @@
"code": 401,
"indent": 4,
"parameters": [
"The gate from the previous return seems to still be intact. Would you\nlike to use it? (You will start from the floor where you last\nreturned)"
"前回帰還時のゲートが残っているようだ。"
]
},
{
"code": 401,
"indent": 4,
"parameters": [
"使用しますか?(前回帰還時の階層から始まります)"
]
},
{
@ -5556,8 +5866,8 @@
"indent": 4,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -5794,9 +6104,9 @@
"indent": 2,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -5809,7 +6119,7 @@
"indent": 2,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -6073,7 +6383,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 Wouldn't it be better to go to the dungeon while we're still\nin the mood?"
"【モニカ】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"いまのノッた気分のままダンジョン行った方が良くない?"
]
},
{
@ -6106,7 +6423,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 Ah, it's not like I hate it or anything, okay?"
"【モニカ】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"あ、ぜんぜん嫌とかじゃないよ?"
]
},
{
@ -6212,7 +6536,14 @@
"code": 401,
"indent": 4,
"parameters": [
"\\# ■ Required Conditions: Affection Level 20 or higher, Possessing\n5000G or more."
"\\#■必要条件 好感度20以上"
]
},
{
"code": 401,
"indent": 4,
"parameters": [
"      所持金5000G以上"
]
},
{
@ -6261,7 +6592,14 @@
"code": 401,
"indent": 3,
"parameters": [
"\\#■ Required Conditions: Affection Level 20 or higher, Possessing\n5000G or more."
"\\#■必要条件 好感度20以上"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"      所持金5000G以上"
]
},
{
@ -6385,7 +6723,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 First, let's try accepting a request at the guild!"
"【モニカ】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"まずはギルドで依頼請けてみようよ!"
]
},
{
@ -6570,7 +6915,14 @@
"code": 401,
"indent": 4,
"parameters": [
"The gate from the previous return seems to still be intact. Would you\nlike to use it? (You will start from the floor where you last\nreturned)"
"前回帰還時のゲートが残っているようだ。"
]
},
{
"code": 401,
"indent": 4,
"parameters": [
"使用しますか?(前回帰還時の階層から始まります)"
]
},
{
@ -6578,8 +6930,8 @@
"indent": 4,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -6816,9 +7168,9 @@
"indent": 2,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -6831,7 +7183,7 @@
"indent": 2,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -7664,14 +8016,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -7722,14 +8074,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -7790,14 +8142,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{

View file

@ -2682,7 +2682,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Before exploring the dungeon, let's rent a room at the inn!"
"ダンジョン探索の前に宿で部屋を借りましょう!"
]
},
{
@ -2697,12 +2697,12 @@
"indent": 0,
"parameters": [
[
"Inn",
"Guild Hall",
"Item Shop",
"Dungeon",
"Dungeon2",
"Menu"
"宿屋",
"ギルドホール",
"道具屋",
"ダンジョン",
"ダンジョン2",
"メニュー"
],
1,
0,
@ -2785,7 +2785,7 @@
"code": 401,
"indent": 1,
"parameters": [
"Let's go to the inn."
"宿屋にいってみよう"
]
},
{
@ -2815,7 +2815,7 @@
"code": 401,
"indent": 1,
"parameters": [
"Let's go to the inn."
"宿屋にいってみよう"
]
},
{
@ -2845,7 +2845,7 @@
"code": 401,
"indent": 1,
"parameters": [
"Let's go to the inn."
"宿屋にいってみよう"
]
},
{
@ -2875,7 +2875,7 @@
"code": 401,
"indent": 1,
"parameters": [
"Let's go to the inn."
"宿屋にいってみよう"
]
},
{
@ -3143,6 +3143,25 @@
{
"code": 111,
"indent": 1,
"parameters": [
0,
25,
0
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 411,
"indent": 1,
"parameters": []
},
{
"code": 111,
"indent": 2,
"parameters": [
0,
175,
@ -3151,7 +3170,7 @@
},
{
"code": 111,
"indent": 2,
"indent": 3,
"parameters": [
7,
70000,
@ -3160,18 +3179,28 @@
},
{
"code": 117,
"indent": 3,
"indent": 4,
"parameters": [
287
]
},
{
"code": 119,
"indent": 3,
"indent": 4,
"parameters": [
"モニカセリフスキップ"
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 412,
"indent": 3,
"parameters": []
},
{
"code": 0,
"indent": 3,
@ -3261,7 +3290,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I'm tired~~... I can't move anymore. Let's quickly go back to\nthe inn and rest."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"つかれた~~・・・。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"もう動けないよ。早く宿に戻って休もう。"
]
},
{
@ -3333,7 +3376,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Where should we go?"
"どこにいこう?"
]
},
{
@ -3350,7 +3393,7 @@
1,
16,
0,
4,
14,
0
]
},
@ -3362,20 +3405,10 @@
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 411,
"indent": 0,
"parameters": []
},
{
"code": 117,
"code": 119,
"indent": 1,
"parameters": [
174
"選択肢"
]
},
{
@ -3395,7 +3428,7 @@
1,
16,
0,
6,
12,
0
]
},
@ -3407,20 +3440,10 @@
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 411,
"indent": 0,
"parameters": []
},
{
"code": 117,
"code": 119,
"indent": 1,
"parameters": [
174
"選択肢"
]
},
{
@ -3452,20 +3475,10 @@
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 411,
"indent": 0,
"parameters": []
},
{
"code": 117,
"code": 119,
"indent": 1,
"parameters": [
174
"選択肢"
]
},
{
@ -3478,6 +3491,301 @@
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
16,
0,
6,
0
]
},
{
"code": 117,
"indent": 1,
"parameters": [
175
]
},
{
"code": 119,
"indent": 1,
"parameters": [
"選択肢"
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
16,
0,
4,
0
]
},
{
"code": 117,
"indent": 1,
"parameters": [
175
]
},
{
"code": 119,
"indent": 1,
"parameters": [
"選択肢"
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 0,
"parameters": [
174
]
},
{
"code": 119,
"indent": 0,
"parameters": [
"選択肢"
]
},
{
"code": 0,
"indent": 0,
"parameters": []
}
],
"moveFrequency": 3,
"moveRoute": {
"list": [
{
"code": 0,
"parameters": []
}
],
"repeat": true,
"skippable": false,
"wait": false
},
"moveSpeed": 3,
"moveType": 0,
"priorityType": 0,
"stepAnime": false,
"through": false,
"trigger": 4,
"walkAnime": true
},
{
"conditions": {
"actorId": 4,
"actorValid": false,
"itemId": 1,
"itemValid": false,
"selfSwitchCh": "B",
"selfSwitchValid": false,
"switch1Id": 200,
"switch1Valid": true,
"switch2Id": 82,
"switch2Valid": true,
"variableId": 1,
"variableValid": false,
"variableValue": 0
},
"directionFix": false,
"image": {
"characterIndex": 0,
"characterName": "",
"direction": 2,
"pattern": 0,
"tileId": 0
},
"list": [
{
"code": 356,
"indent": 0,
"parameters": [
"GDM_UNLOCK_CHOICE_WINDOW"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
178
]
},
{
"code": 111,
"indent": 0,
"parameters": [
0,
60,
0
]
},
{
"code": 119,
"indent": 1,
"parameters": [
"イベント回避"
]
},
{
"code": 108,
"indent": 1,
"parameters": [
"裏道から戻ってきたときも夕方から夜の画像差し込まれるのでそれの回避"
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 356,
"indent": 0,
"parameters": [
"Skittle visible false"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
171
]
},
{
"code": 118,
"indent": 0,
"parameters": [
"イベント回避"
]
},
{
"code": 121,
"indent": 0,
"parameters": [
60,
60,
1
]
},
{
"code": 241,
"indent": 0,
"parameters": [
{
"name": "sorrow_loop",
"volume": 90,
"pitch": 100,
"pan": 0
}
]
},
{
"code": 111,
"indent": 0,
"parameters": [
0,
137,
1
]
},
{
"code": 111,
"indent": 1,
"parameters": [
0,
47,
0
]
},
{
"code": 121,
"indent": 2,
"parameters": [
137,
137,
0
]
},
{
"code": 117,
"indent": 2,
"parameters": [
177
]
},
{
"code": 201,
"indent": 2,
"parameters": [
0,
15,
13,
0,
0,
2
]
},
{
"code": 115,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
@ -3486,6 +3794,263 @@
16,
0,
10,
1
]
},
{
"code": 111,
"indent": 1,
"parameters": [
0,
25,
0
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 411,
"indent": 1,
"parameters": []
},
{
"code": 111,
"indent": 2,
"parameters": [
0,
175,
0
]
},
{
"code": 111,
"indent": 3,
"parameters": [
7,
70000,
2
]
},
{
"code": 117,
"indent": 4,
"parameters": [
287
]
},
{
"code": 119,
"indent": 4,
"parameters": [
"モニカセリフスキップ"
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 412,
"indent": 3,
"parameters": []
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
0,
0,
4
]
},
{
"code": 231,
"indent": 1,
"parameters": [
85,
"chara_1_6",
0,
0,
300,
80,
80,
80,
0,
0
]
},
{
"code": 232,
"indent": 1,
"parameters": [
85,
0,
0,
0,
300,
80,
80,
80,
255,
0,
15,
true
]
},
{
"code": 101,
"indent": 1,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"つかれた~~・・・。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"もう動けないよ。早く宿に戻って休もう。"
]
},
{
"code": 118,
"indent": 1,
"parameters": [
"モニカセリフスキップ"
]
},
{
"code": 355,
"indent": 1,
"parameters": [
"SceneManager._scene._spriteset._fadeSprite.setColor(162, 218, 246);"
]
},
{
"code": 221,
"indent": 1,
"parameters": []
},
{
"code": 235,
"indent": 1,
"parameters": [
85
]
},
{
"code": 117,
"indent": 1,
"parameters": [
177
]
},
{
"code": 201,
"indent": 1,
"parameters": [
0,
1,
16,
0,
0,
2
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 101,
"indent": 0,
"parameters": [
"",
0,
0,
2
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"どこにいこう?"
]
},
{
"code": 118,
"indent": 0,
"parameters": [
"選択肢"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
16,
0,
14,
0
]
},
@ -3575,7 +4140,97 @@
1,
16,
0,
14,
8,
0
]
},
{
"code": 117,
"indent": 1,
"parameters": [
175
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 411,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 1,
"parameters": [
174
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
16,
0,
6,
0
]
},
{
"code": 117,
"indent": 1,
"parameters": [
175
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 411,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 1,
"parameters": [
174
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
16,
0,
4,
0
]
},
@ -3813,14 +4468,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -3871,14 +4526,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -3939,14 +4594,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{

View file

@ -2184,6 +2184,38 @@
"GDM_UNLOCK_CHOICE_WINDOW"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
1,
5,
1
]
},
{
"code": 122,
"indent": 1,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 0,
@ -2252,6 +2284,13 @@
"自室選択肢"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
586
]
},
{
"code": 251,
"indent": 0,
@ -2391,7 +2430,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Fuwaa~... Mmm~~~!"
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ふわぁ~… ん~~~~!"
]
},
{
@ -2460,7 +2506,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Ouch! My head... Ooohhhh..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"っつ!頭いた…うぅぅ"
]
},
{
@ -2477,7 +2530,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 (My head hurts and I feel like I had a really nauseating\ndream...)"
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"(頭痛いし、な~んかめっちゃ気持ち悪い夢を"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"みたような気がするな~…)"
]
},
{
@ -2549,10 +2616,10 @@
"indent": 0,
"parameters": [
[
"Rest",
"Organizing items",
"Check the notebook",
"Rethink my skills"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす"
],
-2,
0,
@ -2640,7 +2707,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# Today is payday! Let's head to the guild!"
"\\#今日はお金の支払日!ギルドに向かおう!"
]
},
{
@ -2708,7 +2775,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# I rested well, so I'm fine!"
"\\#しっかり休んだので大丈夫!"
]
},
{
@ -2735,7 +2802,7 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 If we just let the day pass without doing anything, it will\nbe wasted. Should we take a break?"
"なにもせず1日経ってしまいます。休みますか"
]
},
{
@ -2743,8 +2810,8 @@
"indent": 3,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -3037,14 +3104,14 @@
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -3125,9 +3192,9 @@
"indent": 1,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -3140,7 +3207,7 @@
"indent": 1,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -3228,9 +3295,9 @@
"indent": 0,
"parameters": [
[
"Open the menu",
"Let's save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋を出る"
],
2,
-1,
@ -3381,6 +3448,38 @@
"GDM_UNLOCK_CHOICE_WINDOW"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
1,
5,
1
]
},
{
"code": 122,
"indent": 1,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 0,
@ -3449,6 +3548,13 @@
"自室選択肢"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
586
]
},
{
"code": 251,
"indent": 0,
@ -3588,7 +3694,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Fuwaa~... Mmm~~~!"
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ふわぁ~… ん~~~~!"
]
},
{
@ -3657,7 +3770,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Ouch! My head... Ooohhhh..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"っつ!頭いた…うぅぅ"
]
},
{
@ -3674,7 +3794,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 (My head hurts and I feel like I had a really nauseating\ndream...)"
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"(頭痛いし、な~んかめっちゃ気持ち悪い夢を"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"みたような気がするな~…)"
]
},
{
@ -3746,10 +3880,10 @@
"indent": 0,
"parameters": [
[
"Rest",
"Organizing items",
"Check the notebook",
"Rethink my skills"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす"
],
-2,
0,
@ -3837,7 +3971,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# Today is payday! Let's head to the guild!"
"\\#今日はお金の支払日!ギルドに向かおう!"
]
},
{
@ -3905,7 +4039,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# I rested well, so I'm fine!"
"\\#しっかり休んだので大丈夫!"
]
},
{
@ -3932,7 +4066,7 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 If we just let the day pass without doing anything, it will\nbe wasted. Should we take a break?"
"なにもせず1日経ってしまいます。休みますか"
]
},
{
@ -3940,8 +4074,8 @@
"indent": 3,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -4229,14 +4363,14 @@
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -4317,9 +4451,9 @@
"indent": 1,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -4332,7 +4466,7 @@
"indent": 1,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -4420,7 +4554,7 @@
"indent": 0,
"parameters": [
[
"Let's watch a flashback"
"回想を見る"
],
-1,
0,
@ -4463,9 +4597,9 @@
"indent": 0,
"parameters": [
[
"Open the menu",
"Let's save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋を出る"
],
2,
-1,
@ -4874,6 +5008,38 @@
"tileId": 0
},
"list": [
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
1,
5,
1
]
},
{
"code": 122,
"indent": 1,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 0,
"indent": 0,
@ -4897,7 +5063,7 @@
"priorityType": 0,
"stepAnime": false,
"through": false,
"trigger": 0,
"trigger": 4,
"walkAnime": true
}
],
@ -5253,14 +5419,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -5311,14 +5477,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -5379,14 +5545,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -5638,7 +5804,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -5671,7 +5837,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{

View file

@ -2184,6 +2184,38 @@
"GDM_UNLOCK_CHOICE_WINDOW"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
1,
5,
1
]
},
{
"code": 122,
"indent": 1,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 0,
@ -2252,6 +2284,13 @@
"自宅選択肢"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
586
]
},
{
"code": 251,
"indent": 0,
@ -2327,10 +2366,10 @@
"indent": 0,
"parameters": [
[
"Rest",
"Organize items",
"View notebook",
"Review skills"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす"
],
4,
0,
@ -2418,7 +2457,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# Today is payday! Let's head to the association!"
"\\#今日はお金の支払日!協会に向かおう!"
]
},
{
@ -2486,7 +2525,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# I rested well, so I'm fine!"
"\\#しっかり休んだので大丈夫!"
]
},
{
@ -2513,7 +2552,7 @@
"code": 401,
"indent": 3,
"parameters": [
"I will spend the day doing nothing and it will pass. Will you take a\nbreak?"
"なにもせず1日経ってしまいます。休みますか"
]
},
{
@ -2521,8 +2560,8 @@
"indent": 3,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -2817,14 +2856,14 @@
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -2905,9 +2944,9 @@
"indent": 1,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -2920,7 +2959,7 @@
"indent": 1,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -2995,9 +3034,9 @@
"indent": 0,
"parameters": [
[
"Open menu",
"Save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋をでる"
],
-1,
-1,
@ -3148,6 +3187,38 @@
"GDM_UNLOCK_CHOICE_WINDOW"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
1,
5,
1
]
},
{
"code": 122,
"indent": 1,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 0,
@ -3216,6 +3287,13 @@
"自宅選択肢"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
586
]
},
{
"code": 251,
"indent": 0,
@ -3291,10 +3369,10 @@
"indent": 0,
"parameters": [
[
"Rest",
"Organize items",
"View notebook",
"Review skills"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす"
],
4,
0,
@ -3382,7 +3460,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# Today is payday! Let's head to the association!"
"\\#今日はお金の支払日!協会に向かおう!"
]
},
{
@ -3450,7 +3528,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\# I rested well, so I'm fine!"
"\\#しっかり休んだので大丈夫!"
]
},
{
@ -3477,7 +3555,7 @@
"code": 401,
"indent": 3,
"parameters": [
"I will spend the day doing nothing and it will pass. Will you take a\nbreak?"
"なにもせず1日経ってしまいます。休みますか"
]
},
{
@ -3485,8 +3563,8 @@
"indent": 3,
"parameters": [
[
"Yes",
"No"
"はい",
"いいえ"
],
1,
0,
@ -3781,14 +3859,14 @@
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -3869,9 +3947,9 @@
"indent": 1,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -3884,7 +3962,7 @@
"indent": 1,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -3959,7 +4037,7 @@
"indent": 0,
"parameters": [
[
"View flashback"
"回想を見る"
],
-1,
0,
@ -4002,9 +4080,9 @@
"indent": 0,
"parameters": [
[
"Open menu",
"Save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋をでる"
],
2,
-1,
@ -4211,7 +4289,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -4244,7 +4322,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -4670,14 +4748,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -4728,14 +4806,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -4796,14 +4874,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{

View file

@ -2225,7 +2225,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Staff Old Man】 Yes, I definitely received it."
"【職員のおっさん】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"はい、たしかに受け取りました。"
]
},
{
@ -2421,7 +2428,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Monica】 Congratulations!!"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\{おめでとうーーッ!!"
]
},
{
@ -2472,7 +2486,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Monica】 With this, \\N[1] is now a full-fledged adventurer!"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"これで\\N[1]も一人前の冒険者だね!"
]
},
{
@ -2507,7 +2528,21 @@
"code": 401,
"indent": 0,
"parameters": [
"【Monica】 That's right! We have to go back to the inn and celebrate!"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"そうだ!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"宿にもどってお祝いしなきゃね!"
]
},
{
@ -2558,7 +2593,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Monica】 Are we going to the dungeon again today?"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"今日もダンジョンに行くって?"
]
},
{
@ -2593,7 +2635,21 @@
"code": 401,
"indent": 0,
"parameters": [
"【Monica】 Let's take a break today! Come on, let's go!"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"今日くらい休もうよ!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"ほら、いこいこっ!"
]
},
{
@ -2664,7 +2720,21 @@
"code": 401,
"indent": 0,
"parameters": [
" 【Monica】 \\C[21] Normal Ending \\C[7] A Full-Fledged Adventurer"
""
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\{ \\C[21] ノーマルエンド"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\}\\C[7]        一人前の冒険者"
]
},
{
@ -2681,7 +2751,14 @@
"code": 401,
"indent": 0,
"parameters": [
" 【Monica】 The end."
""
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\{     おしまい。"
]
},
{

View file

@ -2184,6 +2184,38 @@
"GDM_UNLOCK_CHOICE_WINDOW"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
1,
5,
1
]
},
{
"code": 122,
"indent": 1,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 117,
"indent": 0,
@ -2191,6 +2223,26 @@
178
]
},
{
"code": 313,
"indent": 0,
"parameters": [
0,
0,
1,
10
]
},
{
"code": 313,
"indent": 0,
"parameters": [
0,
0,
1,
66
]
},
{
"code": 111,
"indent": 0,
@ -2249,6 +2301,13 @@
"自宅選択肢"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
586
]
},
{
"code": 313,
"indent": 0,
@ -2342,6 +2401,15 @@
1
]
},
{
"code": 121,
"indent": 1,
"parameters": [
307,
307,
1
]
},
{
"code": 121,
"indent": 1,
@ -2507,11 +2575,11 @@
"indent": 1,
"parameters": [
[
"Rest",
"Organize items",
"View notebook",
"Review skills",
"Engage in sexual activity with Monica"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす",
"モニカとえっちする"
],
5,
0,
@ -2833,6 +2901,15 @@
1
]
},
{
"code": 121,
"indent": 4,
"parameters": [
307,
307,
1
]
},
{
"code": 121,
"indent": 4,
@ -3134,7 +3211,7 @@
"code": 401,
"indent": 4,
"parameters": [
"\\#■Today is payday! Let's head to the association!"
"\\#■今日はお金の支払日!協会に向かおう!"
]
},
{
@ -3193,7 +3270,7 @@
"code": 401,
"indent": 4,
"parameters": [
"\\#■I rested well, so I'm fine!"
"\\#■しっかり休んだので大丈夫!"
]
},
{
@ -3346,6 +3423,15 @@
"indent": 4,
"parameters": []
},
{
"code": 121,
"indent": 4,
"parameters": [
121,
121,
1
]
},
{
"code": 122,
"indent": 4,
@ -3386,6 +3472,15 @@
1
]
},
{
"code": 121,
"indent": 4,
"parameters": [
422,
422,
1
]
},
{
"code": 313,
"indent": 4,
@ -3534,14 +3629,14 @@
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -3622,9 +3717,9 @@
"indent": 2,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -3637,7 +3732,7 @@
"indent": 2,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -3724,7 +3819,7 @@
"indent": 3,
"parameters": [
[
"You're slow Looks like you're still not in the room"
"遅いな…。まだ部屋にはいないみたいだ。"
],
0,
0,
@ -3781,7 +3876,7 @@
"indent": 3,
"parameters": [
[
"Let's not push ourselves too hard"
"無理させるのはやめよう。"
],
0,
0,
@ -3838,7 +3933,7 @@
"indent": 3,
"parameters": [
[
"I could tell you were tired, so let's not push ourselves too hard"
"疲れてそうだったし、無理させるのはやめよう。"
],
0,
0,
@ -3897,7 +3992,7 @@
"indent": 3,
"parameters": [
[
"I'm really tired today…"
"今日はさすがに疲れたな…"
],
0,
0,
@ -4074,7 +4169,14 @@
"code": 401,
"indent": 2,
"parameters": [
"[Monica] Huh? \\N[1], what's wrong?"
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"ん?\\n[1]、どした?"
]
},
{
@ -4107,7 +4209,14 @@
"code": 401,
"indent": 2,
"parameters": [
"[Monica] Ah..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"あ…っ。"
]
},
{
@ -4148,7 +4257,14 @@
"code": 401,
"indent": 2,
"parameters": [
"[Monica] ...Yeah."
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"…うん。"
]
},
{
@ -4185,9 +4301,9 @@
"indent": 1,
"parameters": [
[
"Open menu",
"Save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋を出る"
],
-2,
-1,
@ -4253,7 +4369,7 @@
"indent": 3,
"parameters": [
[
"Let's rest for today"
"今日はもう休もう。"
],
0,
0,
@ -4353,10 +4469,10 @@
"indent": 1,
"parameters": [
[
"Rest",
"Organize items",
"View notebook",
"Review skills"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす"
],
4,
0,
@ -4771,7 +4887,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\#■Today is payday! Let's head to the association!"
"\\#■今日はお金の支払日!協会に向かおう!"
]
},
{
@ -4820,7 +4936,7 @@
"code": 401,
"indent": 4,
"parameters": [
"\\#■I rested well, so I'm fine!"
"\\#■しっかり休んだので大丈夫!"
]
},
{
@ -4942,6 +5058,15 @@
"indent": 4,
"parameters": []
},
{
"code": 121,
"indent": 4,
"parameters": [
121,
121,
1
]
},
{
"code": 122,
"indent": 4,
@ -4982,6 +5107,15 @@
1
]
},
{
"code": 121,
"indent": 4,
"parameters": [
422,
422,
1
]
},
{
"code": 313,
"indent": 4,
@ -5015,6 +5149,26 @@
999
]
},
{
"code": 313,
"indent": 4,
"parameters": [
0,
0,
1,
10
]
},
{
"code": 313,
"indent": 4,
"parameters": [
0,
0,
1,
66
]
},
{
"code": 313,
"indent": 4,
@ -5110,14 +5264,14 @@
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -5311,9 +5465,9 @@
"indent": 2,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -5326,7 +5480,7 @@
"indent": 2,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -5401,9 +5555,9 @@
"indent": 1,
"parameters": [
[
"Open menu",
"Save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋をでる"
],
-2,
-1,
@ -5467,7 +5621,7 @@
"indent": 2,
"parameters": [
[
"I'll rest for today"
"(今日はもう休もう)"
],
0,
0,
@ -5584,6 +5738,58 @@
"GDM_UNLOCK_CHOICE_WINDOW"
]
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
4,
1,
5,
1
]
},
{
"code": 122,
"indent": 1,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 313,
"indent": 0,
"parameters": [
0,
0,
1,
10
]
},
{
"code": 313,
"indent": 0,
"parameters": [
0,
0,
1,
66
]
},
{
"code": 117,
"indent": 0,
@ -5649,6 +5855,13 @@
"自宅選択肢"
]
},
{
"code": 117,
"indent": 0,
"parameters": [
586
]
},
{
"code": 313,
"indent": 0,
@ -5742,6 +5955,15 @@
1
]
},
{
"code": 121,
"indent": 1,
"parameters": [
307,
307,
1
]
},
{
"code": 121,
"indent": 1,
@ -5907,11 +6129,11 @@
"indent": 1,
"parameters": [
[
"Rest",
"Organize items",
"View notebook",
"Review skills",
"Engage in sexual activity with Monica"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす",
"モニカとえっちする"
],
5,
0,
@ -6233,6 +6455,15 @@
1
]
},
{
"code": 121,
"indent": 4,
"parameters": [
307,
307,
1
]
},
{
"code": 121,
"indent": 4,
@ -6534,7 +6765,7 @@
"code": 401,
"indent": 4,
"parameters": [
"\\#■Today is payday! Let's head to the association!"
"\\#■今日はお金の支払日!協会に向かおう!"
]
},
{
@ -6593,7 +6824,7 @@
"code": 401,
"indent": 4,
"parameters": [
"\\# I rested well, so I'm fine!"
"\\#■しっかり休んだので大丈夫!"
]
},
{
@ -6746,6 +6977,15 @@
"indent": 4,
"parameters": []
},
{
"code": 121,
"indent": 4,
"parameters": [
121,
121,
1
]
},
{
"code": 122,
"indent": 4,
@ -6786,6 +7026,15 @@
1
]
},
{
"code": 121,
"indent": 4,
"parameters": [
422,
422,
1
]
},
{
"code": 313,
"indent": 4,
@ -6934,14 +7183,14 @@
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -7022,9 +7271,9 @@
"indent": 2,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -7037,7 +7286,7 @@
"indent": 2,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -7124,7 +7373,7 @@
"indent": 3,
"parameters": [
[
"You're slow Looks like you're still not in the room"
"遅いな…。まだ部屋にはいないみたいだ。"
],
0,
0,
@ -7181,7 +7430,7 @@
"indent": 3,
"parameters": [
[
"Let's not push ourselves too hard"
"無理させるのはやめよう。"
],
0,
0,
@ -7238,7 +7487,7 @@
"indent": 3,
"parameters": [
[
"Let's not push you too hard since you seemed tired"
"疲れてそうだったし、無理させるのはやめよう。"
],
0,
0,
@ -7297,7 +7546,7 @@
"indent": 3,
"parameters": [
[
"I'm really tired today…"
"今日はさすがに疲れたな…"
],
0,
0,
@ -7474,7 +7723,14 @@
"code": 401,
"indent": 2,
"parameters": [
"[Monica] Huh? \\N[1], what's wrong?"
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"ん?\\n[1]、どした?"
]
},
{
@ -7507,7 +7763,14 @@
"code": 401,
"indent": 2,
"parameters": [
"[Monica] Ah..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"あ…っ。"
]
},
{
@ -7548,7 +7811,14 @@
"code": 401,
"indent": 2,
"parameters": [
"[Monica] ...Yeah."
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"…うん。"
]
},
{
@ -7590,7 +7860,7 @@
"indent": 1,
"parameters": [
[
"View flashback"
"回想を見る"
],
-1,
0,
@ -7635,9 +7905,9 @@
"indent": 1,
"parameters": [
[
"Open menu",
"Save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋を出る"
],
-2,
-1,
@ -7703,7 +7973,7 @@
"indent": 3,
"parameters": [
[
"Let's rest for today"
"今日はもう休もう。"
],
0,
0,
@ -7803,10 +8073,10 @@
"indent": 1,
"parameters": [
[
"Rest",
"Organize items",
"View notebook",
"Review skills"
"やすむ",
"アイテムの整理",
"手帳を見る",
"スキルをみなおす"
],
4,
0,
@ -8221,7 +8491,7 @@
"code": 401,
"indent": 3,
"parameters": [
"\\#■Today is payday! Let's head to the association!"
"\\#■今日はお金の支払日!協会に向かおう!"
]
},
{
@ -8270,7 +8540,7 @@
"code": 401,
"indent": 4,
"parameters": [
"\\# I rested well, so I'm fine!"
"\\#■しっかり休んだので大丈夫!"
]
},
{
@ -8392,6 +8662,15 @@
"indent": 4,
"parameters": []
},
{
"code": 121,
"indent": 4,
"parameters": [
121,
121,
1
]
},
{
"code": 122,
"indent": 4,
@ -8432,6 +8711,15 @@
1
]
},
{
"code": 121,
"indent": 4,
"parameters": [
422,
422,
1
]
},
{
"code": 313,
"indent": 4,
@ -8465,6 +8753,26 @@
999
]
},
{
"code": 313,
"indent": 4,
"parameters": [
0,
0,
1,
10
]
},
{
"code": 313,
"indent": 4,
"parameters": [
0,
0,
1,
66
]
},
{
"code": 313,
"indent": 4,
@ -8560,14 +8868,14 @@
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse create <Item BOX:60>"
"PHWarehouse create <アイテムBOX:120>"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PHWarehouse show <Item BOX>"
"PHWarehouse show <アイテムBOX>"
]
},
{
@ -8761,9 +9069,9 @@
"indent": 2,
"parameters": [
[
"\\N[1]",
"Monica",
"Cancel"
"\\n[1]",
"モニカ",
"キャンセル"
],
2,
0,
@ -8776,7 +9084,7 @@
"indent": 2,
"parameters": [
0,
"\\N[1]"
"\\n[1]"
]
},
{
@ -8851,7 +9159,7 @@
"indent": 1,
"parameters": [
[
"View flashback"
"回想を見る"
],
-1,
0,
@ -8894,9 +9202,9 @@
"indent": 1,
"parameters": [
[
"Open menu",
"Save",
"Leave the room"
"メニューを開く",
"セーブをする",
"部屋をでる"
],
-2,
-1,
@ -8960,7 +9268,7 @@
"indent": 2,
"parameters": [
[
"Let's rest for today"
"(今日はもう休もう)"
],
0,
0,
@ -9505,14 +9813,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -9563,14 +9871,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -9631,14 +9939,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -10193,7 +10501,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -10226,7 +10534,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{

File diff suppressed because it is too large Load diff

View file

@ -3281,7 +3281,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Will you proceed?"
"次に進みますか?"
]
},
{
@ -3857,7 +3857,14 @@
"code": 401,
"indent": 0,
"parameters": [
"\\N[1], who was saved by chance by a passing adventurer party, was\ncarried all the way to the town."
"たまたま通りがかった冒険者のパーティに助けられた"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"\\N[1]はそのまま町まで運んでもらい、"
]
},
{
@ -3874,7 +3881,7 @@
"code": 401,
"indent": 0,
"parameters": [
"I slept for a whole day as if I had fainted."
"気絶したように一日眠り込んだ。"
]
},
{
@ -4031,7 +4038,14 @@
"code": 401,
"indent": 0,
"parameters": [
"[Innkeeper] Have you noticed?"
"【宿屋のおっさん】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"お気づきになられましたか。"
]
},
{
@ -4048,7 +4062,14 @@
"code": 401,
"indent": 0,
"parameters": [
"[Innkeeper] Good, please be careful."
"【宿屋のおっさん】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"よかった、気をつけてくださいね。"
]
},
{
@ -4216,7 +4237,21 @@
"code": 401,
"indent": 0,
"parameters": [
"【Innkeeper】 Welcome back! I've prepared a meal for you!"
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"おう、おかえり!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"飯用意してあるぞ!"
]
},
{
@ -4278,7 +4313,28 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Thank you~ Hmm, even though I'm hungry, I just want to lie\ndown. Maybe I should endure it."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ありがとう~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"んー、おなかも減ってるけど、もう横になりたいし、"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"我慢しようかな。"
]
},
{
@ -4295,7 +4351,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I'm really tired, as expected."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"さすがに疲れたわ。"
]
},
{
@ -4312,7 +4375,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Ah, just give me some water, please."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"あ、お水だけちょうだい。"
]
},
{
@ -4329,7 +4399,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Innkeeper】 Hold on a sec."
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"おう、ちょっと待ってな。"
]
},
{
@ -4399,7 +4476,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Innkeeper】 Here you go, sorry for the wait."
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"はいよ、おまたせ。"
]
},
{
@ -4416,7 +4500,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 Thank you."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ありがとう。"
]
},
{
@ -4433,7 +4524,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 *Gulp gulp gulp* ... *sigh*"
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ゴクゴクゴク..."
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"・・・フゥ。"
]
},
{
@ -4450,7 +4555,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I suddenly feel sleepy. Well then, goodnight~."
"【\\N[2]】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"なんか急に眠くなってきた。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"それじゃあおやすみ~。"
]
},
{
@ -4519,7 +4638,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Innkeeper】 Here you go, please take your time."
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"ほいよ、ごゆっくり。"
]
},
{
@ -4536,7 +4662,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Innkeeper】 ..."
"【宿屋のおやじ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"・・・"
]
},
{
@ -4570,9 +4703,9 @@
"indent": 0,
"parameters": [
[
"Go to my room",
"Ask the customer for their story",
"Leave the inn"
"自室へ",
"客に話を聞く",
"宿屋を去る"
],
1,
0,
@ -4669,7 +4802,7 @@
"code": 401,
"indent": 1,
"parameters": [
"Thank you very much."
"ありがとうございました。"
]
},
{

File diff suppressed because it is too large Load diff

View file

@ -2219,7 +2219,7 @@
"code": 401,
"indent": 0,
"parameters": [
"When I entered the back alley, there was an old woman sitting by the\nside of the road all alone."
"路地裏に入るとポツンと老婆が道の傍らに座っている。"
]
},
{
@ -2270,7 +2270,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Mysterious Old Woman】 .........."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"………。"
]
},
{
@ -2287,7 +2294,7 @@
"code": 401,
"indent": 0,
"parameters": [
"【Mysterious Old Woman】 It seems like the taciturn old woman is selling\nsomething."
"寡黙な老婆は何かを売っているようだ。"
]
},
{
@ -2302,9 +2309,9 @@
"indent": 0,
"parameters": [
[
"Engage in conversation",
"I want to see the merchandise",
"Leave"
"会話をする",
"商品をみたい",
"立ち去る"
],
2,
0,
@ -2357,7 +2364,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Mysterious Old Woman】 Whether it's expensive or cheap, it depends on\nthe customer's thoughts."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"高いか安いかは、お客様のお考え次第でございます。"
]
},
{
@ -2395,7 +2409,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Mysterious Old Woman】 How you use the product depends on the\ncustomer's thoughts."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"商品をどう使うかはお客様のお考え次第でございます。"
]
},
{
@ -2433,7 +2454,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Mysterious Old Woman】 .........."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"………。"
]
},
{
@ -2715,7 +2743,7 @@
"indent": 3,
"parameters": [
[
"I bought it on a whim, but what is this?"
"なんとなく買っちゃったけど、これは?"
],
0,
0,
@ -2762,7 +2790,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Mysterious Old Woman】 .........."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"………。"
]
},
{
@ -2779,7 +2814,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Mysterious Old Woman】 This is the item necessary to fulfill your\ncompanion's objective."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"お連れ様の目的を果たすために必要なアイテムでございます。"
]
},
{
@ -2865,7 +2907,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 My objective? The makeup box of happiness...?"
"【モニカ】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"わたしの目的?幸せの化粧箱…?"
]
},
{
@ -2882,7 +2931,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Mysterious Old Woman】 You will understand when the time comes."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"その時がくればわかることでございます。"
]
},
{
@ -2924,7 +2980,7 @@
"code": 401,
"indent": 3,
"parameters": [
"■I obtained the yellow orb."
"■イエローオーブを手に入れた。"
]
},
{
@ -3004,7 +3060,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Mysterious Old Woman】 Thank you for your purchase."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"お買い上げありがとうございます。"
]
},
{
@ -3182,7 +3245,7 @@
"code": 401,
"indent": 0,
"parameters": [
"When I entered the back alley, there was an old woman sitting by the\nside of the road all alone."
"路地裏に入るとポツンと老婆が道の傍らに座っている。"
]
},
{
@ -3233,7 +3296,14 @@
"code": 401,
"indent": 0,
"parameters": [
"【Mysterious Old Woman】 .........."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"………。"
]
},
{
@ -3250,7 +3320,7 @@
"code": 401,
"indent": 0,
"parameters": [
"【Mysterious Old Woman】 It seems like the taciturn old woman is selling\nsomething."
"寡黙な老婆は何かを売っているようだ。"
]
},
{
@ -3265,9 +3335,9 @@
"indent": 0,
"parameters": [
[
"Engage in conversation",
"I want to see the merchandise",
"Leave"
"会話をする",
"商品をみたい",
"立ち去る"
],
2,
0,
@ -3320,7 +3390,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Mysterious Old Woman】 Whether it's expensive or cheap, it depends on\nthe customer's thoughts."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"高いか安いかは、お客様のお考え次第でございます。"
]
},
{
@ -3358,7 +3435,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Mysterious Old Woman】 How you use the product depends on the\ncustomer's thoughts."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"商品をどう使うかはお客様のお考え次第でございます。"
]
},
{
@ -3396,7 +3480,14 @@
"code": 401,
"indent": 2,
"parameters": [
"【Mysterious Old Woman】 .........."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"………。"
]
},
{
@ -3524,7 +3615,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Mysterious Old Woman】 Thank you for your purchase."
"【謎の老婆】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"お買い上げありがとうございます。"
]
},
{

View file

@ -2666,7 +2666,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore~. Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2700,11 +2714,11 @@
"indent": 0,
"parameters": [
[
"Keep going",
"en(v[171]>=1)Are you okay?",
"en(s[520])I'm going to cum",
"Stop",
"Go back"
"動く",
"en(v[171]>=1)声をかける",
"en(s[520])射精する",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2942,7 +2942,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2996,7 +2996,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -3030,12 +3044,12 @@
"indent": 0,
"parameters": [
[
"I'll keep going",
"en(v[171]>=1)Are you okay?",
"en(s[515])I'm going to ejaculate",
"en(s[415])Insert it in my anus",
"I'll stop",
"Go back"
"動く",
"en(v[171]>=1)声をかける",
"en(s[515])射精する",
"en(s[415])アナルにいれる",
"やめる",
"もどる"
],
-1,
0,
@ -4472,7 +4486,7 @@
"code": 401,
"indent": 2,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -4568,7 +4582,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -4666,12 +4694,12 @@
"indent": 0,
"parameters": [
[
"I'll keep going",
"en(v[171]>=1)Are you okay?",
"en(s[515])I'm going to ejaculate",
"Insert it in my anus",
"I'll stop",
"Go back"
"動く",
"en(v[171]>=1)声をかける",
"en(s[515])射精する",
"アナルにいれる",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2696,7 +2696,7 @@
"code": 401,
"indent": 2,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2750,7 +2750,21 @@
"code": 401,
"indent": 2,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2784,11 +2798,11 @@
"indent": 1,
"parameters": [
[
"I'll keep going",
"en(v[171]>=1)Are you okay?",
"en(s[528])I'm going to ejaculate",
"I'll stop",
"Go back"
"動く",
"en(v[171]>=1)声をかける",
"en(s[528])射精する",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2924,7 +2924,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2978,7 +2978,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -3012,7 +3026,7 @@
"indent": 0,
"parameters": [
[
"I'll keep going"
"動く"
],
-1,
0,
@ -3119,12 +3133,12 @@
"indent": 0,
"parameters": [
[
"en(v[171]>=1)Are you okay?",
"en(s[363])I'm going to ejaculate",
"Rub with your fingers",
"en(s[412])Insert it into my vagina",
"I'll stop",
"Go back"
"en(v[171]>=1)声をかける",
"en(s[363])射精する",
"指でさする",
"en(s[412])膣にいれる",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2812,7 +2812,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2866,7 +2866,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2900,12 +2914,12 @@
"indent": 0,
"parameters": [
[
"Let me give you a blowjob",
"Let me lick you",
"en(v[171]>=1)Are you okay?",
"en(s[345])I'm going to ejaculate",
"I'll stop",
"Go back"
"咥えてもらう",
"舐めてもらう",
"en(v[171]>=1)声をかける",
"en(s[345])射精する",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2878,7 +2878,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2953,7 +2953,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2987,12 +3001,12 @@
"indent": 0,
"parameters": [
[
"I want you to rub me",
"en(s[407])Let me give you a lick",
"en(v[171]>=1)Are you okay?",
"en(s[254])I'm going to ejaculate",
"I'll stop",
"Go back"
"擦ってもらう",
"en(s[407])なめてもらう",
"en(v[171]>=1)声をかける",
"en(s[254])射精する",
"やめる",
"もどる"
],
-1,
0,
@ -3342,6 +3356,15 @@
"hideLogWindow"
]
},
{
"code": 121,
"indent": 1,
"parameters": [
339,
339,
1
]
},
{
"code": 121,
"indent": 1,

File diff suppressed because it is too large Load diff

View file

@ -2382,8 +2382,8 @@
"indent": 2,
"parameters": [
[
"Take off panties",
"As it is"
"パンツを脱がす",
"そのまま"
],
-1,
0,
@ -2506,8 +2506,8 @@
"indent": 3,
"parameters": [
[
"Take off panties",
"As it is"
"パンツを脱がす",
"そのまま"
],
-1,
0,
@ -2619,8 +2619,8 @@
"indent": 3,
"parameters": [
[
"Take off panties",
"As it is"
"パンツを脱がす",
"そのまま"
],
-1,
0,
@ -3008,7 +3008,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't anymore~ I need a break..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -3042,12 +3056,12 @@
"indent": 0,
"parameters": [
[
"Take off your pants",
"Rub the clitoris",
"Rub inside the vagina",
"en(v[171]>=1)Call out",
"Quit",
"Return"
"パンツを脱がす",
"陰核を擦る",
"膣内を擦る",
"en(v[171]>=1)声をかける",
"やめる",
"もどる"
],
-1,
0,
@ -3648,9 +3662,9 @@
"indent": 1,
"parameters": [
[
"With fingers",
"en(s[403])With a vibrator",
"en(s[404])With tentacles"
"指で",
"en(s[403])バイブで",
"en(s[404])触手で"
],
-1,
0,

View file

@ -2887,7 +2887,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2941,7 +2941,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2975,7 +2989,7 @@
"indent": 0,
"parameters": [
[
"en(v[171]>=1)Are you okay?"
"en(v[171]>=1)声をかける"
],
-1,
0,
@ -3027,12 +3041,12 @@
"indent": 0,
"parameters": [
[
"Rub",
"Insert your finger",
"en(s[405])Use a toy",
"en(s[415])Anal sex",
"I'll stop",
"Go back"
"さする",
"指をいれる",
"en(s[405])玩具をつかう",
"en(s[415])アナルセックス",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2988,7 +2988,7 @@
"code": 401,
"indent": 3,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -3072,7 +3072,7 @@
"code": 401,
"indent": 3,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -3198,7 +3198,21 @@
"code": 401,
"indent": 3,
"parameters": [
"【Monica】 I-I can't go on anymore... I need a break..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"休ませてぇ…"
]
},
{
@ -3306,7 +3320,7 @@
"indent": 1,
"parameters": [
[
"en(v[171]>=1)Are you okay?"
"en(v[171]>=1)声をかける"
],
-1,
0,
@ -3358,12 +3372,12 @@
"indent": 1,
"parameters": [
[
"Massage",
"Rub with both hands",
"en(s[402])Play with my nipples",
"en(s[401])Kiss her",
"I quit",
"Go back"
"揉む",
"両手で揉む",
"en(s[402])乳首をいじる",
"en(s[401])キスする",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2655,11 +2655,11 @@
"indent": 0,
"parameters": [
[
"Gently",
"Intensely",
"en(s[401])Pie Kneading Kiss",
"Quit",
"Go back/Return"
"やさしく",
"激しく",
"en(s[401])パイ揉みキス",
"やめる",
"もどる"
],
-1,
0,
@ -3841,11 +3841,18 @@
689
]
},
{
"code": 235,
"indent": 1,
"parameters": [
60
]
},
{
"code": 231,
"indent": 1,
"parameters": [
60,
50,
"mhcg_kiss_ittaatokao",
0,
0,
@ -3861,7 +3868,7 @@
"code": 356,
"indent": 1,
"parameters": [
"addLog \\c[27]「はぁ…はぁ…♥\\N[1]…♥」\\c[0]"
"addLog \\c[27]「はぁ…はぁ…♥\\n[1]…♥」\\c[0]"
]
},
{
@ -4475,7 +4482,7 @@
"code": 401,
"indent": 3,
"parameters": [
"...Haa haa, I've reached my limit..."
"…はぁはぁ、限界だ…"
]
},
{
@ -4572,7 +4579,7 @@
"code": 401,
"indent": 2,
"parameters": [
"...Haa haa, I've reached my limit..."
"…はぁはぁ、限界だ…"
]
},
{
@ -5163,11 +5170,11 @@
"indent": 0,
"parameters": [
[
"Gently",
"Intensely",
"en(s[401])Pie Kneading Kiss",
"Quit",
"Go back/Return"
"やさしく",
"激しく",
"en(s[401])パイ揉みキス",
"やめる",
"もどる"
],
-1,
0,
@ -6379,11 +6386,18 @@
689
]
},
{
"code": 235,
"indent": 1,
"parameters": [
60
]
},
{
"code": 231,
"indent": 1,
"parameters": [
60,
50,
"mhcg_kiss_ittaatokao",
0,
0,
@ -6399,7 +6413,7 @@
"code": 356,
"indent": 1,
"parameters": [
"addLog \\c[27]「はぁ…はぁ…♥\\N[1]…♥」\\c[0]"
"addLog \\c[27]「はぁ…はぁ…♥\\n[1]…♥」\\c[0]"
]
},
{
@ -7013,7 +7027,7 @@
"code": 401,
"indent": 3,
"parameters": [
"...Haa haa, I've reached my limit..."
"…はぁはぁ、限界だ…"
]
},
{
@ -7110,7 +7124,7 @@
"code": 401,
"indent": 2,
"parameters": [
"...Haa haa, I've reached my limit..."
"…はぁはぁ、限界だ…"
]
},
{
@ -7654,11 +7668,11 @@
"indent": 0,
"parameters": [
[
"Gently",
"Intensely",
"en(s[401])Pie Kneading Kiss",
"Quit",
"Go back/Return"
"やさしく",
"激しく",
"en(s[401])パイ揉みキス",
"やめる",
"もどる"
],
-1,
0,
@ -8791,11 +8805,18 @@
689
]
},
{
"code": 235,
"indent": 1,
"parameters": [
60
]
},
{
"code": 231,
"indent": 1,
"parameters": [
60,
50,
"mhcg_kiss_ittaatokao",
0,
0,
@ -8811,7 +8832,7 @@
"code": 356,
"indent": 1,
"parameters": [
"addLog \\c[27]「はぁ…はぁ…♥\\N[1]…♥」\\c[0]"
"addLog \\c[27]「はぁ…はぁ…♥\\n[1]…♥」\\c[0]"
]
},
{
@ -9425,7 +9446,7 @@
"code": 401,
"indent": 3,
"parameters": [
"...Haa haa, I've reached my limit..."
"…はぁはぁ、限界だ…"
]
},
{
@ -9522,7 +9543,7 @@
"code": 401,
"indent": 2,
"parameters": [
"...Haa haa, I've reached my limit..."
"…はぁはぁ、限界だ…"
]
},
{

File diff suppressed because it is too large Load diff

View file

@ -2496,14 +2496,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -2554,14 +2554,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -2622,14 +2622,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -3061,7 +3061,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3094,7 +3094,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3213,6 +3213,38 @@
1
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
4,
1,
5,
3
]
},
{
"code": 122,
"indent": 2,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 119,
"indent": 1,
@ -4012,13 +4044,6 @@
"indent": 3,
"parameters": []
},
{
"code": 119,
"indent": 3,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 3,
@ -4029,6 +4054,13 @@
"indent": 2,
"parameters": []
},
{
"code": 119,
"indent": 2,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 2,
@ -4167,12 +4199,86 @@
]
},
{
"code": 117,
"code": 111,
"indent": 1,
"parameters": [
4,
2,
6,
10
]
},
{
"code": 117,
"indent": 2,
"parameters": [
187
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 411,
"indent": 1,
"parameters": []
},
{
"code": 111,
"indent": 2,
"parameters": [
4,
2,
6,
62
]
},
{
"code": 117,
"indent": 3,
"parameters": [
187
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 411,
"indent": 2,
"parameters": []
},
{
"code": 117,
"indent": 3,
"parameters": [
139
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 122,
"indent": 1,
@ -5174,6 +5280,130 @@
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
11,
0,
13,
0
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
6,
0,
60,
0
]
},
{
"code": 111,
"indent": 2,
"parameters": [
1,
101,
0,
50,
1
]
},
{
"code": 111,
"indent": 3,
"parameters": [
0,
308,
0
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 411,
"indent": 3,
"parameters": []
},
{
"code": 117,
"indent": 4,
"parameters": [
492
]
},
{
"code": 117,
"indent": 4,
"parameters": [
47
]
},
{
"code": 122,
"indent": 4,
"parameters": [
6,
6,
1,
0,
20
]
},
{
"code": 119,
"indent": 4,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 412,
"indent": 3,
"parameters": []
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
@ -5927,6 +6157,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6063,6 +6302,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6199,6 +6447,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6386,6 +6643,28 @@
177
]
},
{
"code": 122,
"indent": 1,
"parameters": [
92,
92,
0,
0,
0
]
},
{
"code": 122,
"indent": 1,
"parameters": [
91,
91,
0,
0,
0
]
},
{
"code": 201,
"indent": 1,
@ -6484,7 +6763,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Will you proceed?"
"次に進みますか?"
]
},
{

View file

@ -2448,7 +2448,14 @@
"code": 401,
"indent": 0,
"parameters": [
"[Innkeeper] Hey! You woke up!"
"【宿屋のおっさん】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"おう!気がついたか!"
]
},
{
@ -2465,7 +2472,21 @@
"code": 401,
"indent": 0,
"parameters": [
"[Innkeeper] I was worried! Take care, okay?"
"【宿屋のおっさん】"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"心配したぜ!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"気をつけてくれよな!"
]
},
{
@ -2709,7 +2730,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -2742,7 +2763,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3662,14 +3683,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -3720,14 +3741,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -3788,14 +3809,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{

View file

@ -2215,9 +2215,9 @@
"indent": 0,
"parameters": [
[
"Customer who looks like a merchant",
"Customers with a strange atmosphere",
"Return to the front desk"
"商人っぽい客",
"異様な雰囲気の客",
"フロントにもどる"
],
2,
0,
@ -2281,7 +2281,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Merchant】 What would you like to buy, meow?"
"【商人】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"なにか買っていくにゃ?"
]
},
{
@ -2296,9 +2303,9 @@
"indent": 1,
"parameters": [
[
"Have a conversation",
"Make a transaction",
"Leave"
"会話をする",
"取引をする",
"はなれる"
],
2,
0,
@ -2351,7 +2358,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 I always do business here at night, meow~."
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"夜はいつもここで商いをさせてもらってるにゃんね~。"
]
},
{
@ -2396,7 +2410,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 If you have anything you don't need, I would be happy if\nyou sold it to me, meow!"
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"いらないものがあったら売ってくれると嬉しいにゃん!"
]
},
{
@ -2441,7 +2462,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 The old man here always gives me treats, meow."
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"ここのおやじさんはいつもカリカリをくれるにゃんね。"
]
},
{
@ -2486,7 +2514,21 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 The old man often asks me, Do you have any sleeping\nmedicine? I wonder why, meow? Can't he sleep?"
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"おやじさんに「ネムリ薬はないか?」ってよく聞かれるけど、"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"にゃんでだろう?眠れないのかにゃ?"
]
},
{
@ -2629,6 +2671,16 @@
0
]
},
{
"code": 605,
"indent": 3,
"parameters": [
0,
55,
0,
0
]
},
{
"code": 605,
"indent": 3,
@ -2760,6 +2812,16 @@
0
]
},
{
"code": 605,
"indent": 3,
"parameters": [
0,
55,
0,
0
]
},
{
"code": 605,
"indent": 3,
@ -2840,7 +2902,21 @@
"code": 401,
"indent": 4,
"parameters": [
"【Merchant】 I'm so grateful that you're buying such expensive things!\nThank you very much!"
"【商人】"
]
},
{
"code": 401,
"indent": 4,
"parameters": [
"こんなに高いものを買ってくれるなんて感激だにゃん!"
]
},
{
"code": 401,
"indent": 4,
"parameters": [
"ありがとうございますだにゃん!"
]
},
{
@ -3130,9 +3206,9 @@
"indent": 0,
"parameters": [
[
"Customer who looks like a merchant",
"Customers with a strange atmosphere",
"Return to the front desk"
"商人っぽい客",
"異様な雰囲気の客",
"フロントにもどる"
],
2,
0,
@ -3196,7 +3272,14 @@
"code": 401,
"indent": 1,
"parameters": [
"【Merchant】 What would you like to buy, meow?"
"【商人】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"なにか買っていくにゃ?"
]
},
{
@ -3211,9 +3294,9 @@
"indent": 1,
"parameters": [
[
"Have a conversation",
"Make a transaction",
"Leave"
"会話をする",
"取引をする",
"はなれる"
],
2,
0,
@ -3266,7 +3349,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 I always do business here at night, meow~."
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"夜はいつもここで商いをさせてもらってるにゃんね~。"
]
},
{
@ -3311,7 +3401,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 If you have anything you don't need, I would be happy if\nyou sold it to me, meow!"
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"いらないものがあったら売ってくれると嬉しいにゃん!"
]
},
{
@ -3356,7 +3453,14 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 The old man here always gives me treats, meow."
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"ここのおやじさんはいつもカリカリをくれるにゃんね。"
]
},
{
@ -3401,7 +3505,21 @@
"code": 401,
"indent": 3,
"parameters": [
"【Merchant】 The old man often asks me, Do you have any sleeping\nmedicine? I wonder why, meow? Can't he sleep?"
"【商人】"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"おやじさんに「ネムリ薬はないか?」ってよく聞かれるけど、"
]
},
{
"code": 401,
"indent": 3,
"parameters": [
"にゃんでだろう?眠れないのかにゃ?"
]
},
{
@ -3535,6 +3653,16 @@
0
]
},
{
"code": 605,
"indent": 2,
"parameters": [
0,
55,
0,
0
]
},
{
"code": 605,
"indent": 2,

View file

@ -2232,35 +2232,35 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]\\N[1] Favorability \\V[101]/100 24"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]\\N[1]に対する好感度 \\V[101]/100 24"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Sex    \\V[102]x 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]セックスした回数    \\V[102]回 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Blowjob   \\V[103]x 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]フェラチオした回数   \\V[103]回 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Anal Sex \\V[104]x 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]アナルセックスした回数 \\V[104]回 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Masturbation    \\V[105]x 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]オナニーした回数    \\V[105]回 18"
]
},
{
@ -2274,21 +2274,21 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Serviced 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]出されたところ 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Pussy \\V[243] Body \\V[244] Mouth \\V[247] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]おまんこ \\V[243] からだ \\V[244] くち \\V[247] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Facial \\V[246] Ass \\V[245] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]かお \\V[246] おしり \\V[245] 18"
]
},
{
@ -2302,7 +2302,7 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Semen 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]膣内に出された精液量 18"
]
},
{
@ -2316,14 +2316,14 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Innkeeper  \\V[107]ml/100ml 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]宿のおやじ  \\V[107]ml/100ml 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Guild Leader \\V[223]ml/100ml 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]ギルド職員  \\V[223]ml/100ml 18"
]
},
{
@ -2344,35 +2344,35 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Development 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]開発値 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Pussy \\V[117] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]おまんこ \\V[117] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Mouth   \\V[120] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]奉仕   \\V[120] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Ass  \\V[119] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]アナル  \\V[119] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Tits \\V[118] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]おっぱい \\V[118] 18"
]
},
{

View file

@ -2336,7 +2336,7 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT    \\N[1] 30"
"D_TEXT    \\n[1] 30"
]
},
{
@ -2359,7 +2359,7 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Manliness \\v[89] 30"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]男気 \\v[89] 30"
]
},
{

File diff suppressed because it is too large Load diff

View file

@ -2336,7 +2336,7 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT    \\N[1] 30"
"D_TEXT    \\n[1] 30"
]
},
{
@ -2359,7 +2359,7 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Manliness \\v[89] 30"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]男気 \\v[89] 30"
]
},
{

View file

@ -2496,14 +2496,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -2554,14 +2554,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -2622,14 +2622,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -3061,7 +3061,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3094,7 +3094,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3213,6 +3213,38 @@
1
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
4,
1,
5,
3
]
},
{
"code": 122,
"indent": 2,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 119,
"indent": 1,
@ -4012,13 +4044,6 @@
"indent": 3,
"parameters": []
},
{
"code": 119,
"indent": 3,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 3,
@ -4029,6 +4054,13 @@
"indent": 2,
"parameters": []
},
{
"code": 119,
"indent": 2,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 2,
@ -4167,12 +4199,86 @@
]
},
{
"code": 117,
"code": 111,
"indent": 1,
"parameters": [
4,
2,
6,
10
]
},
{
"code": 117,
"indent": 2,
"parameters": [
187
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 411,
"indent": 1,
"parameters": []
},
{
"code": 111,
"indent": 2,
"parameters": [
4,
2,
6,
62
]
},
{
"code": 117,
"indent": 3,
"parameters": [
187
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 411,
"indent": 2,
"parameters": []
},
{
"code": 117,
"indent": 3,
"parameters": [
139
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 122,
"indent": 1,
@ -5174,6 +5280,130 @@
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
11,
0,
13,
0
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
6,
0,
60,
0
]
},
{
"code": 111,
"indent": 2,
"parameters": [
1,
101,
0,
50,
1
]
},
{
"code": 111,
"indent": 3,
"parameters": [
0,
308,
0
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 411,
"indent": 3,
"parameters": []
},
{
"code": 117,
"indent": 4,
"parameters": [
492
]
},
{
"code": 117,
"indent": 4,
"parameters": [
47
]
},
{
"code": 122,
"indent": 4,
"parameters": [
6,
6,
1,
0,
20
]
},
{
"code": 119,
"indent": 4,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 412,
"indent": 3,
"parameters": []
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
@ -5927,6 +6157,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6063,6 +6302,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6199,6 +6447,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6386,6 +6643,28 @@
177
]
},
{
"code": 122,
"indent": 1,
"parameters": [
92,
92,
0,
0,
0
]
},
{
"code": 122,
"indent": 1,
"parameters": [
91,
91,
0,
0,
0
]
},
{
"code": 201,
"indent": 1,
@ -6484,7 +6763,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Will you proceed?"
"次に進みますか?"
]
},
{
@ -6899,6 +7178,13 @@
1
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"GraphicalChoice on"
]
},
{
"code": 119,
"indent": 2,

View file

@ -2496,14 +2496,14 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Amount: \\C[18]30000\\C[0]G 20"
"D_TEXT 支払い金額: \\C[18]30000\\C[0]G 20"
]
},
{
@ -2554,14 +2554,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]50000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]50000\\C[0]G 20"
]
},
{
@ -2622,14 +2622,14 @@
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Payment \\C[18]\\v[97]\\C[0] Days 20"
"D_TEXT 次の支払いまで\\C[18]\\v[97]\\C[0]日 20"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"D_TEXT Amount\\C[18]70000\\C[0]G 20"
"D_TEXT 支払い金額\\C[18]70000\\C[0]G 20"
]
},
{
@ -3061,7 +3061,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3094,7 +3094,7 @@
"code": 356,
"indent": 1,
"parameters": [
"D_TEXT Day\\v[16] 50"
"D_TEXT \\v[16]日目 50"
]
},
{
@ -3213,6 +3213,38 @@
1
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
4,
1,
5,
3
]
},
{
"code": 122,
"indent": 2,
"parameters": [
4,
4,
0,
1,
5
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 119,
"indent": 1,
@ -4012,13 +4044,6 @@
"indent": 3,
"parameters": []
},
{
"code": 119,
"indent": 3,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 3,
@ -4029,6 +4054,13 @@
"indent": 2,
"parameters": []
},
{
"code": 119,
"indent": 2,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 2,
@ -4167,12 +4199,86 @@
]
},
{
"code": 117,
"code": 111,
"indent": 1,
"parameters": [
4,
2,
6,
10
]
},
{
"code": 117,
"indent": 2,
"parameters": [
187
]
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 411,
"indent": 1,
"parameters": []
},
{
"code": 111,
"indent": 2,
"parameters": [
4,
2,
6,
62
]
},
{
"code": 117,
"indent": 3,
"parameters": [
187
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 411,
"indent": 2,
"parameters": []
},
{
"code": 117,
"indent": 3,
"parameters": [
139
]
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 122,
"indent": 1,
@ -5174,6 +5280,130 @@
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
"parameters": [
1,
11,
0,
13,
0
]
},
{
"code": 111,
"indent": 1,
"parameters": [
1,
6,
0,
60,
0
]
},
{
"code": 111,
"indent": 2,
"parameters": [
1,
101,
0,
50,
1
]
},
{
"code": 111,
"indent": 3,
"parameters": [
0,
308,
0
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 411,
"indent": 3,
"parameters": []
},
{
"code": 117,
"indent": 4,
"parameters": [
492
]
},
{
"code": 117,
"indent": 4,
"parameters": [
47
]
},
{
"code": 122,
"indent": 4,
"parameters": [
6,
6,
1,
0,
20
]
},
{
"code": 119,
"indent": 4,
"parameters": [
"ターンおわり"
]
},
{
"code": 0,
"indent": 4,
"parameters": []
},
{
"code": 412,
"indent": 3,
"parameters": []
},
{
"code": 0,
"indent": 3,
"parameters": []
},
{
"code": 412,
"indent": 2,
"parameters": []
},
{
"code": 0,
"indent": 2,
"parameters": []
},
{
"code": 412,
"indent": 1,
"parameters": []
},
{
"code": 0,
"indent": 1,
"parameters": []
},
{
"code": 412,
"indent": 0,
"parameters": []
},
{
"code": 111,
"indent": 0,
@ -5927,6 +6157,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6063,6 +6302,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6199,6 +6447,15 @@
0
]
},
{
"code": 121,
"indent": 5,
"parameters": [
121,
121,
1
]
},
{
"code": 115,
"indent": 5,
@ -6386,6 +6643,28 @@
177
]
},
{
"code": 122,
"indent": 1,
"parameters": [
92,
92,
0,
0,
0
]
},
{
"code": 122,
"indent": 1,
"parameters": [
91,
91,
0,
0,
0
]
},
{
"code": 201,
"indent": 1,
@ -6484,7 +6763,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Would you like to proceed to the next step?"
"次に進みますか?"
]
},
{

View file

@ -2232,35 +2232,35 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]\\N[1] Favorability \\V[101]/100 24"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]\\N[1]に対する好感度 \\V[101]/100 24"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Number of times had sex: \\V[102] times 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]セックスした回数    \\V[102]回 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Number of times performed fellatio: \\V[103] times 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]フェラチオした回数   \\V[103]回 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Number of times had anal sex: \\V[104] times 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]アナルセックスした回数 \\V[104]回 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Number of times masturbated: \\V[105] times 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]オナニーした回数    \\V[105]回 18"
]
},
{
@ -2274,21 +2274,21 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Service 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]出されたところ 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Pussy \\V[243] Body \\V[244] Mouth \\V[247] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]おまんこ \\V[243] からだ \\V[244] くち \\V[247] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Face \\V[246] Bottom \\V[245] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]かお \\V[246] おしり \\V[245] 18"
]
},
{
@ -2302,7 +2302,7 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Semen Amount 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]膣内に出された精液量 18"
]
},
{
@ -2316,14 +2316,14 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Innkeeper \\V[107] ml/100ml 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]宿のおやじ  \\V[107]ml/100ml 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Guild staff \\V[223] ml/100ml 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]ギルド職員  \\V[223]ml/100ml 18"
]
},
{
@ -2344,35 +2344,35 @@
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Development value 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]開発値 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Pussy \\V[117] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]おまんこ \\V[117] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Service \\V[120] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]奉仕   \\V[120] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Anal \\V[119] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]アナル  \\V[119] 18"
]
},
{
"code": 356,
"indent": 0,
"parameters": [
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]Breasts \\V[118] 18"
"D_TEXT \\f[b]\\C[15]\\oc[0]\\ow[1]おっぱい \\V[118] 18"
]
},
{

View file

@ -2808,7 +2808,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2862,7 +2862,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2896,12 +2910,12 @@
"indent": 0,
"parameters": [
[
"I want you to rub me",
"Let me have your saliva",
"en(v[171]>=1)Are you okay?",
"en(s[336])I'm going to ejaculate",
"I'll stop",
"Go back"
"擦ってもらう",
"唾液をもらう",
"en(v[171]>=1)声をかける",
"en(s[336])射精する",
"やめる",
"もどる"
],
-1,
0,

View file

@ -2389,7 +2389,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2443,7 +2443,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -3184,12 +3198,12 @@
"indent": 0,
"parameters": [
[
"Please keep moving",
"Play with my anus",
"en(v[171]>=1)Are you okay?",
"en(s[527])I'm going to ejaculate",
"I'll stop",
"Go back"
"動いてもらう",
"アナルをいじる",
"en(v[171]>=1)声をかける",
"en(s[527])射精する",
"やめる",
"もどる"
],
-1,
0,
@ -6267,9 +6281,9 @@
"indent": 1,
"parameters": [
[
"Observe",
"Insert your finger",
"Go back"
"観察する",
"指をいれる",
"もどる"
],
-1,
0,
@ -6425,8 +6439,8 @@
"indent": 2,
"parameters": [
[
"Support her and help her",
"Go back"
"手を添えて手伝う",
"もどる"
],
-1,
0,

View file

@ -2536,7 +2536,7 @@
"code": 401,
"indent": 2,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2643,7 +2643,21 @@
"code": 401,
"indent": 2,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 2,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2677,12 +2691,12 @@
"indent": 1,
"parameters": [
[
"I want you to rub me",
"Suck on her nipples",
"en(v[171]>=1)Are you okay?",
"en(s[349])I'm going to ejaculate",
"I'll stop",
"Go back"
"擦ってもらう",
"乳首を吸う",
"en(v[171]>=1)声をかける",
"en(s[349])射精する",
"やめる",
"もどる"
],
-1,
0,
@ -2719,6 +2733,13 @@
"PA_STOP 65"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PA_STOP 66"
]
},
{
"code": 356,
"indent": 2,
@ -2789,6 +2810,13 @@
65
]
},
{
"code": 235,
"indent": 2,
"parameters": [
66
]
},
{
"code": 121,
"indent": 2,
@ -2932,6 +2960,13 @@
"PA_STOP 65"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PA_STOP 66"
]
},
{
"code": 235,
"indent": 2,
@ -2960,6 +2995,13 @@
65
]
},
{
"code": 235,
"indent": 2,
"parameters": [
66
]
},
{
"code": 121,
"indent": 2,
@ -3330,6 +3372,34 @@
1
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PA_STOP 65"
]
},
{
"code": 356,
"indent": 2,
"parameters": [
"PA_STOP 66"
]
},
{
"code": 235,
"indent": 2,
"parameters": [
65
]
},
{
"code": 235,
"indent": 2,
"parameters": [
66
]
},
{
"code": 235,
"indent": 2,
@ -3465,6 +3535,13 @@
65
]
},
{
"code": 235,
"indent": 3,
"parameters": [
66
]
},
{
"code": 235,
"indent": 3,
@ -3598,6 +3675,13 @@
65
]
},
{
"code": 235,
"indent": 3,
"parameters": [
66
]
},
{
"code": 235,
"indent": 3,

View file

@ -2721,7 +2721,7 @@
"code": 401,
"indent": 1,
"parameters": [
"...*Haa haa, I've reached my limit...*"
"…はぁはぁ、限界だ…"
]
},
{
@ -2775,7 +2775,21 @@
"code": 401,
"indent": 1,
"parameters": [
"【Monica】 I-I can't take it anymore... Let me rest..."
"【モニカ】"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"も、もうだめ~。"
]
},
{
"code": 401,
"indent": 1,
"parameters": [
"休ませてぇ…"
]
},
{
@ -2809,12 +2823,12 @@
"indent": 0,
"parameters": [
[
"I'll keep going",
"en(v[171]>=1)Are you okay?",
"en(s[367])I'm going to ejaculate",
"if(s[200])Insert it into the anus",
"I'll stop",
"Go back"
"動く",
"en(v[171]>=1)声をかける",
"en(s[367])射精する",
"if(s[200])アナルにいれる",
"やめる",
"もどる"
],
-1,
0,

3538
www/data/Map052.json Normal file

File diff suppressed because it is too large Load diff

3009
www/data/Map053.json Normal file

File diff suppressed because it is too large Load diff

View file

@ -13,7 +13,7 @@
"id": 2,
"expanded": false,
"name": "イベントテスト部屋",
"order": 27,
"order": 28,
"parentId": 0,
"scrollX": 819,
"scrollY": 461
@ -24,8 +24,8 @@
"name": "",
"order": 4,
"parentId": 0,
"scrollX": 539.5,
"scrollY": 453
"scrollX": 819,
"scrollY": 461
},
{
"id": 4,
@ -40,9 +40,9 @@
"id": 5,
"expanded": true,
"name": "ダンジョン01F~05F",
"order": 17,
"order": 18,
"parentId": 0,
"scrollX": 569.5,
"scrollX": 819,
"scrollY": 461
},
{
@ -51,14 +51,14 @@
"name": "道具屋",
"order": 3,
"parentId": 0,
"scrollX": 546,
"scrollX": 819,
"scrollY": 461
},
{
"id": 7,
"expanded": true,
"name": "訓練場",
"order": 24,
"order": 25,
"parentId": 0,
"scrollX": 819,
"scrollY": 461
@ -67,7 +67,7 @@
"id": 8,
"expanded": true,
"name": "オープニング",
"order": 21,
"order": 22,
"parentId": 0,
"scrollX": 832,
"scrollY": 640
@ -85,7 +85,7 @@
"id": 10,
"expanded": true,
"name": "メインマップ",
"order": 22,
"order": 23,
"parentId": 0,
"scrollX": 819,
"scrollY": 461
@ -94,7 +94,7 @@
"id": 11,
"expanded": false,
"name": "メインマップ夜",
"order": 23,
"order": 24,
"parentId": 10,
"scrollX": 819,
"scrollY": 461
@ -105,8 +105,8 @@
"name": "自室",
"order": 10,
"parentId": 3,
"scrollX": 832,
"scrollY": 640
"scrollX": 819,
"scrollY": 461
},
{
"id": 13,
@ -114,14 +114,14 @@
"name": "自室2",
"order": 11,
"parentId": 12,
"scrollX": 569.5,
"scrollX": 819,
"scrollY": 461
},
{
"id": 14,
"expanded": false,
"name": "エンディング(ノーマル)",
"order": 25,
"order": 26,
"parentId": 0,
"scrollX": 819,
"scrollY": 461
@ -132,23 +132,23 @@
"name": "自室夜",
"order": 12,
"parentId": 12,
"scrollX": 569.5,
"scrollY": 461
"scrollX": 528,
"scrollY": 455.5
},
{
"id": 16,
"expanded": true,
"name": "黄金の間",
"order": 47,
"order": 49,
"parentId": 0,
"scrollX": 546,
"scrollX": 819,
"scrollY": 461
},
{
"id": 17,
"expanded": false,
"name": "MAP017",
"order": 26,
"order": 27,
"parentId": 0,
"scrollX": 819,
"scrollY": 461
@ -157,25 +157,25 @@
"id": 18,
"expanded": true,
"name": "メインエッチ",
"order": 28,
"order": 29,
"parentId": 0,
"scrollX": 542.5,
"scrollX": 819,
"scrollY": 461
},
{
"id": 19,
"expanded": false,
"name": "裏道",
"order": 48,
"order": 50,
"parentId": 0,
"scrollX": 569.5,
"scrollX": 819,
"scrollY": 461
},
{
"id": 20,
"expanded": false,
"name": "正常位",
"order": 30,
"order": 31,
"parentId": 24,
"scrollX": 539.5,
"scrollY": 453
@ -184,7 +184,7 @@
"id": 21,
"expanded": false,
"name": "後背位",
"order": 31,
"order": 32,
"parentId": 24,
"scrollX": 516.5,
"scrollY": 453
@ -193,7 +193,7 @@
"id": 22,
"expanded": false,
"name": "騎乗位",
"order": 32,
"order": 33,
"parentId": 24,
"scrollX": 567,
"scrollY": 461
@ -202,7 +202,7 @@
"id": 23,
"expanded": false,
"name": "挿入アナル",
"order": 33,
"order": 34,
"parentId": 24,
"scrollX": 516.5,
"scrollY": 453
@ -211,7 +211,7 @@
"id": 24,
"expanded": true,
"name": "挿入",
"order": 29,
"order": 30,
"parentId": 18,
"scrollX": 819,
"scrollY": 461
@ -220,7 +220,7 @@
"id": 25,
"expanded": true,
"name": "奉仕",
"order": 36,
"order": 37,
"parentId": 18,
"scrollX": 819,
"scrollY": 461
@ -229,34 +229,34 @@
"id": 26,
"expanded": false,
"name": "フェラ",
"order": 37,
"order": 38,
"parentId": 25,
"scrollX": 819,
"scrollY": 461
"scrollX": 832,
"scrollY": 640
},
{
"id": 27,
"expanded": false,
"name": "テコキ",
"order": 38,
"order": 39,
"parentId": 25,
"scrollX": 570,
"scrollX": 819,
"scrollY": 461
},
{
"id": 28,
"expanded": false,
"name": "けつなめ",
"order": 41,
"order": 42,
"parentId": 25,
"scrollX": 516.5,
"scrollY": 453
"scrollX": 819,
"scrollY": 461
},
{
"id": 29,
"expanded": true,
"expanded": false,
"name": "さわる",
"order": 42,
"order": 44,
"parentId": 18,
"scrollX": 819,
"scrollY": 461
@ -265,7 +265,7 @@
"id": 30,
"expanded": false,
"name": "おまんこ",
"order": 43,
"order": 45,
"parentId": 29,
"scrollX": 542.5,
"scrollY": 461
@ -274,7 +274,7 @@
"id": 31,
"expanded": false,
"name": "アナル",
"order": 44,
"order": 46,
"parentId": 29,
"scrollX": 819,
"scrollY": 461
@ -283,7 +283,7 @@
"id": 32,
"expanded": false,
"name": "おっぱい",
"order": 45,
"order": 47,
"parentId": 29,
"scrollX": 832,
"scrollY": 640
@ -292,7 +292,7 @@
"id": 33,
"expanded": false,
"name": "キス",
"order": 46,
"order": 48,
"parentId": 18,
"scrollX": 819,
"scrollY": 461
@ -310,7 +310,7 @@
"id": 35,
"expanded": true,
"name": "ダンジョン16F~25F",
"order": 19,
"order": 20,
"parentId": 5,
"scrollX": 832,
"scrollY": 640
@ -330,8 +330,8 @@
"name": "酒場夜",
"order": 8,
"parentId": 9,
"scrollX": 542.5,
"scrollY": 461
"scrollX": 528,
"scrollY": 457.5
},
{
"id": 38,
@ -373,7 +373,7 @@
"id": 42,
"expanded": true,
"name": "ダンジョン06F~15F",
"order": 18,
"order": 19,
"parentId": 5,
"scrollX": 832,
"scrollY": 640
@ -382,7 +382,7 @@
"id": 43,
"expanded": false,
"name": "ダンジョン26F~30F",
"order": 20,
"order": 21,
"parentId": 5,
"scrollX": 819,
"scrollY": 461
@ -400,16 +400,16 @@
"id": 45,
"expanded": false,
"name": "パイズリ",
"order": 39,
"order": 40,
"parentId": 25,
"scrollX": 819,
"scrollY": 461
"scrollX": 832,
"scrollY": 640
},
{
"id": 46,
"expanded": false,
"name": "背面騎乗位",
"order": 34,
"order": 35,
"parentId": 24,
"scrollX": 539.5,
"scrollY": 453
@ -418,16 +418,16 @@
"id": 47,
"expanded": false,
"name": "授乳手コキ",
"order": 40,
"order": 41,
"parentId": 25,
"scrollX": 539.5,
"scrollY": 453
"scrollX": 832,
"scrollY": 640
},
{
"id": 48,
"expanded": false,
"name": "種付けプレス",
"order": 35,
"order": 36,
"parentId": 24,
"scrollX": 539.5,
"scrollY": 453
@ -436,7 +436,7 @@
"id": 49,
"expanded": false,
"name": "経由部屋",
"order": 49,
"order": 51,
"parentId": 0,
"scrollX": 819,
"scrollY": 461
@ -445,18 +445,36 @@
"id": 50,
"expanded": true,
"name": "回想部屋",
"order": 50,
"order": 52,
"parentId": 0,
"scrollX": 569.5,
"scrollX": 819,
"scrollY": 461
},
{
"id": 51,
"expanded": false,
"name": "回想部屋夜",
"order": 51,
"order": 53,
"parentId": 50,
"scrollX": 819,
"scrollY": 461
},
{
"id": 52,
"expanded": false,
"name": "モニカの部屋",
"order": 17,
"parentId": 3,
"scrollX": 819,
"scrollY": 461
},
{
"id": 53,
"expanded": false,
"name": "乳首舐めながら手こき",
"order": 43,
"parentId": 25,
"scrollX": 819,
"scrollY": 461
}
]

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -14,12 +14,12 @@
},
"armorTypes": [
"",
"General Armor",
"Magic Armor",
"Light Armor",
"Heavy armor",
"Small Shield",
"Large Shield"
"一般防具",
"魔法防具",
"軽装防具",
"重装防具",
"小型盾",
"大型盾"
],
"attackMotions": [
{
@ -105,38 +105,38 @@
"pitch": 100,
"volume": 60
},
"editMapId": 11,
"editMapId": 9,
"elements": [
"",
"Physical",
"Fire",
"Ice",
"Lightning",
"Water",
"Earth",
"Wind",
"Light",
"Dark",
"Holy"
"物理",
"",
"",
"",
"",
"",
"",
"",
"",
""
],
"equipTypes": [
"",
"Weapon",
"Shield",
"Head",
"Body",
"Accessory [Necklace]",
"Accessory [Ring]",
"Accessory [Shoes]"
"武器",
"",
"",
"身体",
"装飾品[首飾り]",
"装飾品[指輪]",
"装飾品[靴]"
],
"gameTitle": "Dungeon with Girl",
"gameTitle": "ダンジョンウィズガール ver.1.1.0",
"gameoverMe": {
"name": "Gameover1",
"pan": 0,
"pitch": 100,
"volume": 90
},
"locale": "en_US",
"locale": "ja_JP",
"magicSkills": [
1
],
@ -174,8 +174,8 @@
},
"skillTypes": [
"",
"Skill",
"Special move"
"スキル",
"必殺技"
],
"sounds": [
{
@ -444,7 +444,7 @@
"ガーディアン遭遇確率表示",
"支払いのためギルドにいった直後",
"異様な雰囲気の男 初回",
"Recovery",
"行動力回復",
"メニューを開く",
"ダンジョン重量表示",
"ダンジョン進行度表示",
@ -504,9 +504,9 @@
"ダンジョンクリア(化粧箱入手後)",
"ギルドのおっさんとセックス2回目",
"いいえを押した",
"",
"",
"",
"全開放",
"30階に到達後帰還",
"足湯イベントをみた",
"回想から来た",
"初めてギルドにいくイベント",
"宿最初にもらう依頼",
@ -634,10 +634,10 @@
"HP残量10-0",
"表示消す",
"ノーマルエンド",
"",
"",
"",
"",
"夜這い演出走り始め",
"温泉イベント発生",
"自分で搾乳初回",
"登録イベントをスキップした",
"フェラON 亀頭舐めOFF",
"BE4宿のおっさんエンドを見た後、宿の処理を消す",
"おばさんに箱についてきいた",
@ -702,27 +702,27 @@
"手マン表情",
"声をかける初回",
"メインエッチ開始時の会話トークン設定",
"",
"",
"",
"",
"",
"",
"ママメイカー初回使用",
"ママメイカーEV2回見た",
"けつなめ状態",
"けつなめ射精",
"けつなめ動き",
"けつなめ手動き",
"サブクエスト1手帳回避",
"サブクエスト2手帳回避",
"サブクエスト3手帳回避",
"サブクエスト4手帳回避",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"けつなめ射精1回以上",
"キャンセル処理スキップ",
"乳首なめ手こきの状態",
"乳首舐め手こき1回以上射精",
"乳首なめ動き",
"乳首なめ手動き",
"乳首なめ手こき射精",
"起きた状態で搾乳を見た",
"おもらしを見た",
"特殊おでかけを見た",
"トラップ回避セックスまで見た",
"",
"",
"",
@ -733,7 +733,7 @@
"バイブ 解放",
"触手 解放",
"アナルビーズ解放",
"キスしながら手こき解放",
"乳首舐めながら手こき解放",
"フェラ解放",
"パイズリ 解放",
"けつなめ 解放",
@ -743,14 +743,14 @@
"騎乗位 解放",
"背面騎乗位 解放",
"アナルセックス 解放",
"正常位 解放",
"",
"",
"",
"",
"",
"",
"",
"",
"パンツ漁り解禁",
"今日のパンツ漁り終わり",
"セクシーランジェリーget",
"",
"",
"",
@ -1131,7 +1131,7 @@
],
"terms": {
"basic": [
"Level",
"レベル",
"Lv",
"",
"HP",
@ -1139,112 +1139,114 @@
"MP",
"",
"TP",
"Experience Points",
"経験値",
"EXP"
],
"commands": [
"Fight",
"Run away",
"Attack",
"Defense",
"Item",
"Skill",
"Equip",
"Status",
"Sort",
"Save",
"Game over",
"Options",
"Weapon",
"Armor",
"Important things",
"Equip",
"Ultimate equipment",
"Remove all",
"New Game",
"Continue",
"戦う",
"逃げる",
"攻撃",
"防御",
"アイテム",
"スキル",
"装備",
"ステータス",
"並び替え",
"セーブ",
"ゲーム終了",
"オプション",
"武器",
"防具",
"大事なもの",
"装備",
"最強装備",
"全て外す",
"ニューゲーム",
"コンティニュー",
null,
"To the title",
"Stop",
"タイトルへ",
"やめる",
null,
"Purchase",
"Sell"
"購入する",
"売却する"
],
"params": [
"Maximum HP",
"Maximum MP",
"Attack",
"Defense",
"Intelligence",
"Defense",
"Speed",
"Luck",
"Hit rate",
"Evasion rate"
"最大HP",
"最大MP",
"こうげき",
"ぼうぎょ",
"かしこさ",
"Mぼうぎょ",
"すばやさ",
"うん",
"命中率",
"回避率"
],
"messages": {
"actionFailure": "It didn't work on %1!",
"actorDamage": "%1 received %2 damage!",
"actorDrain": "%1 has been robbed of %2!",
"actorGain": "%2 of %1 has increased by %3!",
"actorLoss": "%2 of %1 decreased by %3!",
"actorNoDamage": "%1 is not damaged!",
"actorNoHit": "Miss! %1 has not taken any damage!",
"actorRecovery": "%2 of %1 has recovered %3!",
"alwaysDash": "Constantly dashing",
"bgmVolume": "BGM volume",
"bgsVolume": "BGS volume",
"buffAdd": "%2 of %1 has increased!",
"buffRemove": "%2 of %1 has returned!",
"commandRemember": "Command memory",
"counterAttack": "Counterattack of %1!",
"criticalToActor": "Critical Blow!!",
"criticalToEnemy": "Critical Hit!!",
"debuffAdd": "%2 of %1 has dropped!",
"defeat": "%1 was defeated in battle",
"emerge": "%1 has appeared!",
"enemyDamage": "Dealt %2 damage to %1!",
"enemyDrain": "Stole %2 from %1!",
"enemyGain": "%2 of %1 has increased by %3!",
"enemyLoss": "%2 of %1 decreased by %3!",
"enemyNoDamage": "Cannot deal damage to %1!",
"enemyNoHit": "Miss! Unable to deal %1 damage!",
"enemyRecovery": "%2 of %1 has recovered %3!",
"escapeFailure": "But I couldn't escape!",
"escapeStart": "%1 has escaped!",
"evasion": "%1 dodged the attack!",
"expNext": "Next %1",
"expTotal": "Current %1",
"file": "File",
"levelUp": "%1 has increased by %2 %3!",
"loadMessage": "Which file would you like to load?",
"magicEvasion": "%1 nullified the magic!",
"magicReflection": "%1 reflected the magic!",
"meVolume": "Volume",
"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": "",
"obtainGold": "I got %1\\G money!",
"obtainItem": "I got %1!",
"obtainSkill": "I learned %1!",
"partyName": "%1",
"possession": "The number I have",
"preemptive": "Player 1 took the first move!",
"saveMessage": "Which file do you want to save?",
"seVolume": "SE volume",
"substitute": "%1 defended %2!",
"surprise": "%1 was taken by surprise!",
"useItem": "%1 used %2!",
"victory": "Victory for %1!"
"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": [
190,
21,
0,
6,
7,
0
0,
26,
27
],
"level": 99
},
@ -1282,7 +1284,7 @@
"level": 1
}
],
"testTroopId": 99,
"testTroopId": 40,
"title1Name": "taitorugamen",
"title2Name": "",
"titleBgm": {
@ -1293,199 +1295,199 @@
},
"variables": [
"",
"Dungeon Reach Value",
"Dungeon lottery",
"number_of_teammates",
"Action Point Change Value",
"maximum action points",
"Dungeon progress",
"maximum_dungeon_progress",
"Treasure box judgment",
"randomFriendVariable",
"trap_activation_check",
"Dungeon floor",
"Dungeon floor judgment",
"investment_amount",
"Total investment amount",
"money",
"elapsed_days",
"random judgment",
"Random judgment 2",
"Warp gate floor number specification",
"Probability of the first battler becoming an ally",
"maximum weight",
"Raw muscle strength value",
"ダンジョン到達値",
"ダンジョン抽選",
"仲間人数",
"行動ポイント増減値",
"行動ポイント最大値",
"ダンジョン進行度",
"ダンジョン進行度最大",
"宝箱判定",
"ランダム仲間変数",
"トラップ作動判定",
"ダンジョン階層",
"ダンジョン階層判定",
"投資額",
"投資総額",
"所持金",
"経過日数",
"ランダム判定",
"ランダム判定2",
"ワープゲート階数指定用",
"1番目のバトラーが仲間になる確率",
"最大重量",
"素の筋力値",
"アクター1HP",
"Actor1MaxHP",
"Total weight of held items",
"Trap Damage",
"n percent of maximum HP",
"damageAfterTurnEnd",
"アクター1最大HP",
"所持アイテム総重量",
"トラップダメージ",
"最大HPのn%",
"ターン終了後ダメージ",
"アクター2HP",
"アクター1MP",
"アクター2MP",
"time_to_clear_logs",
"score",
"maximum HP",
"maximum MP",
"strength",
"protection",
"speed",
"intelligence",
"Yes",
"Strength EV determination value + PB value",
"Defense EV determination value + PB value",
"Agility EV determination value + PB value",
"EV determination value + PB value",
"Partner bonus value",
"likability_guard",
"Night crawling dice roll",
"Event detection box (unchanging)",
"ログを消す時間",
"スコア",
"最大HP",
"最大MP",
"ちから",
"みのまもり",
"すばやさ",
"かしこさ",
"うん",
"筋力EV判定値+PB値",
"防御EV判定値+PB値",
"敏捷性EV判定値+PB値",
"運EV判定値+PB値",
"パートナーボーナス値",
"好感度ガード",
"夜這いダイス判定",
"イベント判定用箱(増減しない)",
"",
"Sum of dice",
"Strength event judgment value",
"Defense power event judgment value",
"Agility event judgment value",
"event detection value",
"Strength bonus value",
"Defense bonus value",
"Agility bonus value",
"Bonus value",
"Smartness bonus value",
"intelligence_event_detection_value",
"Strength Training EV Determination Value + PB Value",
"Agile Transit EV Determination Value + PB Value",
"さいころの合計値",
"筋力イベント判定値",
"防御力イベント判定値",
"敏捷性イベント判定値",
"運イベント判定値",
"筋力ボーナス値",
"防御力ボーナス値",
"敏捷性ボーナス値",
"運ボーナス値",
"かしこさボーナス値",
"かしこさイベント判定値",
"筋力運EV判定値+PB値",
"敏捷運EV判定値+PB値",
"",
"ProtagonistWeaponID",
"protagonistShieldID",
"ProtagonistHeadID",
"protagonistPhysicalID",
"Monica weapon ID",
"Monica Shield ID",
"Monica head ID",
"Monica body ID",
"Manliness bonus value",
"manliness_score",
"Monica's strength",
"Number of orbs",
"loop count",
"Card selection",
"Unclean penalty value",
"Maximum Contamination",
"Impurity value",
"StatusStrengthIncrease",
"主人公武器ID",
"主人公盾ID",
"主人公頭ID",
"主人公身体ID",
"モニカ武器ID",
"モニカ盾ID",
"モニカ頭ID",
"モニカ身体ID",
"男気ボーナス値",
"男気判定値",
"モニカのちから",
"オーブの数",
"ループ回数",
"カード選択",
"ケガレペナルティ値",
"ケガレ最大値",
"ケガレ値",
"ステータス筋力上昇",
"おしっこEVみた回数",
"NPC救出好感度",
"NPC救出数",
"ガーディアン遭遇確率",
"黄金の間Gトークン",
"錠前壊しトークン",
"錠前数",
"男気",
"所持金ペナルティ",
"黄金の間階層",
"黄金の間進行度",
"ダイス判定の回数",
"石碑お供え",
"黄金の部屋継続値",
"黄金の部屋抽選",
"支払いまでの日数",
"敵抽選",
"好感度総合値",
"街立ちえランダム",
"好感度加減",
"おまんこした回数",
"フェラチオした回数",
"アナルセックスした回数",
"オナニーした回数",
"\\N[1]の精液量",
"宿のおやじの精液量",
"おしっこポイント",
"快感ゲージ増減値",
"快感ゲージ最大値",
"射精ゲージ増減値",
"射精ゲージ最大値",
"外だし回数",
"中だし回数",
"口内射精回数",
"絶頂回数",
"おまんこ開発値",
"おっぱい開発値",
"アナル開発値",
"奉仕開発値",
"サブクエ1の変数",
"サブクエ2の変数",
"サブクエ3の変数",
"サブクエ4の変数",
"サブクエ5の変数",
"サブクエ6の変数",
"サブクエ7の変数",
"サブクエ8の変数",
"サブクエ9の変数",
"サブクエ10の変数",
"子ども冒険者を助けた回数",
"宝箱追加発見[運]ヤマモト",
"宝箱追加発見[運]モニカ",
"薔薇の盾 ソーンスキル",
"眠り玉",
"女冒険者A 救出回数",
"ガラクタの数",
"精子飛距離",
"精子飛距離アイテム乱数",
"ギルド嘆願金額選択変数",
"一時変数",
"",
"NPC rescue favorability",
"Number of NPCs rescued",
"Guardian encounter rate",
"GoldenRoomGToken",
"Lockbreaker token",
"Number of padlocks",
"Manliness",
"Money Penalty",
"Golden Chamber Level",
"Progress in the Golden Room",
"Number of dice rolls",
"Stone monument offering",
"GoldenRoomContinuationValue",
"GoldenRoomLottery",
"Number of days until payment",
"enemySelection",
"Overall likability value",
"StreetStandingRandom",
"feelingLevelChange",
"Number of times masturbated",
"Number of times performed fellatio",
"number_of_times_had_anal_sex",
"Number of times masturbated",
"Semen volume of \\N[1]",
"Innkeeper's semen volume",
"peePoint",
"Sensation gauge increase/decrease value",
"Maximum pleasure gauge",
"Ejaculation gauge increase/decrease value",
"maximum ejaculation gauge value",
"number_of_takeouts",
"number_of_middle_pitches",
"number_of_times_ejaculation_in_mouth",
"Number of Climaxes",
"vagina development value",
"Breast development value",
"Anal development value",
"Service development value",
"Variable of Subquery 1",
"Variable of Subquery 2",
"Variable of Subquery 3",
"Variable of Subquery 4",
"Variable of Subquery5",
"Variable of Subquery 6",
"Variable of Subquery7",
"Variable of Subquery 8",
"Variable of Subquery9",
"Variable of \"subqueue10",
"number_of_times_helped_child_adventurers",
"TreasureBoxAdditionDiscovery[Luck]\\N[1]",
"TreasureBoxAdditionDiscovery[Luck]Monica",
"Rose Shield Thorn Skill",
"Sleeping beauty",
"Female Adventurer A Rescue Count",
"Number of junk",
"sperm_flight_distance",
"Sperm flight distance item random number",
"Guild Appeal Amount Selection Variable",
"temporary variable",
"",
"ejaculation_count",
"maximum ejaculation count",
"Anal massage",
"Number of Creampie Shots (State)",
"Anal creampie count (state)",
"Number of times breasts are exposed (state)",
"number_of_times_mouth_opened (state)",
"simultaneous_peak_count",
"a",
"anal creampie counter",
"Breast exposure counter",
"mouth_open_counter",
"External pleasure value increment",
"Climax Count (State)",
"Climax Counter",
"Restrained before insertion",
"Restrained chest",
"Loop processing",
"Item1Quantity",
"Number of items",
"item_count",
"item_count",
"item_count",
"item_count_6",
"Number of items 7",
"Item8Count",
"item_count",
"item_count_10",
"Remaining number of conversations during sex",
"weapon_count",
"ArmorCount",
"ArmorCount3",
"Armor4Count",
"射精回数",
"射精回数最大値",
"アナルほぐし",
"おまんこ中だし回数(ステ)",
"アナル中だし回数(ステ)",
"おっぱいだし回数(ステ)",
"お口だし回数(ステ)",
"同時絶頂回数",
"おまんこ中だしカウンター",
"アナル中だしカウンター",
"おっぱいだしカウンター",
"お口だしカウンター",
"外だし快感値加算分",
"絶頂回数(ステ)",
"絶頂カウンター",
"拘束している挿入前",
"拘束している胸",
"ループ処理",
"アイテム1個数",
"アイテム2個数",
"アイテム3個数",
"アイテム4個数",
"アイテム5個数",
"アイテム6個数",
"アイテム7個数",
"アイテム8個数",
"アイテム9個数",
"アイテム10個数",
"エッチ中の会話残回数",
"武器2個数",
"防具2個数",
"防具3個数",
"防具4個数",
"パンツ漁り回数",
"一時的に好感度代入",
"一時的に替えのショーツの数代入",
"",
"",
"",
"",
"",
"Main Ecchi Attack Power Increase Count",
"Main Ecchi Defense Power Increase Count",
"Main Ecchi Speed Increase Count",
"Main Ecchi Intelligence Increase Count",
"Main Ecchi HP Increase Count",
"Main Ecchi MP Increase Count",
"Main Ecchi Luck Increase Count",
"X central coordinate",
"Y central coordinate",
"MH Random Log Judgment",
"SwordRecoveryAmount",
"Payment token",
"Judgment of Luck × 2000G (Devil's Reward)",
"メインえっち攻撃力上昇カウント",
"メインえっち防御力上昇カウント",
"メインえっち素早さ上昇カウント",
"メインえっち賢さ上昇カウント",
"メインえっちHP上昇カウント",
"メインえっちMP上昇カウント",
"メインえっち運上昇カウント",
"X中央座標",
"Y中央座標",
"MHランダムログ判定",
"Sソード回復量",
"支払いトークン",
"運判定×2000G悪魔の報酬",
"",
"",
"",
@ -1493,18 +1495,18 @@
"",
"",
"",
"sqGuild1: Slime count",
"sqGuild2: Proof of Kidnapper Extermination",
"sqGuild3: Healing Moss Collection",
"sqGuild4: Junk Collection",
"sqGuild5: Dungeon Worm Defeat",
"sqGuild6: Goblin King Subjugation",
"sqGuild7: Obtaining the Perfect Gem",
"sqGuild8: Obtained 2 bottles of breast milk",
"sqGuild9: Guardian Defeat",
"Guild10: Defeat the Tentacle Master",
"sqGuild11: Obtaining the Elder Sword",
"sqGuild12: Obtaining the Perfect Goddess Statue",
"sqギルド1:スライム数",
"sqギルド2:人さらい討伐の証",
"sqギルド3:癒しコケあつめ",
"sqギルド4:ガラクタあつめ",
"sqギルド5:ダンジョンワーム討伐",
"sqギルド6:ゴブリンの王討伐",
"sqギルド7:完璧な宝石の入手",
"sqギルド8:母乳を2つ入手",
"sqギルド9:ガーディアンの討伐",
"sqギルド10:触手の主討伐",
"sqギルド11:宝剣エルダードの入手",
"sqギルド12:完璧な女神像の入手",
"",
"",
"",
@ -1512,14 +1514,14 @@
"",
"",
"",
"Quest completion count",
"pleasureValuePopup",
"Ejaculation sensation popup",
"Guild staff semen volume",
"other_semen_volume",
"ejaculation_count",
"remaining ejaculation count",
"Insertion ball count",
"クエスト完了数",
"快感値ポップアップ",
"射精感ポップアップ",
"ギルド職員の精液量",
"その他の精液量",
"射精回数",
"残り射精回数",
"アナル玩具 挿入玉数",
"",
"",
"",
@ -1533,28 +1535,28 @@
"",
"",
"",
"number_of_face_swaps",
"number_of_times_breasts_are_exposed",
"Cumulative count",
"cumulative_count_from_body",
"cumulative_count_of_anal_discharge",
"cumulative_count_of_face_detection",
"cumulative_count",
"Development Point of Vagina",
"anal creampie count",
"Anal development point",
"Service Development Point",
"Breast development point",
"顔だし回数",
"おっぱいだし回数",
"おまんこだし単純な累計回数",
"からだだし単純な累計回数",
"アナルだし単純な累計回数",
"かおだし単純な累計回数",
"くちだし単純な累計回数",
"おまんこ開発ポイント",
"アナル中だし回数",
"アナル開発ポイント",
"奉仕開発ポイント",
"おっぱい開発ポイント",
"",
"",
"",
"",
"Variable for recalling",
"Just a box",
"Intelligence of \\N[1]",
"Monica's intelligence"
"回想用変数",
"ただの箱",
"\\n[1]のかしこさ",
"モニカのかしこさ"
],
"versionId": 45985290,
"versionId": 58952604,
"victoryMe": {
"name": "jingle2",
"pan": 0,
@ -1584,5 +1586,5 @@
],
"hasEncryptedImages": true,
"hasEncryptedAudio": true,
"encryptionKey": "dc55b821e770d4ed1abdb7f40313e520"
"encryptionKey": "d41d8cd98f00b204e9800998ecf8427e"
}

View file

@ -1288,7 +1288,7 @@
"code": 401,
"indent": 0,
"parameters": [
"Piga, gagagagagaga...gaga"
"ピガ、ガガガッガガガガガ…ガガ"
]
},
{
@ -1305,7 +1305,14 @@
"code": 401,
"indent": 0,
"parameters": [
"The attack you just unleashed seems to have damaged the inside of the\nGuardian! If we're going to escape, now might be our only chance...!"
"先ほどの自ら放った攻撃でガーディアンの内部が損傷したようだ!"
]
},
{
"code": 401,
"indent": 0,
"parameters": [
"逃げるなら今しかないかもしれない…!"
]
},
{
@ -1313,8 +1320,8 @@
"indent": 0,
"parameters": [
[
"Escape",
"Keep hitting it like this"
"逃げる",
"このまま叩く"
],
-1,
0,
@ -1764,8 +1771,15 @@
},
{
"id": 40,
"members": [],
"name": "",
"members": [
{
"enemyId": 50,
"x": 261,
"y": 439,
"hidden": false
}
],
"name": "テスト君",
"pages": [
{
"conditions": {

File diff suppressed because it is too large Load diff

View file

@ -1,53 +1,445 @@
/*! 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 } })
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

@ -1,5 +1,207 @@
/*! 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
}();
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;
})();

File diff suppressed because one or more lines are too long

View file

@ -1,428 +1,524 @@
var __extends = (this && this.__extends) || function (d, b) {
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 __());
};
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 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),
];
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;
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);
}
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;
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;
}
var PictureRenderer = (function (_super) {
__extends(PictureRenderer, _super);
function PictureRenderer(renderer) {
_super.call(this, renderer);
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;
}
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 = {}));
} 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 = {}));
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 = {}));
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
//# sourceMappingURL=pixi-picture.js.map

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -4,6 +4,6 @@
PluginManager.setup($plugins);
window.onload = function() {
SceneManager.run(Scene_Boot);
window.onload = function () {
SceneManager.run(Scene_Boot);
};

File diff suppressed because one or more lines are too long

View file

@ -17,76 +17,74 @@
*/
(function () {
var _Scene_Menu_create = Scene_Menu.prototype.create;
Scene_Menu.prototype.create = function () {
_Scene_Menu_create.call(this);
this._statusWindow.x = 0;
this._statusWindow.y = this._commandWindow.height;
this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;
};
var _Scene_Menu_create = Scene_Menu.prototype.create;
Scene_Menu.prototype.create = function () {
_Scene_Menu_create.call(this);
this._statusWindow.x = 0;
this._statusWindow.y = this._commandWindow.height;
this._goldWindow.x = Graphics.boxWidth - this._goldWindow.width;
};
Window_MenuCommand.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuCommand.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuCommand.prototype.maxCols = function () {
return 4;
};
Window_MenuCommand.prototype.maxCols = function () {
return 4;
};
Window_MenuCommand.prototype.numVisibleRows = function () {
return 2;
};
Window_MenuCommand.prototype.numVisibleRows = function () {
return 2;
};
Window_MenuStatus.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuStatus.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_MenuStatus.prototype.windowHeight = function () {
var h1 = this.fittingHeight(1);
var h2 = this.fittingHeight(2);
return Graphics.boxHeight - h1 - h2;
};
Window_MenuStatus.prototype.windowHeight = function () {
var h1 = this.fittingHeight(1);
var h2 = this.fittingHeight(2);
return Graphics.boxHeight - h1 - h2;
};
Window_MenuStatus.prototype.maxCols = function () {
return 4;
};
Window_MenuStatus.prototype.maxCols = function () {
return 4;
};
Window_MenuStatus.prototype.numVisibleRows = function () {
return 1;
};
Window_MenuStatus.prototype.numVisibleRows = function () {
return 1;
};
Window_MenuStatus.prototype.drawItemImage = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var w = Math.min(rect.width, 144);
var h = Math.min(rect.height, 144);
var lineHeight = this.lineHeight();
this.changePaintOpacity(actor.isBattleMember());
this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);
this.changePaintOpacity(true);
};
Window_MenuStatus.prototype.drawItemImage = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var w = Math.min(rect.width, 144);
var h = Math.min(rect.height, 144);
var lineHeight = this.lineHeight();
this.changePaintOpacity(actor.isBattleMember());
this.drawActorFace(actor, rect.x, rect.y + lineHeight * 2.5, w, h);
this.changePaintOpacity(true);
};
Window_MenuStatus.prototype.drawItemStatus = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 0, width);
this.drawActorLevel(actor, x, y + lineHeight * 1, width);
this.drawActorClass(actor, x, bottom - lineHeight * 4, width);
this.drawActorHp(actor, x, bottom - lineHeight * 3, width);
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);
};
var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;
Window_MenuActor.prototype.initialize = function () {
_Window_MenuActor_initialize.call(this);
this.y = this.fittingHeight(2);
};
Window_MenuStatus.prototype.drawItemStatus = function (index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 0, width);
this.drawActorLevel(actor, x, y + lineHeight * 1, width);
this.drawActorClass(actor, x, bottom - lineHeight * 4, width);
this.drawActorHp(actor, x, bottom - lineHeight * 3, width);
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
this.drawActorIcons(actor, x, bottom - lineHeight * 1, width);
};
var _Window_MenuActor_initialize = Window_MenuActor.prototype.initialize;
Window_MenuActor.prototype.initialize = function () {
_Window_MenuActor_initialize.call(this);
this.y = this.fittingHeight(2);
};
})();

File diff suppressed because it is too large Load diff

View file

@ -17,118 +17,116 @@
*/
(function () {
var _Scene_File_create = Scene_File.prototype.create;
Scene_File.prototype.create = function () {
_Scene_File_create.call(this);
this._listWindow.height = this._listWindow.fittingHeight(8);
var x = 0;
var y = this._listWindow.y + this._listWindow.height;
var width = Graphics.boxWidth;
var height = Graphics.boxHeight - y;
this._statusWindow = new Window_SavefileStatus(x, y, width, height);
this._statusWindow.setMode(this.mode());
this._listWindow.statusWindow = this._statusWindow;
this._listWindow.callUpdateHelp();
this.addWindow(this._statusWindow);
};
var _Scene_File_create = Scene_File.prototype.create;
Scene_File.prototype.create = function () {
_Scene_File_create.call(this);
this._listWindow.height = this._listWindow.fittingHeight(8);
var x = 0;
var y = this._listWindow.y + this._listWindow.height;
var width = Graphics.boxWidth;
var height = Graphics.boxHeight - y;
this._statusWindow = new Window_SavefileStatus(x, y, width, height);
this._statusWindow.setMode(this.mode());
this._listWindow.statusWindow = this._statusWindow;
this._listWindow.callUpdateHelp();
this.addWindow(this._statusWindow);
};
var _Scene_File_start = Scene_File.prototype.start;
Scene_File.prototype.start = function () {
_Scene_File_start.call(this);
this._listWindow.ensureCursorVisible();
this._listWindow.callUpdateHelp();
};
var _Scene_File_start = Scene_File.prototype.start;
Scene_File.prototype.start = function () {
_Scene_File_start.call(this);
this._listWindow.ensureCursorVisible();
this._listWindow.callUpdateHelp();
};
Window_SavefileList.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_SavefileList.prototype.windowWidth = function () {
return Graphics.boxWidth;
};
Window_SavefileList.prototype.maxCols = function () {
return 4;
};
Window_SavefileList.prototype.maxCols = function () {
return 4;
};
Window_SavefileList.prototype.numVisibleRows = function () {
return 5;
};
Window_SavefileList.prototype.numVisibleRows = function () {
return 5;
};
Window_SavefileList.prototype.spacing = function () {
return 8;
};
Window_SavefileList.prototype.spacing = function () {
return 8;
};
Window_SavefileList.prototype.itemHeight = function () {
return this.lineHeight() * 2;
};
Window_SavefileList.prototype.itemHeight = function () {
return this.lineHeight() * 2;
};
var _Window_SavefileList_callUpdateHelp =
Window_SavefileList.prototype.callUpdateHelp;
Window_SavefileList.prototype.callUpdateHelp = function () {
_Window_SavefileList_callUpdateHelp.call(this);
if (this.active && this.statusWindow) {
this.statusWindow.setId(this.index() + 1);
}
};
function Window_SavefileStatus() {
this.initialize.apply(this, arguments);
var _Window_SavefileList_callUpdateHelp =
Window_SavefileList.prototype.callUpdateHelp;
Window_SavefileList.prototype.callUpdateHelp = function () {
_Window_SavefileList_callUpdateHelp.call(this);
if (this.active && this.statusWindow) {
this.statusWindow.setId(this.index() + 1);
}
};
Window_SavefileStatus.prototype = Object.create(Window_Base.prototype);
Window_SavefileStatus.prototype.constructor = Window_SavefileStatus;
function Window_SavefileStatus() {
this.initialize.apply(this, arguments);
}
Window_SavefileStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._id = 1;
};
Window_SavefileStatus.prototype = Object.create(Window_Base.prototype);
Window_SavefileStatus.prototype.constructor = Window_SavefileStatus;
Window_SavefileStatus.prototype.setMode = function (mode) {
this._mode = mode;
};
Window_SavefileStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._id = 1;
};
Window_SavefileStatus.prototype.setId = function (id) {
this._id = id;
this.refresh();
};
Window_SavefileStatus.prototype.setMode = function (mode) {
this._mode = mode;
};
Window_SavefileStatus.prototype.refresh = function () {
this.contents.clear();
var id = this._id;
var valid = DataManager.isThisGameFile(id);
var info = DataManager.loadSavefileInfo(id);
var rect = this.contents.rect;
this.resetTextColor();
if (this._mode === 'load') {
this.changePaintOpacity(valid);
}
this.drawFileId(id, rect.x, rect.y);
if (info) {
this.changePaintOpacity(valid);
this.drawContents(info, rect, valid);
this.changePaintOpacity(true);
}
};
Window_SavefileStatus.prototype.setId = function (id) {
this._id = id;
this.refresh();
};
Window_SavefileStatus.prototype.drawFileId = function (id, x, y) {
this.drawText(TextManager.file + ' ' + id, x, y, 180);
};
Window_SavefileStatus.prototype.refresh = function () {
this.contents.clear();
var id = this._id;
var valid = DataManager.isThisGameFile(id);
var info = DataManager.loadSavefileInfo(id);
var rect = this.contents.rect;
this.resetTextColor();
if (this._mode === "load") {
this.changePaintOpacity(valid);
}
this.drawFileId(id, rect.x, rect.y);
if (info) {
this.changePaintOpacity(valid);
this.drawContents(info, rect, valid);
this.changePaintOpacity(true);
}
};
Window_SavefileStatus.prototype.drawContents = function (info, rect, valid) {
var bottom = rect.y + rect.height;
var playtimeY = bottom - this.lineHeight();
this.drawText(info.title, rect.x + 192, rect.y, rect.width - 192);
if (valid) {
this.drawPartyfaces(info, rect.x, bottom - 144);
}
this.drawText(info.playtime, rect.x, playtimeY, rect.width, 'right');
};
Window_SavefileStatus.prototype.drawFileId = function (id, x, y) {
this.drawText(TextManager.file + " " + id, x, y, 180);
};
Window_SavefileStatus.prototype.drawPartyfaces = function (info, x, y) {
if (info && info.faces) {
for (var i = 0; i < info.faces.length; i++) {
var data = info.faces[i];
this.drawFace(data[0], data[1], x + i * 150, y);
}
}
};
Window_SavefileStatus.prototype.drawContents = function (info, rect, valid) {
var bottom = rect.y + rect.height;
var playtimeY = bottom - this.lineHeight();
this.drawText(info.title, rect.x + 192, rect.y, rect.width - 192);
if (valid) {
this.drawPartyfaces(info, rect.x, bottom - 144);
}
this.drawText(info.playtime, rect.x, playtimeY, rect.width, "right");
};
Window_SavefileStatus.prototype.drawPartyfaces = function (info, x, y) {
if (info && info.faces) {
for (var i = 0; i < info.faces.length; i++) {
var data = info.faces[i];
this.drawFace(data[0], data[1], x + i * 150, y);
}
}
};
})();

File diff suppressed because it is too large Load diff

View file

@ -102,414 +102,460 @@
*/
(function () {
'use strict';
var metaTagPrefix = 'AS';
"use strict";
var metaTagPrefix = "AS";
var getArgNumber = function (arg, min, max) {
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(convertEscapeCharacters(arg)) || 0).clamp(min, max);
};
var getArgNumber = function (arg, min, max) {
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(convertEscapeCharacters(arg)) || 0).clamp(min, max);
};
var convertEscapeCharacters = function (text) {
if (text == null || text === true) text = '';
text = text.replace(/&gt;?/gi, '>');
text = text.replace(/&lt;?/gi, '<');
text = text.replace(/\\/g, '\x1b');
text = text.replace(/\x1b\x1b/g, '\\');
text = text.replace(/\x1bV\[(\d+)\]/gi, function () {
return $gameVariables.value(parseInt(arguments[1]));
}.bind(this));
text = text.replace(/\x1bV\[(\d+)\]/gi, function () {
return $gameVariables.value(parseInt(arguments[1]));
}.bind(this));
text = text.replace(/\x1bN\[(\d+)\]/gi, function () {
var actor = parseInt(arguments[1]) >= 1 ? $gameActors.actor(parseInt(arguments[1])) : null;
return actor ? actor.name() : '';
}.bind(this));
text = text.replace(/\x1bP\[(\d+)\]/gi, function () {
var actor = parseInt(arguments[1]) >= 1 ? $gameParty.members()[parseInt(arguments[1]) - 1] : null;
return actor ? actor.name() : '';
}.bind(this));
text = text.replace(/\x1bG/gi, TextManager.currencyUnit);
return text;
};
var convertEscapeCharacters = function (text) {
if (text == null || text === true) text = "";
text = text.replace(/&gt;?/gi, ">");
text = text.replace(/&lt;?/gi, "<");
text = text.replace(/\\/g, "\x1b");
text = text.replace(/\x1b\x1b/g, "\\");
text = text.replace(
/\x1bV\[(\d+)\]/gi,
function () {
return $gameVariables.value(parseInt(arguments[1]));
}.bind(this)
);
text = text.replace(
/\x1bV\[(\d+)\]/gi,
function () {
return $gameVariables.value(parseInt(arguments[1]));
}.bind(this)
);
text = text.replace(
/\x1bN\[(\d+)\]/gi,
function () {
var actor =
parseInt(arguments[1]) >= 1
? $gameActors.actor(parseInt(arguments[1]))
: null;
return actor ? actor.name() : "";
}.bind(this)
);
text = text.replace(
/\x1bP\[(\d+)\]/gi,
function () {
var actor =
parseInt(arguments[1]) >= 1
? $gameParty.members()[parseInt(arguments[1]) - 1]
: null;
return actor ? actor.name() : "";
}.bind(this)
);
text = text.replace(/\x1bG/gi, TextManager.currencyUnit);
return text;
};
var isEmpty = function (that) {
return Object.keys(that).length <= 0;
};
var isEmpty = function (that) {
return Object.keys(that).length <= 0;
};
var iterate = function (that, handler) {
Object.keys(that).forEach(function (key, index) {
handler.call(that, key, that[key], index);
var iterate = function (that, handler) {
Object.keys(that).forEach(function (key, index) {
handler.call(that, key, that[key], index);
});
};
//=============================================================================
// Game_System
// 自動付与ステートのメッセージ表示フラグを定義します。
//=============================================================================
var _Game_System_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function () {
_Game_System_initialize.apply(this, arguments);
this.automaticStateAddMessage = null;
};
//=============================================================================
// Game_BattlerBase
// 自動付与ステートの更新処理を定義します。
//=============================================================================
Game_BattlerBase.prototype.updateAutomaticState = function () {
DataManager.iterateAutomaticState(
function (state) {
if (!state || isEmpty(state.meta)) return;
var stateId = state.id;
var result = this.isAutomaticValid(state, false);
if (result) {
if (!this.isStateAffected(stateId) && this.isStateAddable(stateId)) {
this.addState(stateId);
if ($gameSystem.automaticStateAddMessage) this.showAddedStates();
this._result.deleteAddedStates(stateId);
}
} else if (result === false && this.isStateAffected(stateId)) {
this.removeState(stateId);
this._result.deleteRemovedStates(stateId);
}
}.bind(this)
);
};
Game_BattlerBase.prototype.showAddedStates = function () {};
Game_BattlerBase.prototype.isAutomaticValid = function (state, result) {
this._automaticTargetState = state;
if (!this.isAutoStateBattler()) {
return null;
}
var switchId = this.getStateMetaNumber(0, 1);
if (switchId !== null) {
if ($gameSwitches.value(switchId)) {
result = true;
} else {
return false;
}
}
var formula = this.getStateMetaString(1);
if (formula !== null) {
if (eval(formula)) {
result = true;
} else {
return false;
}
}
var upperLimitHp = this.getStateMetaNumber(2, 0, 100);
if (upperLimitHp !== null) {
if (Math.floor(this.hpRate() * 100) >= upperLimitHp) {
result = true;
} else {
return false;
}
}
var lowerLimitHp = this.getStateMetaNumber(3, 0, 100);
if (lowerLimitHp !== null) {
if (Math.floor(this.hpRate() * 100) <= lowerLimitHp) {
result = true;
} else {
return false;
}
}
var upperLimitMp = this.getStateMetaNumber(4, 0, 100);
if (upperLimitMp !== null) {
if (Math.floor(this.mpRate() * 100) >= upperLimitMp) {
result = true;
} else {
return false;
}
}
var lowerLimitMp = this.getStateMetaNumber(5, 0, 100);
if (lowerLimitMp !== null) {
if (Math.floor(this.mpRate() * 100) <= lowerLimitMp) {
result = true;
} else {
return false;
}
}
var upperLimitTp = this.getStateMetaNumber(6, 0, 100);
if (upperLimitTp !== null) {
if (Math.floor(this.tpRate() * 100) >= upperLimitTp) {
result = true;
} else {
return false;
}
}
var lowerLimitTp = this.getStateMetaNumber(7, 0, 100);
if (lowerLimitTp !== null) {
if (Math.floor(this.tpRate() * 100) <= lowerLimitTp) {
result = true;
} else {
return false;
}
}
var unitIndex = this.getStateMetaNumber(12, 0);
if (unitIndex !== null) {
if (this.index() === unitIndex - 1) {
result = true;
} else {
return false;
}
}
return result;
};
Game_BattlerBase.prototype.index = function () {
return 0;
};
Game_BattlerBase.prototype.getStateMetaNumber = function (
tagIndex,
min,
max
) {
var value =
this._automaticTargetState.meta[
DataManager.getAutomaticTagName(tagIndex)
];
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return value !== undefined ? getArgNumber(value, min, max) : null;
};
Game_BattlerBase.prototype.getStateMetaString = function (tagIndex) {
var value =
this._automaticTargetState.meta[
DataManager.getAutomaticTagName(tagIndex)
];
return value !== undefined ? convertEscapeCharacters(value) : null;
};
Game_BattlerBase.prototype.isAutoStateBattler = function () {
var battlerIdValue = this.getStateMetaString(
this.getBattlerCheckTagIndex()
);
if (!battlerIdValue) {
return true;
}
var batterId = this.getBattlerId();
return battlerIdValue.split(",").some(function (stateTargetIdText) {
return batterId === parseInt(stateTargetIdText);
});
};
Game_BattlerBase.prototype.isStateMetaInfo = function (tagIndex) {
return this._automaticTargetState.meta.hasOwnProperty(
DataManager.getAutomaticTagName(tagIndex)
);
};
var _Game_BattlerBase_setHp = Game_BattlerBase.prototype.setHp;
Game_BattlerBase.prototype.setHp = function (hp) {
_Game_BattlerBase_setHp.apply(this, arguments);
this.updateAutomaticState();
};
var _Game_BattlerBase_setMp = Game_BattlerBase.prototype.setMp;
Game_BattlerBase.prototype.setMp = function (mp) {
_Game_BattlerBase_setMp.apply(this, arguments);
this.updateAutomaticState();
};
var _Game_BattlerBase_setTp = Game_BattlerBase.prototype.setTp;
Game_BattlerBase.prototype.setTp = function (tp) {
_Game_BattlerBase_setTp.apply(this, arguments);
this.updateAutomaticState();
};
var _Game_BattlerBase_recoverAll = Game_BattlerBase.prototype.recoverAll;
Game_BattlerBase.prototype.recoverAll = function () {
_Game_BattlerBase_recoverAll.apply(this, arguments);
this.updateAutomaticState();
this._hp = this.mhp;
this._mp = this.mmp;
};
Game_BattlerBase.prototype.getBattlerId = function () {
return 0;
};
Game_BattlerBase.prototype.getBattlerCheckTagIndex = function () {
return 0;
};
Game_BattlerBase.prototype.getOppositeBattlerCheckTagIndex = function () {
return 0;
};
//=============================================================================
// Game_Actors
// データが存在するかどうかを返します。
//=============================================================================
Game_Actors.prototype.isExistData = function (actorId) {
return !!this._data[actorId];
};
//=============================================================================
// Game_Actor
// 自動付与ステートの更新処理を定義します。
//=============================================================================
Game_Actor.prototype.updateAutomaticState = function () {
if (!$gameActors.isExistData(this._actorId)) return;
Game_BattlerBase.prototype.updateAutomaticState.call(this);
};
Game_Actor.prototype.isAutomaticValid = function (state) {
this._automaticTargetState = state;
var result = null;
var weaponId = this.getStateMetaString(10, 1);
if (weaponId !== null) {
if (this.hasWeapon($dataWeapons[weaponId])) {
result = true;
} else {
return false;
}
}
var armorId = this.getStateMetaNumber(11, 1);
if (armorId !== null) {
if (this.hasArmor($dataArmors[armorId])) {
result = true;
} else {
return false;
}
}
return Game_BattlerBase.prototype.isAutomaticValid.call(
this,
state,
result
);
};
var _Game_Actor_changeEquip = Game_Actor.prototype.changeEquip;
Game_Actor.prototype.changeEquip = function (slotId, item) {
_Game_Actor_changeEquip.apply(this, arguments);
this.updateAutomaticState();
};
Game_Actor.prototype.getBattlerId = function () {
return this._actorId;
};
Game_Actor.prototype.getBattlerCheckTagIndex = function () {
return 8;
};
Game_Actor.prototype.getOppositeBattlerCheckTagIndex = function () {
return Game_Enemy.prototype.getBattlerCheckTagIndex.call(this);
};
//=============================================================================
// Game_Enemy
// 自動付与ステートの更新処理を定義します。
//=============================================================================
Game_Enemy.prototype.getBattlerId = function () {
return this._enemyId;
};
Game_Enemy.prototype.getBattlerCheckTagIndex = function () {
return 9;
};
Game_Enemy.prototype.getOppositeBattlerCheckTagIndex = function () {
return Game_Actor.prototype.getBattlerCheckTagIndex.call(this);
};
//=============================================================================
// Game_Party
// 全てのアクターの自動付与ステートを更新します。
//=============================================================================
Game_Party.prototype.requestUpdateAutomaticState = function () {
this._requestUpdateAutomaticState = true;
};
Game_Party.prototype.updateAutomaticState = function () {
this.members().forEach(function (actor) {
actor.updateAutomaticState();
});
this._lastUpdateFrameAutomaticState = Graphics.frameCount;
};
Game_Party.prototype.updateAutomaticStateIfRequested = function () {
var coolTime =
this._lastUpdateFrameAutomaticState + 10 > Graphics.frameCount;
if (this._requestUpdateAutomaticState && !coolTime) {
this.updateAutomaticState();
this._requestUpdateAutomaticState = false;
}
};
var _Game_Party_swapOrder = Game_Party.prototype.swapOrder;
Game_Party.prototype.swapOrder = function (index1, index2) {
_Game_Party_swapOrder.apply(this, arguments);
this.updateAutomaticState();
};
//=============================================================================
// Game_Map
// 場所移動時に自動付与ステートを更新します。
//=============================================================================
var _Game_Map_refreshIfNeeded = Game_Map.prototype.refreshIfNeeded;
Game_Map.prototype.refreshIfNeeded = function () {
_Game_Map_refreshIfNeeded.apply(this, arguments);
$gameParty.updateAutomaticStateIfRequested();
};
var _Game_Map_setup = Game_Map.prototype.setup;
Game_Map.prototype.setup = function (mapId) {
_Game_Map_setup.apply(this, arguments);
$gameParty.updateAutomaticState();
};
var _Game_Map_refresh = Game_Map.prototype.refresh;
Game_Map.prototype.refresh = function () {
_Game_Map_refresh.apply(this, arguments);
$gameParty.requestUpdateAutomaticState();
};
//=============================================================================
// Game_ActionResult
// ステート付与、解除時のメッセージを抑制します。
//=============================================================================
Game_ActionResult.prototype.deleteRemovedStates = function (stateId) {
iterate(
this.removedStates,
function (key, value, index) {
if (value === stateId) this.removedStates.splice(index, 1);
}.bind(this)
);
};
Game_ActionResult.prototype.deleteAddedStates = function (stateId) {
iterate(
this.addedStates,
function (key, value, index) {
if (value === stateId) this.addedStates.splice(index, 1);
}.bind(this)
);
};
//=============================================================================
// DataManager
// データベースのロード時に自動付与ステートのみを抽出します。
//=============================================================================
DataManager._automaticTagNames = [
"スイッチ",
"計算式",
"上限HP",
"下限HP",
"上限MP",
"下限MP",
"上限TP",
"下限TP",
"アクター",
"敵キャラ",
"武器装備",
"防具装備",
"並び順",
];
var _DataManager_onLoad = DataManager.onLoad;
DataManager.onLoad = function (object) {
_DataManager_onLoad.apply(this, arguments);
if (object === $dataStates) {
this.setupAutomaticState();
}
};
DataManager.setupAutomaticState = function () {
this._automaticStates = $dataStates.filter(
function (state) {
return this._automaticTagNames.some(function (tagName) {
return state && !!state.meta[metaTagPrefix + tagName];
});
};
}.bind(this)
);
};
//=============================================================================
// Game_System
// 自動付与ステートのメッセージ表示フラグを定義します。
//=============================================================================
var _Game_System_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function () {
_Game_System_initialize.apply(this, arguments);
this.automaticStateAddMessage = null;
};
DataManager.iterateAutomaticState = function (callBackFunc) {
this._automaticStates.forEach(callBackFunc);
};
//=============================================================================
// Game_BattlerBase
// 自動付与ステートの更新処理を定義します。
//=============================================================================
Game_BattlerBase.prototype.updateAutomaticState = function () {
DataManager.iterateAutomaticState(function (state) {
if (!state || isEmpty(state.meta)) return;
var stateId = state.id;
var result = this.isAutomaticValid(state, false);
if (result) {
if (!this.isStateAffected(stateId) && this.isStateAddable(stateId)) {
this.addState(stateId);
if ($gameSystem.automaticStateAddMessage) this.showAddedStates();
this._result.deleteAddedStates(stateId);
}
} else if (result === false && this.isStateAffected(stateId)) {
this.removeState(stateId);
this._result.deleteRemovedStates(stateId);
}
}.bind(this));
};
Game_BattlerBase.prototype.showAddedStates = function () {
};
Game_BattlerBase.prototype.isAutomaticValid = function (state, result) {
this._automaticTargetState = state;
if (!this.isAutoStateBattler()) {
return null;
}
var switchId = this.getStateMetaNumber(0, 1);
if (switchId !== null) {
if ($gameSwitches.value(switchId)) {
result = true;
} else {
return false;
}
}
var formula = this.getStateMetaString(1);
if (formula !== null) {
if (eval(formula)) {
result = true;
} else {
return false;
}
}
var upperLimitHp = this.getStateMetaNumber(2, 0, 100);
if (upperLimitHp !== null) {
if (Math.floor(this.hpRate() * 100) >= upperLimitHp) {
result = true;
} else {
return false;
}
}
var lowerLimitHp = this.getStateMetaNumber(3, 0, 100);
if (lowerLimitHp !== null) {
if (Math.floor(this.hpRate() * 100) <= lowerLimitHp) {
result = true;
} else {
return false;
}
}
var upperLimitMp = this.getStateMetaNumber(4, 0, 100);
if (upperLimitMp !== null) {
if (Math.floor(this.mpRate() * 100) >= upperLimitMp) {
result = true;
} else {
return false;
}
}
var lowerLimitMp = this.getStateMetaNumber(5, 0, 100);
if (lowerLimitMp !== null) {
if (Math.floor(this.mpRate() * 100) <= lowerLimitMp) {
result = true;
} else {
return false;
}
}
var upperLimitTp = this.getStateMetaNumber(6, 0, 100);
if (upperLimitTp !== null) {
if (Math.floor(this.tpRate() * 100) >= upperLimitTp) {
result = true;
} else {
return false;
}
}
var lowerLimitTp = this.getStateMetaNumber(7, 0, 100);
if (lowerLimitTp !== null) {
if (Math.floor(this.tpRate() * 100) <= lowerLimitTp) {
result = true;
} else {
return false;
}
}
var unitIndex = this.getStateMetaNumber(12, 0);
if (unitIndex !== null) {
if (this.index() === unitIndex - 1) {
result = true;
} else {
return false;
}
}
return result;
};
Game_BattlerBase.prototype.index = function () {
return 0;
};
Game_BattlerBase.prototype.getStateMetaNumber = function (tagIndex, min, max) {
var value = this._automaticTargetState.meta[DataManager.getAutomaticTagName(tagIndex)];
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return value !== undefined ? getArgNumber(value, min, max) : null;
};
Game_BattlerBase.prototype.getStateMetaString = function (tagIndex) {
var value = this._automaticTargetState.meta[DataManager.getAutomaticTagName(tagIndex)];
return value !== undefined ? convertEscapeCharacters(value) : null;
};
Game_BattlerBase.prototype.isAutoStateBattler = function () {
var battlerIdValue = this.getStateMetaString(this.getBattlerCheckTagIndex());
if (!battlerIdValue) {
return true;
}
var batterId = this.getBattlerId();
return battlerIdValue.split(',').some(function (stateTargetIdText) {
return batterId === parseInt(stateTargetIdText);
});
};
Game_BattlerBase.prototype.isStateMetaInfo = function (tagIndex) {
return this._automaticTargetState.meta.hasOwnProperty(DataManager.getAutomaticTagName(tagIndex));
};
var _Game_BattlerBase_setHp = Game_BattlerBase.prototype.setHp;
Game_BattlerBase.prototype.setHp = function (hp) {
_Game_BattlerBase_setHp.apply(this, arguments);
this.updateAutomaticState();
};
var _Game_BattlerBase_setMp = Game_BattlerBase.prototype.setMp;
Game_BattlerBase.prototype.setMp = function (mp) {
_Game_BattlerBase_setMp.apply(this, arguments);
this.updateAutomaticState();
};
var _Game_BattlerBase_setTp = Game_BattlerBase.prototype.setTp;
Game_BattlerBase.prototype.setTp = function (tp) {
_Game_BattlerBase_setTp.apply(this, arguments);
this.updateAutomaticState();
};
var _Game_BattlerBase_recoverAll = Game_BattlerBase.prototype.recoverAll;
Game_BattlerBase.prototype.recoverAll = function () {
_Game_BattlerBase_recoverAll.apply(this, arguments);
this.updateAutomaticState();
this._hp = this.mhp;
this._mp = this.mmp;
};
Game_BattlerBase.prototype.getBattlerId = function () {
return 0;
};
Game_BattlerBase.prototype.getBattlerCheckTagIndex = function () {
return 0;
};
Game_BattlerBase.prototype.getOppositeBattlerCheckTagIndex = function () {
return 0;
};
//=============================================================================
// Game_Actors
// データが存在するかどうかを返します。
//=============================================================================
Game_Actors.prototype.isExistData = function (actorId) {
return !!this._data[actorId];
};
//=============================================================================
// Game_Actor
// 自動付与ステートの更新処理を定義します。
//=============================================================================
Game_Actor.prototype.updateAutomaticState = function () {
if (!$gameActors.isExistData(this._actorId)) return;
Game_BattlerBase.prototype.updateAutomaticState.call(this);
};
Game_Actor.prototype.isAutomaticValid = function (state) {
this._automaticTargetState = state;
var result = null;
var weaponId = this.getStateMetaString(10, 1);
if (weaponId !== null) {
if (this.hasWeapon($dataWeapons[weaponId])) {
result = true;
} else {
return false;
}
}
var armorId = this.getStateMetaNumber(11, 1);
if (armorId !== null) {
if (this.hasArmor($dataArmors[armorId])) {
result = true;
} else {
return false;
}
}
return Game_BattlerBase.prototype.isAutomaticValid.call(this, state, result);
};
var _Game_Actor_changeEquip = Game_Actor.prototype.changeEquip;
Game_Actor.prototype.changeEquip = function (slotId, item) {
_Game_Actor_changeEquip.apply(this, arguments);
this.updateAutomaticState();
};
Game_Actor.prototype.getBattlerId = function () {
return this._actorId;
};
Game_Actor.prototype.getBattlerCheckTagIndex = function () {
return 8;
};
Game_Actor.prototype.getOppositeBattlerCheckTagIndex = function () {
return Game_Enemy.prototype.getBattlerCheckTagIndex.call(this);
};
//=============================================================================
// Game_Enemy
// 自動付与ステートの更新処理を定義します。
//=============================================================================
Game_Enemy.prototype.getBattlerId = function () {
return this._enemyId;
};
Game_Enemy.prototype.getBattlerCheckTagIndex = function () {
return 9;
};
Game_Enemy.prototype.getOppositeBattlerCheckTagIndex = function () {
return Game_Actor.prototype.getBattlerCheckTagIndex.call(this);
};
//=============================================================================
// Game_Party
// 全てのアクターの自動付与ステートを更新します。
//=============================================================================
Game_Party.prototype.requestUpdateAutomaticState = function () {
this._requestUpdateAutomaticState = true;
};
Game_Party.prototype.updateAutomaticState = function () {
this.members().forEach(function (actor) {
actor.updateAutomaticState();
});
this._lastUpdateFrameAutomaticState = Graphics.frameCount;
};
Game_Party.prototype.updateAutomaticStateIfRequested = function () {
var coolTime = (this._lastUpdateFrameAutomaticState + 10 > Graphics.frameCount);
if (this._requestUpdateAutomaticState && !coolTime) {
this.updateAutomaticState();
this._requestUpdateAutomaticState = false;
}
};
var _Game_Party_swapOrder = Game_Party.prototype.swapOrder;
Game_Party.prototype.swapOrder = function (index1, index2) {
_Game_Party_swapOrder.apply(this, arguments);
this.updateAutomaticState();
};
//=============================================================================
// Game_Map
// 場所移動時に自動付与ステートを更新します。
//=============================================================================
var _Game_Map_refreshIfNeeded = Game_Map.prototype.refreshIfNeeded;
Game_Map.prototype.refreshIfNeeded = function () {
_Game_Map_refreshIfNeeded.apply(this, arguments);
$gameParty.updateAutomaticStateIfRequested();
};
var _Game_Map_setup = Game_Map.prototype.setup;
Game_Map.prototype.setup = function (mapId) {
_Game_Map_setup.apply(this, arguments);
$gameParty.updateAutomaticState();
};
var _Game_Map_refresh = Game_Map.prototype.refresh;
Game_Map.prototype.refresh = function () {
_Game_Map_refresh.apply(this, arguments);
$gameParty.requestUpdateAutomaticState();
};
//=============================================================================
// Game_ActionResult
// ステート付与、解除時のメッセージを抑制します。
//=============================================================================
Game_ActionResult.prototype.deleteRemovedStates = function (stateId) {
iterate(this.removedStates, function (key, value, index) {
if (value === stateId) this.removedStates.splice(index, 1);
}.bind(this));
};
Game_ActionResult.prototype.deleteAddedStates = function (stateId) {
iterate(this.addedStates, function (key, value, index) {
if (value === stateId) this.addedStates.splice(index, 1);
}.bind(this));
};
//=============================================================================
// DataManager
// データベースのロード時に自動付与ステートのみを抽出します。
//=============================================================================
DataManager._automaticTagNames = [
'スイッチ',
'計算式',
'上限HP',
'下限HP',
'上限MP',
'下限MP',
'上限TP',
'下限TP',
'アクター',
'敵キャラ',
'武器装備',
'防具装備',
'並び順'
];
var _DataManager_onLoad = DataManager.onLoad;
DataManager.onLoad = function (object) {
_DataManager_onLoad.apply(this, arguments);
if (object === $dataStates) {
this.setupAutomaticState();
}
};
DataManager.setupAutomaticState = function () {
this._automaticStates = $dataStates.filter(function (state) {
return this._automaticTagNames.some(function (tagName) {
return state && !!state.meta[metaTagPrefix + tagName];
});
}.bind(this));
};
DataManager.iterateAutomaticState = function (callBackFunc) {
this._automaticStates.forEach(callBackFunc);
};
DataManager.getAutomaticTagName = function (index) {
return metaTagPrefix + this._automaticTagNames[index];
};
DataManager.getAutomaticTagName = function (index) {
return metaTagPrefix + this._automaticTagNames[index];
};
})();

View file

@ -151,277 +151,331 @@
*/
(function () {
'use strict';
var pluginName = 'BattleLogToMessage';
var metaTagPrefix = 'BLM';
"use strict";
var pluginName = "BattleLogToMessage";
var metaTagPrefix = "BLM";
var getCommandName = function (command) {
return (command || '').toUpperCase();
var getCommandName = function (command) {
return (command || "").toUpperCase();
};
var getParamOther = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return null;
};
var getParamNumber = function (paramNames, min, max) {
var value = getParamOther(paramNames);
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(value, 10) || 0).clamp(min, max);
};
var getParamBoolean = function (paramNames) {
var value = getParamOther(paramNames);
return (
(value || "").toUpperCase() === "ON" ||
(value || "").toUpperCase() === "TRUE"
);
};
//=============================================================================
// パラメータの取得と整形
//=============================================================================
var paramStatusPosUpper = getParamBoolean([
"StatusPosUpper",
"ステータス上部配置",
]);
var paramSuppressPopup = getParamBoolean([
"SuppressPopup",
"ポップアップ抑制",
]);
var paramMessagePosUpper = getParamBoolean([
"MessagePosUpper",
"メッセージ上部配置",
]);
var paramMessageSpeed = getParamNumber(
["MessageSpeed", "メッセージ速度変数"],
0
);
var paramWaitForEndAction = getParamNumber(
["WaitForEndAction", "行動終了後ウェイト"],
0
);
var paramMessageLines = getParamNumber(["MessageLines", "メッセージ行数"], 0);
var paramHiddenIfEmpty = getParamBoolean([
"HiddenIfEmpty",
"空の場合に非表示",
]);
var paramSkillViewSimplified = getParamBoolean([
"SkillViewSimplified",
"スキル名簡易表示",
]);
var paramMessageWindowNoApply = getParamBoolean([
"MessageWindowNoApply",
"メッセージウィンドウ非適用",
]);
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.apply(this, arguments);
var commandPrefix = new RegExp("^" + metaTagPrefix);
if (!command.match(commandPrefix)) return;
this.pluginCommandBattleLogToMessage(
command.replace(commandPrefix, ""),
args
);
};
Game_Interpreter.prototype.pluginCommandBattleLogToMessage = function (
command
) {
switch (getCommandName(command)) {
case "_BATTLE_LOG_OPEN":
case "_バトルログ開く":
BattleManager.setBattleLogClose(false);
break;
case "_BATTLE_LOG_CLOSE":
case "_バトルログ閉じる":
BattleManager.setBattleLogClose(true);
break;
}
};
//=============================================================================
// BattleManager
// ウィンドウの開閉状態を管理します。
//=============================================================================
var _BattleManager_initMembers = BattleManager.initMembers;
BattleManager.initMembers = function () {
_BattleManager_initMembers.apply(this, arguments);
this._battleLogClose = false;
};
BattleManager.setBattleLogClose = function (value) {
this._battleLogClose = value;
};
BattleManager.isBattleLogClose = function () {
return this._battleLogClose;
};
var _BattleManager_displayRewards = BattleManager.displayRewards;
BattleManager.displayRewards = function () {
this._logWindow.hide();
_BattleManager_displayRewards.apply(this, arguments);
};
SceneManager.isBattleScene = function () {
return this._scene instanceof Scene_Battle;
};
BattleManager.isStarting = function () {
return this._phase === "start";
};
//=============================================================================
// Scene_Battle
// ウィンドウのレイアウトを変更します。
//=============================================================================
var _Scene_Battle_createAllWindows = Scene_Battle.prototype.createAllWindows;
Scene_Battle.prototype.createAllWindows = function () {
_Scene_Battle_createAllWindows.apply(this, arguments);
this._windowLayer.removeChild(this._logWindow);
this._windowLayer.addChildAt(
this._logWindow,
this._windowLayer.getChildIndex(this._messageWindow) - 1
);
if (paramStatusPosUpper) {
this.adjustWindowPositions();
}
if (paramMessagePosUpper) {
this.adjustWindowMessagePositions();
}
};
Scene_Battle.prototype.adjustWindowPositions = function () {
this._partyCommandWindow.y = 0;
this._actorCommandWindow.y = 0;
this._statusWindow.y = 0;
this._helpWindow.y = this._partyCommandWindow.height;
this._actorWindow.y = 0;
this._enemyWindow.y = 0;
this._skillWindow.y = this._helpWindow.y + this._helpWindow.height;
this._itemWindow.y = this._skillWindow.y;
};
Scene_Battle.prototype.adjustWindowMessagePositions = function () {
this._messageWindow.y = 0;
this._logWindow.y = 0;
};
var _Scene_Battle_updateWindowPositions =
Scene_Battle.prototype.updateWindowPositions;
Scene_Battle.prototype.updateWindowPositions = function () {
if (
BattleManager.isInputting() ||
BattleManager.isBattleLogClose() ||
BattleManager.isStarting()
) {
this._logWindow.close();
} else {
this._logWindow.open();
}
_Scene_Battle_updateWindowPositions.apply(this, arguments);
};
//=============================================================================
// Window_BattleLog
// ウィンドウのレイアウトを変更します。
//=============================================================================
var _Window_BattleLog_initialize = Window_BattleLog.prototype.initialize;
Window_BattleLog.prototype.initialize = function () {
_Window_BattleLog_initialize.apply(this, arguments);
this.y = Graphics.boxHeight - this.windowHeight();
this.opacity = 255;
this.openness = 0;
};
Window_BattleLog.prototype.maxLines = function () {
return paramMessageLines || 4;
};
var _Window_BattleLog_update = Window_BattleLog.prototype.update;
Window_BattleLog.prototype.update = function () {
Window_Base.prototype.update.apply(this, arguments);
_Window_BattleLog_update.apply(this, arguments);
};
var _Window_BattleLog_refresh = Window_BattleLog.prototype.refresh;
Window_BattleLog.prototype.refresh = function () {
_Window_BattleLog_refresh.apply(this, arguments);
if (!paramHiddenIfEmpty) {
return;
}
if (this._lines.length <= 0) {
this.hide();
} else {
this.show();
}
};
var _Window_BattleLog_messageSpeed = Window_BattleLog.prototype.messageSpeed;
Window_BattleLog.prototype.messageSpeed = function () {
return paramMessageSpeed
? $gameVariables.value(paramMessageSpeed)
: _Window_BattleLog_messageSpeed.apply(this, arguments);
};
Window_BattleLog.prototype.waitForCustom = function (waitCount) {
this._waitCount = waitCount;
};
var _Window_BattleLog_endAction = Window_BattleLog.prototype.endAction;
Window_BattleLog.prototype.endAction = function (subject) {
if (paramWaitForEndAction) {
this.push("waitForCustom", paramWaitForEndAction);
}
_Window_BattleLog_endAction.apply(this, arguments);
};
var _Window_BattleLog_addText = Window_BattleLog.prototype.addText;
Window_BattleLog.prototype.addText = function (text) {
if (!text) {
return;
}
if (this._lines.length >= this.maxLines()) {
this._waitCount = 0;
this.push("clear");
this.push("addText", text);
return;
}
_Window_BattleLog_addText.apply(this, arguments);
};
Window_BattleLog.prototype.drawBackground = function () {};
if (paramSkillViewSimplified) {
Window_BattleLog.prototype.displayAction = function (subject, item) {
this.push("addText", item.name);
this._displayCenterText = item.name;
};
var getParamOther = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return null;
var _Window_BattleLog_drawLineText =
Window_BattleLog.prototype.drawLineText;
Window_BattleLog.prototype.drawLineText = function (index) {
if (this._displayCenterText === this._lines[index]) {
var rect = this.itemRectForText(index);
var realWidth = this.drawTextEx(
this._lines[index],
rect.x,
-rect.height,
rect.width
);
rect.x += rect.width / 2 - realWidth / 2;
this.contents.clearRect(rect.x, rect.y, rect.width, rect.height);
this.drawTextEx(this._lines[index], rect.x, rect.y, rect.width);
} else {
_Window_BattleLog_drawLineText.apply(this, arguments);
}
};
var getParamNumber = function (paramNames, min, max) {
var value = getParamOther(paramNames);
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(value, 10) || 0).clamp(min, max);
};
var getParamBoolean = function (paramNames) {
var value = getParamOther(paramNames);
return (value || '').toUpperCase() === 'ON' || (value || '').toUpperCase() === 'TRUE';
};
//=============================================================================
// パラメータの取得と整形
//=============================================================================
var paramStatusPosUpper = getParamBoolean(['StatusPosUpper', 'ステータス上部配置']);
var paramSuppressPopup = getParamBoolean(['SuppressPopup', 'ポップアップ抑制']);
var paramMessagePosUpper = getParamBoolean(['MessagePosUpper', 'メッセージ上部配置']);
var paramMessageSpeed = getParamNumber(['MessageSpeed', 'メッセージ速度変数'], 0);
var paramWaitForEndAction = getParamNumber(['WaitForEndAction', '行動終了後ウェイト'], 0);
var paramMessageLines = getParamNumber(['MessageLines', 'メッセージ行数'], 0);
var paramHiddenIfEmpty = getParamBoolean(['HiddenIfEmpty', '空の場合に非表示']);
var paramSkillViewSimplified = getParamBoolean(['SkillViewSimplified', 'スキル名簡易表示']);
var paramMessageWindowNoApply = getParamBoolean(['MessageWindowNoApply', 'メッセージウィンドウ非適用']);
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.apply(this, arguments);
var commandPrefix = new RegExp('^' + metaTagPrefix);
if (!command.match(commandPrefix)) return;
this.pluginCommandBattleLogToMessage(command.replace(commandPrefix, ''), args);
};
Game_Interpreter.prototype.pluginCommandBattleLogToMessage = function (command) {
switch (getCommandName(command)) {
case '_BATTLE_LOG_OPEN':
case '_バトルログ開く':
BattleManager.setBattleLogClose(false);
break;
case '_BATTLE_LOG_CLOSE':
case '_バトルログ閉じる':
BattleManager.setBattleLogClose(true);
break;
}
};
//=============================================================================
// BattleManager
// ウィンドウの開閉状態を管理します。
//=============================================================================
var _BattleManager_initMembers = BattleManager.initMembers;
BattleManager.initMembers = function () {
_BattleManager_initMembers.apply(this, arguments);
this._battleLogClose = false;
};
BattleManager.setBattleLogClose = function (value) {
this._battleLogClose = value;
};
BattleManager.isBattleLogClose = function () {
return this._battleLogClose;
};
var _BattleManager_displayRewards = BattleManager.displayRewards;
BattleManager.displayRewards = function () {
this._logWindow.hide();
_BattleManager_displayRewards.apply(this, arguments);
};
SceneManager.isBattleScene = function () {
return this._scene instanceof Scene_Battle;
};
BattleManager.isStarting = function () {
return this._phase === 'start';
};
//=============================================================================
// Scene_Battle
// ウィンドウのレイアウトを変更します。
//=============================================================================
var _Scene_Battle_createAllWindows = Scene_Battle.prototype.createAllWindows;
Scene_Battle.prototype.createAllWindows = function () {
_Scene_Battle_createAllWindows.apply(this, arguments);
this._windowLayer.removeChild(this._logWindow);
this._windowLayer.addChildAt(this._logWindow, this._windowLayer.getChildIndex(this._messageWindow) - 1);
if (paramStatusPosUpper) {
this.adjustWindowPositions();
}
if (paramMessagePosUpper) {
this.adjustWindowMessagePositions();
}
};
Scene_Battle.prototype.adjustWindowPositions = function () {
this._partyCommandWindow.y = 0;
this._actorCommandWindow.y = 0;
this._statusWindow.y = 0;
this._helpWindow.y = this._partyCommandWindow.height;
this._actorWindow.y = 0;
this._enemyWindow.y = 0;
this._skillWindow.y = this._helpWindow.y + this._helpWindow.height;
this._itemWindow.y = this._skillWindow.y;
};
Scene_Battle.prototype.adjustWindowMessagePositions = function () {
this._messageWindow.y = 0;
this._logWindow.y = 0;
};
var _Scene_Battle_updateWindowPositions = Scene_Battle.prototype.updateWindowPositions;
Scene_Battle.prototype.updateWindowPositions = function () {
if (BattleManager.isInputting() || BattleManager.isBattleLogClose() || BattleManager.isStarting()) {
this._logWindow.close();
} else {
this._logWindow.open();
}
_Scene_Battle_updateWindowPositions.apply(this, arguments);
};
//=============================================================================
// Window_BattleLog
// ウィンドウのレイアウトを変更します。
//=============================================================================
var _Window_BattleLog_initialize = Window_BattleLog.prototype.initialize;
Window_BattleLog.prototype.initialize = function () {
_Window_BattleLog_initialize.apply(this, arguments);
this.y = Graphics.boxHeight - this.windowHeight();
this.opacity = 255;
this.openness = 0;
};
Window_BattleLog.prototype.maxLines = function () {
return paramMessageLines || 4;
};
var _Window_BattleLog_update = Window_BattleLog.prototype.update;
Window_BattleLog.prototype.update = function () {
Window_Base.prototype.update.apply(this, arguments);
_Window_BattleLog_update.apply(this, arguments);
};
var _Window_BattleLog_refresh = Window_BattleLog.prototype.refresh;
Window_BattleLog.prototype.refresh = function () {
_Window_BattleLog_refresh.apply(this, arguments);
if (!paramHiddenIfEmpty) {
return;
}
if (this._lines.length <= 0) {
this.hide();
} else {
this.show();
}
};
var _Window_BattleLog_messageSpeed = Window_BattleLog.prototype.messageSpeed;
Window_BattleLog.prototype.messageSpeed = function () {
return (paramMessageSpeed ? $gameVariables.value(paramMessageSpeed) :
_Window_BattleLog_messageSpeed.apply(this, arguments));
};
Window_BattleLog.prototype.waitForCustom = function (waitCount) {
this._waitCount = waitCount;
};
var _Window_BattleLog_endAction = Window_BattleLog.prototype.endAction;
var _Window_BattleLog_endAction2 = Window_BattleLog.prototype.endAction;
Window_BattleLog.prototype.endAction = function (subject) {
if (paramWaitForEndAction) {
this.push('waitForCustom', paramWaitForEndAction);
}
_Window_BattleLog_endAction.apply(this, arguments);
this._displayCenterText = null;
_Window_BattleLog_endAction2.apply(this, arguments);
};
}
//=============================================================================
// Window_Message
// 戦闘中はメッセージウィンドウを上部に固定します。
//=============================================================================
if (!paramMessageWindowNoApply) {
var _Window_Message_updatePlacement =
Window_Message.prototype.updatePlacement;
Window_Message.prototype.updatePlacement = function () {
_Window_Message_updatePlacement.apply(this, arguments);
if ($gameParty.inBattle() && paramMessagePosUpper) {
this.y = 0;
}
};
var _Window_BattleLog_addText = Window_BattleLog.prototype.addText;
Window_BattleLog.prototype.addText = function (text) {
if (!text) {
return;
}
if (this._lines.length >= this.maxLines()) {
this._waitCount = 0;
this.push('clear');
this.push('addText', text);
return;
}
_Window_BattleLog_addText.apply(this, arguments);
var _Window_Message_numVisibleRows =
Window_Message.prototype.numVisibleRows;
Window_Message.prototype.numVisibleRows = function () {
if (
SceneManager.isBattleScene() &&
paramMessageLines > 0 &&
!$gameSystem.messageRows
) {
return paramMessageLines;
} else {
return _Window_Message_numVisibleRows.apply(this, arguments);
}
};
}
Window_BattleLog.prototype.drawBackground = function () { };
//=============================================================================
// Game_Battler
// ダメージポップアップを抑制します。
//=============================================================================
var _Game_Battler_startDamagePopup = Game_Battler.prototype.startDamagePopup;
Game_Battler.prototype.startDamagePopup = function () {
if (!paramSuppressPopup)
_Game_Battler_startDamagePopup.apply(this, arguments);
};
if (paramSkillViewSimplified) {
Window_BattleLog.prototype.displayAction = function (subject, item) {
this.push('addText', item.name);
this._displayCenterText = item.name;
};
var _Window_BattleLog_drawLineText = Window_BattleLog.prototype.drawLineText;
Window_BattleLog.prototype.drawLineText = function (index) {
if (this._displayCenterText === this._lines[index]) {
var rect = this.itemRectForText(index);
var realWidth = this.drawTextEx(this._lines[index], rect.x, -rect.height, rect.width);
rect.x += (rect.width / 2 - realWidth / 2);
this.contents.clearRect(rect.x, rect.y, rect.width, rect.height);
this.drawTextEx(this._lines[index], rect.x, rect.y, rect.width);
} else {
_Window_BattleLog_drawLineText.apply(this, arguments);
}
};
var _Window_BattleLog_endAction2 = Window_BattleLog.prototype.endAction;
Window_BattleLog.prototype.endAction = function (subject) {
this._displayCenterText = null;
_Window_BattleLog_endAction2.apply(this, arguments);
};
var _Game_Message_add = Game_Message.prototype.add;
Game_Message.prototype.add = function (text) {
if (!text && $gameParty.inBattle()) {
return;
}
//=============================================================================
// Window_Message
// 戦闘中はメッセージウィンドウを上部に固定します。
//=============================================================================
if (!paramMessageWindowNoApply) {
var _Window_Message_updatePlacement = Window_Message.prototype.updatePlacement;
Window_Message.prototype.updatePlacement = function () {
_Window_Message_updatePlacement.apply(this, arguments);
if ($gameParty.inBattle() && paramMessagePosUpper) {
this.y = 0;
}
};
var _Window_Message_numVisibleRows = Window_Message.prototype.numVisibleRows;
Window_Message.prototype.numVisibleRows = function () {
if (SceneManager.isBattleScene() && paramMessageLines > 0 && !$gameSystem.messageRows) {
return paramMessageLines;
} else {
return _Window_Message_numVisibleRows.apply(this, arguments);
}
};
}
//=============================================================================
// Game_Battler
// ダメージポップアップを抑制します。
//=============================================================================
var _Game_Battler_startDamagePopup = Game_Battler.prototype.startDamagePopup;
Game_Battler.prototype.startDamagePopup = function () {
if (!paramSuppressPopup) _Game_Battler_startDamagePopup.apply(this, arguments);
};
var _Game_Message_add = Game_Message.prototype.add;
Game_Message.prototype.add = function (text) {
if (!text && $gameParty.inBattle()) {
return;
}
_Game_Message_add.apply(this, arguments);
};
_Game_Message_add.apply(this, arguments);
};
})();

View file

@ -5,14 +5,14 @@
/*:ja
* @plugindesc ver1.02 バトル中のピクチャ表示
* @author まっつUP
*
*
* @param startId
* @desc ピクチャの開始ID
* @type number
* @min 1
* @max 100
* @default 50
*
*
* @param middying
* @desc デフォルトとは別のピンチ基準
* デフォルトのピンチ基準も使うことに注意
@ -20,7 +20,7 @@
* @min 1
* @max 99
* @default 50
*
*
* @param orizin
* @desc ピクチャの原点
* 0左上 1中央
@ -28,45 +28,45 @@
* @min 0
* @max 1
* @default 1
*
*
* @param pictX
* @desc ピクチャのx座標
* @type number
* @min 1
* @max 2000
* @default 600
*
*
* @param pictY
* @desc ピクチャのy座標
* @type number
* @min 1
* @max 2000
* @default 350
*
*
* @param scaleX
* @desc ピクチャのx拡大率
* @type number
* @min -1000
* @max 1000
* @default 100
*
*
* @param scaleY
* @desc ピクチャのy拡大率
* @type number
* @min -1000
* @max 1000
* @default 100
*
*
* @param equipX
* @desc スロットごとのx座標
* ヘルプ参照
* @default 0 0 0 0 0 0
*
*
* @param equipY
* @desc スロットごとのy座標
* ヘルプ参照
* @default 0 0 0 0 0 0
*
*
* @param indexaddX
* @desc アクターのindex(先頭は0)
* この数をかけてx座標を算出します
@ -74,7 +74,7 @@
* @min 1
* @max 1000
* @default 150
*
*
* @param dyingtone
* @desc 戦闘不能のアクターのピクチャを
* 表示させるときの黒さの強さ(0だと無効です)
@ -84,176 +84,183 @@
* @default 64
*
* @help
*
*
* RPGで笑顔を
*
*
* このヘルプとパラメータの説明をよくお読みになってからお使いください
*
*
* アクター武器防具のノートタグ
* <BPnormal:x> 通常時
* <BPdying:x> 瀕死時
* <BPmiddying:x> パラメータ指定瀕死時
* xはファイル名(:とのスペースは無しでお願いします)
*
*
* <BPnormal:aaa>
* 通常時aaa.pngのファイルをピクチャで表示します
*
*
* アクターのノートタグ
* <BPnoequip>
* このアクターは装備による差分を表示しません
*
*
* equipXはスロットのindexごとにx座標を指定します
* 数値と数値の間は半角スペースを一つだけあけてください
* 装備スロットの数だけ数値を増やしてください
* 0を指定したスロットindexではピクチャの取得表示を行いません
*
*
* 0 0 600 600 0
* 装備できる装備品が5つでその順が武器の場合
* 体のピクチャのx座標を600とします
*
*
* equipYも設定方法は同様ですが
* こちらは0を指定してもピクチャの取得表示の分岐を行いません
*
*
* indexaddXは
* 実質バトルメンバー数が2以上の時に機能します
*
*
* ピクチャのIDは
* アクターの設定のピクチャ
* startId + アクターのindex * 10
*
*
* アクターの装備のピクチャ
* アクターの設定のピクチャ + 装備スロットindex + 1
*
*
* となります
*
*
* ピクチャの原点は
* イベントコマンドピクチャの表示と同じ扱いです
*
*
* 表示するピクチャの優先度は
* dying > middying > normal
* です
*
*
* このプラグインを利用する場合は
* readmeなどにまっつUPの名を入れてください
* また素材のみの販売はダメです
* 上記以外の規約等はございません
* もちろんツクールMVで使用する前提です
* 何か不具合ありましたら気軽にどうぞ
*
*
* ver1.01 装備差分対応パラメータを増加
* ver1.02 戦闘不能時の処理追加
*
*
* 免責事項
* このプラグインを利用したことによるいかなる損害も制作者は一切の責任を負いません
*
*
*/
(function () {
var parameters = PluginManager.parameters("BattlebustPict");
var BPstartId = Number(parameters["startId"] || 50);
var BPmiddying = Number(parameters["middying"] || 50) / 100;
var BPorizin = Number(parameters["orizin"] || 1);
var BPpictX = Number(parameters["pictX"] || 600);
var BPpictY = Number(parameters["pictY"] || 350);
var BPscaleX = Number(parameters["scaleX"] || 100);
var BPscaleY = Number(parameters["scaleY"] || 100);
//ループ計算用変数の先定義
var calconly = 0;
var BPequipX = String(parameters["equipX"]);
BPequipX = BPequipX.split(" ");
for (var i = 0; i < BPequipX.length; ++i) {
calconly = Number(BPequipX[i] || 0);
BPequipX[i] = Math.abs(calconly);
}
var parameters = PluginManager.parameters('BattlebustPict');
var BPstartId = Number(parameters['startId'] || 50);
var BPmiddying = Number(parameters['middying'] || 50) / 100;
var BPorizin = Number(parameters['orizin'] || 1);
var BPpictX = Number(parameters['pictX'] || 600);
var BPpictY = Number(parameters['pictY'] || 350);
var BPscaleX = Number(parameters['scaleX'] || 100);
var BPscaleY = Number(parameters['scaleY'] || 100);
//ループ計算用変数の先定義
var calconly = 0;
var BPequipX = String(parameters['equipX']);
BPequipX = BPequipX.split(' ');
for (var i = 0; i < BPequipX.length; ++i) {
calconly = Number(BPequipX[i] || 0);
BPequipX[i] = Math.abs(calconly);
var BPequipY = String(parameters["equipY"]);
BPequipY = BPequipY.split(" ");
for (var i = 0; i < BPequipY.length; ++i) {
calconly = Number(BPequipY[i] || 0);
BPequipY[i] = Math.abs(calconly);
}
var BPindexaddX = Number(parameters["indexaddX"] || 150);
var BPdyingtone = Number(parameters["dyingtone"] || 64);
var _BattleManager_refreshStatus = BattleManager.refreshStatus;
BattleManager.refreshStatus = function () {
_BattleManager_refreshStatus.call(this);
$gameParty.TimingUpdateBP();
};
Game_Actor.prototype.showstandBP = function (id, name, x, y) {
if (!name) return;
$gameScreen.showPicture(
id,
name,
BPorizin,
x,
y,
BPscaleX,
BPscaleY,
255,
0
);
if (this.isdyingtone()) {
var color = -BPdyingtone;
var tone = [color, color, color, 0];
$gameScreen.tintPicture(id, tone, 0);
}
};
var BPequipY = String(parameters['equipY']);
BPequipY = BPequipY.split(' ');
for (var i = 0; i < BPequipY.length; ++i) {
calconly = Number(BPequipY[i] || 0);
BPequipY[i] = Math.abs(calconly);
Game_Actor.prototype.baseidBP = function () {
return BPstartId + this.index() * 10;
};
Game_Actor.prototype.isBPDying = function () {
return this.isAlive() && this._hp / this.mhp <= BPmiddying;
};
Game_Actor.prototype.isdyingtone = function () {
return this.isDeathStateAffected() && BPdyingtone > 0;
};
Game_Actor.prototype.getnotetag = function () {
var text = "BPnormal";
if (this.isDying() || this.isDeathStateAffected()) {
text = "BPdying";
} else if (this.isBPDying()) {
text = "BPmiddying";
}
return text;
};
var BPindexaddX = Number(parameters['indexaddX'] || 150);
var BPdyingtone = Number(parameters['dyingtone'] || 64);
Game_Actor.prototype.BPnotepict = function (data, text) {
return data.meta[text];
};
Game_Actor.prototype.StandUpdateBP = function (text) {
var id = this.baseidBP();
var x = BPpictX + this.index() * BPindexaddX;
var name = this.BPnotepict(this.actor(), text);
this.showstandBP(id, name, x, BPpictY);
};
var _BattleManager_refreshStatus = BattleManager.refreshStatus;
BattleManager.refreshStatus = function () {
_BattleManager_refreshStatus.call(this);
$gameParty.TimingUpdateBP();
};
Game_Actor.prototype.EquipUpdateBP = function (text) {
if (this.actor().note.match(/<BPnoequip>/i)) return;
var id = this.baseidBP();
var equip = this.equips();
for (var i = 0; i < BPequipX.length; i++) {
id++;
if (BPequipX[i] <= 0 || !equip[i]) continue;
var x = BPequipX[i] + this.index() * BPindexaddX;
var y = BPequipY[i];
var name = this.BPnotepict(equip[i], text);
this.showstandBP(id, name, x, y);
}
};
Game_Actor.prototype.showstandBP = function (id, name, x, y) {
if (!name) return;
$gameScreen.showPicture(id, name, BPorizin, x, y, BPscaleX, BPscaleY, 255, 0);
if (this.isdyingtone()) {
var color = -BPdyingtone;
var tone = [color, color, color, 0];
$gameScreen.tintPicture(id, tone, 0);
}
};
Game_Actor.prototype.baseidBP = function () {
return BPstartId + this.index() * 10;
};
Game_Actor.prototype.isBPDying = function () {
return this.isAlive() && this._hp / this.mhp <= BPmiddying;
};
Game_Actor.prototype.isdyingtone = function () {
return this.isDeathStateAffected() && BPdyingtone > 0;
};
Game_Actor.prototype.getnotetag = function () {
var text = 'BPnormal';
if (this.isDying() || this.isDeathStateAffected()) {
text = 'BPdying';
} else if (this.isBPDying()) {
text = 'BPmiddying';
}
return text;
};
Game_Actor.prototype.BPnotepict = function (data, text) {
return data.meta[text];
};
Game_Actor.prototype.StandUpdateBP = function (text) {
var id = this.baseidBP();
var x = BPpictX + this.index() * BPindexaddX;
var name = this.BPnotepict(this.actor(), text);
this.showstandBP(id, name, x, BPpictY);
};
Game_Actor.prototype.EquipUpdateBP = function (text) {
if (this.actor().note.match(/<BPnoequip>/i)) return;
var id = this.baseidBP();
var equip = this.equips();
for (var i = 0; i < BPequipX.length; i++) {
id++;
if (BPequipX[i] <= 0 || !equip[i]) continue;
var x = BPequipX[i] + this.index() * BPindexaddX;
var y = BPequipY[i];
var name = this.BPnotepict(equip[i], text);
this.showstandBP(id, name, x, y);
}
};
//オーバーライドここで初めてinBattleがtrueになる
var _Game_Unit_onBattleStart = Game_Unit.prototype.onBattleStart;
Game_Party.prototype.onBattleStart = function () {
_Game_Unit_onBattleStart.call(this);
this.TimingUpdateBP();
};
Game_Party.prototype.TimingUpdateBP = function () {
this.members().forEach(function (actor) {
var text = actor.getnotetag();
actor.StandUpdateBP(text);
actor.EquipUpdateBP(text);
});
};
//オーバーライドここで初めてinBattleがtrueになる
var _Game_Unit_onBattleStart = Game_Unit.prototype.onBattleStart;
Game_Party.prototype.onBattleStart = function () {
_Game_Unit_onBattleStart.call(this);
this.TimingUpdateBP();
};
Game_Party.prototype.TimingUpdateBP = function () {
this.members().forEach(function (actor) {
var text = actor.getnotetag();
actor.StandUpdateBP(text);
actor.EquipUpdateBP(text);
});
};
})();

View file

@ -53,75 +53,78 @@
*/
(function () {
'use strict';
var metaTagPrefix = 'BE';
"use strict";
var metaTagPrefix = "BE";
var getMetaValue = function (object, name) {
var metaTagName = metaTagPrefix + (name ? name : '');
return object.meta.hasOwnProperty(metaTagName) ? object.meta[metaTagName] : undefined;
};
var getMetaValue = function (object, name) {
var metaTagName = metaTagPrefix + (name ? name : "");
return object.meta.hasOwnProperty(metaTagName)
? object.meta[metaTagName]
: undefined;
};
var getMetaValues = function (object, names) {
if (!Array.isArray(names)) return getMetaValue(object, names);
for (var i = 0, n = names.length; i < n; i++) {
var value = getMetaValue(object, names[i]);
if (value !== undefined) return value;
var getMetaValues = function (object, names) {
if (!Array.isArray(names)) return getMetaValue(object, names);
for (var i = 0, n = names.length; i < n; i++) {
var value = getMetaValue(object, names[i]);
if (value !== undefined) return value;
}
return undefined;
};
//=============================================================================
// Game_Enemy
// 巨大モンスター判定を行います。
//=============================================================================
Game_Enemy.prototype.isBigEnemy = function () {
return getMetaValues(this.enemy(), ["有効", "Valid"]);
};
//=============================================================================
// Sprite_Enemy
// 必要に応じて敵キャラの位置を調整します。
//=============================================================================
var _Sprite_Enemy_updatePosition = Sprite_Enemy.prototype.updatePosition;
Sprite_Enemy.prototype.updatePosition = function () {
_Sprite_Enemy_updatePosition.apply(this, arguments);
if (this._enemy.isBigEnemy() && this.bitmap) {
this._originalY = this.y;
this.y = Graphics.boxHeight;
}
};
var _Sprite_Battler_setupDamagePopup =
Sprite_Enemy.prototype.setupDamagePopup;
Sprite_Enemy.prototype.setupDamagePopup = function () {
var requested = this._battler.isDamagePopupRequested();
if (_Sprite_Battler_setupDamagePopup) {
_Sprite_Battler_setupDamagePopup.apply(this, arguments);
} else {
Sprite_Battler.prototype.setupDamagePopup.apply(this, arguments);
}
if (requested && this._enemy.isBigEnemy()) this.adjustDamagePopup();
};
Sprite_Enemy.prototype.adjustDamagePopup = function () {
if (this._damages.length > 0) {
this._damages[this._damages.length - 1].y -= this.y - this._originalY;
}
};
var _Sprite_Animation_updatePosition =
Sprite_Animation.prototype.updatePosition;
Sprite_Animation.prototype.updatePosition = function () {
_Sprite_Animation_updatePosition.apply(this, arguments);
var position = this._animation.position;
if (position === 1 || position === 2) {
var originalY = this._target._originalY;
if (originalY) {
var shiftY = this._target.y - originalY;
if (position === 1) {
shiftY /= 2;
}
return undefined;
};
//=============================================================================
// Game_Enemy
// 巨大モンスター判定を行います。
//=============================================================================
Game_Enemy.prototype.isBigEnemy = function () {
return getMetaValues(this.enemy(), ['有効', 'Valid']);
};
//=============================================================================
// Sprite_Enemy
// 必要に応じて敵キャラの位置を調整します。
//=============================================================================
var _Sprite_Enemy_updatePosition = Sprite_Enemy.prototype.updatePosition;
Sprite_Enemy.prototype.updatePosition = function () {
_Sprite_Enemy_updatePosition.apply(this, arguments);
if (this._enemy.isBigEnemy() && this.bitmap) {
this._originalY = this.y;
this.y = Graphics.boxHeight;
}
};
var _Sprite_Battler_setupDamagePopup = Sprite_Enemy.prototype.setupDamagePopup;
Sprite_Enemy.prototype.setupDamagePopup = function () {
var requested = this._battler.isDamagePopupRequested();
if (_Sprite_Battler_setupDamagePopup) {
_Sprite_Battler_setupDamagePopup.apply(this, arguments);
} else {
Sprite_Battler.prototype.setupDamagePopup.apply(this, arguments);
}
if (requested && this._enemy.isBigEnemy()) this.adjustDamagePopup();
};
Sprite_Enemy.prototype.adjustDamagePopup = function () {
if (this._damages.length > 0) {
this._damages[this._damages.length - 1].y -= (this.y - this._originalY);
}
};
var _Sprite_Animation_updatePosition = Sprite_Animation.prototype.updatePosition;
Sprite_Animation.prototype.updatePosition = function () {
_Sprite_Animation_updatePosition.apply(this, arguments);
var position = this._animation.position;
if (position === 1 || position === 2) {
var originalY = this._target._originalY;
if (originalY) {
var shiftY = this._target.y - originalY;
if (position === 1) {
shiftY /= 2;
}
this.y -= shiftY;
}
}
};
this.y -= shiftY;
}
}
};
})();

View file

@ -5,36 +5,36 @@
/*:ja
* @plugindesc ver1.00 能力値にステートに設定した定数を加算します
* @author まっつUP, merusaia(著作表示はまっつUPさん)
*
*
* @help
*
*
* RPGで笑顔を
*
*
* このヘルプとパラメータの説明をよくお読みになってからお使いください
*
*
* パラメータとプラグインコマンドともにありません
* 定数は基本能力値の倍率やバフの倍率によって変わることはありません
*
*
* ステートのノートタグ
*
*
* <BSparamId:value>
*
*
* atkを100上昇させる
* <BS2:100>
*
*
* このプラグインを利用する場合は
* readmeなどにまっつUPの名を入れてください
* また素材のみの販売はダメです
* 上記以外の規約等はございません
* もちろんツクールMVで使用する前提です
* 何か不具合ありましたら気軽にどうぞ
*
*
* 免責事項
* このプラグインを利用したことによるいかなる損害も制作者は一切の責任を負いません
*
*
*  ここまでまっつUPさん
*  以下merusaiaが追記
*
*
* まっつさんのプラグインをmerusaiaが改変しています
* Game_BattlerBase.prototype.param上書きを追加定義に変更
* 機能説明やデバッグ方法のコメント
@ -80,11 +80,11 @@
*/
(function () {
//var parameters = PluginManager.parameters('BordSkin_edit');
Game_BattlerBase.prototype.paramPlus2 = function (paramId) { //新規
var str1 = 'BS' + paramId;
Game_BattlerBase.prototype.paramPlus2 = function (paramId) {
//新規
var str1 = "BS" + paramId;
var amount = 0;
this._states.forEach(function (stateId) {
var val1 = Number($dataStates[stateId].meta[str1] || 0);
@ -95,7 +95,7 @@
var _Game_BattlerBase_param = Game_BattlerBase.prototype.param; // 追加定義に変更
Game_BattlerBase.prototype.param = function (paramId) {
var baseValue = _Game_BattlerBase_param.apply(this, arguments);// まず、元メソッドの内容を呼び出し、返り値にその内容を格納
var baseValue = _Game_BattlerBase_param.apply(this, arguments); // まず、元メソッドの内容を呼び出し、返り値にその内容を格納
// 以下、追加定義部分
// 次に、絶対値を足したものを計算して、それに置き換える
@ -113,5 +113,4 @@
return value_addedPlus2;
};
})();

File diff suppressed because it is too large Load diff

View file

@ -22,25 +22,25 @@
* @type string
* @desc It is a setting item name displayed on Options.
* @default Type of Key Operation
*
*
* @param SymbolName(DefaultType)
* @type string
* @desc It is a setting symbol name displayed on Options(Default setting use this key type).
* @default Default
*
*
* @param SymbolName(FPSType)
* @type string
* @desc It is a setting symbol name displayed on Options(FPS setting use this key type).
* @default FPS
*
*
* @help This plugin change the setting of the keys to the setting that was made for the FPS game.
* Probably,it is effective when you want to operate the game with one hand.
* And also, this plugin adds command to option scene.
*
*
* ----plugin command----
* Change_Key_FPS #Change key settings to FPS style.
* Change_Key_Default #Change key settings to default settings.
*
*
* ----change or add key settings----
* Space Key #To be changed cancel key(default is ok key)
* Switch Pages #W key is invalid.Q key does not change.E key is a substitute for W key.
@ -57,17 +57,17 @@
* @type string
* @desc オプション画面に表示される設定項目名称
* @default キー操作タイプ
*
*
* @param 設定名称通常キー
* @type string
* @desc オプション画面に表示される設定名称ツクールで通常使用されるキー設定
* @default 両手操作
*
*
* @param 設定名称FPSキー
* @type string
* @desc オプション画面に表示される設定名称FPS寄りのキー設定
* @default 片手操作
*
*
* @help キーの設定をFPSゲームに寄せた設定に変更します
* 片手での操作を可能にしたい場合に有効です
* またオプション画面に設定項目が追加されます
@ -75,8 +75,8 @@
* プラグインコマンド
* Change_Key_FPS #FPSに寄せたキー設定に変更します
* Change_Key_Default #ツクールデフォルトのキー設定に変更します
*
*
*
*
*変更追加されるキー設定
* スペースキー キャンセルに変更元は決定キー
* ページ切り替え Wキー無効化Qは据え置きEキーがWキーの代わり
@ -84,7 +84,7 @@
* Fキー 決定キー
* CVキー キャンセルキー
* その他のキー設定は元のままですたぶん
*
*
*
* 利用規約
* 作者に無断で改変再配布が可能で利用形態商用18禁利用等
@ -93,255 +93,257 @@
*/
(function () {
'use strict';
var pluginName = 'ChangeOperationToFPSStyle';
"use strict";
var pluginName = "ChangeOperationToFPSStyle";
//Declare NTMO namespace.
var NTMO = NTMO || {};
//Declare NTMO namespace.
var NTMO = NTMO || {};
//-----------------------------------------------------------------------------
// Settings for plugin command.
//-----------------------------------------------------------------------------
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === 'Change_Key_FPS') {
NTMO.COTS.setFPSKeyMapper();
}
else if (command === 'Change_Key_Default') {
NTMO.COTS.setDefaultKeyMapper();
}
};
//-----------------------------------------------------------------------------
// Settings for plugin command.
//-----------------------------------------------------------------------------
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "Change_Key_FPS") {
NTMO.COTS.setFPSKeyMapper();
} else if (command === "Change_Key_Default") {
NTMO.COTS.setDefaultKeyMapper();
}
};
//=============================================================================
// Local function
// These functions checks & formats pluguin's command parameters.
// I borrowed these functions from Triacontane.Thanks!
//=============================================================================
var getParamString = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return '';
};
//=============================================================================
// Local function
// These functions checks & formats pluguin's command parameters.
// I borrowed these functions from Triacontane.Thanks!
//=============================================================================
var getParamString = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return "";
};
var getParamNumber = function (paramNames, min, max) {
var value = getParamString(paramNames);
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(value) || 0).clamp(min, max);
};
var getParamNumber = function (paramNames, min, max) {
var value = getParamString(paramNames);
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(value) || 0).clamp(min, max);
};
//=============================================================================
// Get and set pluguin parameters.
//=============================================================================
var param = {};
param.itemName = getParamString(['ItemName', '項目名称']);
param.symbolDefault = getParamString(['SymbolName(DefaultType)', '設定名称(通常キー)']);
param.symbolFPS = getParamString(['SymbolName(FPSType)', '設定名称FPSキー']);
//=============================================================================
// Get and set pluguin parameters.
//=============================================================================
var param = {};
param.itemName = getParamString(["ItemName", "項目名称"]);
param.symbolDefault = getParamString([
"SymbolName(DefaultType)",
"設定名称(通常キー)",
]);
param.symbolFPS = getParamString([
"SymbolName(FPSType)",
"設定名称FPSキー",
]);
//=============================================================================
// ConfigManager
// Add a setting for key mappping.
// (I am short of knowledge about this class.So, if you find a error, I want
// yout to correct it. If possible, please notify me.)
//=============================================================================
//=============================================================================
// ConfigManager
// Add a setting for key mappping.
// (I am short of knowledge about this class.So, if you find a error, I want
// yout to correct it. If possible, please notify me.)
//=============================================================================
ConfigManager.keyMapper = false;
var _ConfigManager_makeData = ConfigManager.makeData;
ConfigManager.makeData = function () {
var config = _ConfigManager_makeData.apply(this, arguments);
config.keyMapper = this.keyMapper;
return config;
};
var _ConfigManager_applyData = ConfigManager.applyData;
ConfigManager.applyData = function (config) {
_ConfigManager_applyData.apply(this, arguments);
this.keyMapper = this.readFlag(config, "keyMapper");
//set
if (this.keyMapper) {
NTMO.COTS.setDefaultKeyMapper();
} else {
NTMO.COTS.setFPSKeyMapper();
}
};
//=============================================================================
// Set key mapper.
// User can set original key mapper or FPS key mapper.
//=============================================================================
NTMO.COTS = function () {};
NTMO.COTS.getDefaultKeyMapper = function () {
return NTMO.COTS.defaultKeyMapper;
};
NTMO.COTS.getFPSKeyMapper = function () {
return NTMO.COTS.FPSKeyMapper;
};
NTMO.COTS.setDefaultKeyMapper = function () {
//Clear method is necessary to avoid input bug(ex. keep moving).
Input.clear();
Input.keyMapper = NTMO.COTS.getDefaultKeyMapper();
ConfigManager.keyMapper = true;
};
NTMO.COTS.setFPSKeyMapper = function () {
//Clear method is necessary to avoid input bug(ex. keep moving).
Input.clear();
Input.keyMapper = NTMO.COTS.getFPSKeyMapper();
ConfigManager.keyMapper = false;
};
var _ConfigManager_makeData = ConfigManager.makeData;
ConfigManager.makeData = function () {
var config = _ConfigManager_makeData.apply(this, arguments);
config.keyMapper = this.keyMapper;
//=============================================================================
// Window_Options
// Add a setting for KeyMapper.
//=============================================================================
var _Window_Options_makeCommandList =
Window_Options.prototype.makeCommandList;
Window_Options.prototype.makeCommandList = function () {
_Window_Options_makeCommandList.call(this);
this.addKeyMapperOption();
};
return config;
};
Window_Options.prototype.addKeyMapperOption = function () {
this.addCommand(param.itemName, "keyMapper");
};
var _ConfigManager_applyData = ConfigManager.applyData;
ConfigManager.applyData = function (config) {
_ConfigManager_applyData.apply(this, arguments);
var _Window_Options_statusText = Window_Options.prototype.statusText;
Window_Options.prototype.statusText = function (index) {
//Initialize.
var result = _Window_Options_statusText.apply(this, arguments);
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
this.keyMapper = this.readFlag(config, 'keyMapper');
//Check if the symbol is key mapper.
if (this.isKeyMapperSymbol(symbol)) {
result = this.keyMapperStatusText(value);
}
//set
if (this.keyMapper) {
NTMO.COTS.setDefaultKeyMapper();
} else {
NTMO.COTS.setFPSKeyMapper();
}
};
return result;
};
//=============================================================================
// Set key mapper.
// User can set original key mapper or FPS key mapper.
//=============================================================================
NTMO.COTS = function () {
Window_Options.prototype.isKeyMapperSymbol = function (symbol) {
return symbol.contains("keyMapper");
};
};
Window_Options.prototype.keyMapperStatusText = function (value) {
return value ? param.symbolDefault : param.symbolFPS;
};
NTMO.COTS.getDefaultKeyMapper = function () {
return NTMO.COTS.defaultKeyMapper;
};
var _Window_Options_cursorRight = Window_Options.prototype.cursorRight;
Window_Options.prototype.cursorRight = function (wrap) {
_Window_Options_cursorRight.apply(this, arguments);
NTMO.COTS.getFPSKeyMapper = function () {
return NTMO.COTS.FPSKeyMapper;
};
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
NTMO.COTS.setDefaultKeyMapper = function () {
//Clear method is necessary to avoid input bug(ex. keep moving).
Input.clear();
Input.keyMapper = NTMO.COTS.getDefaultKeyMapper();
ConfigManager.keyMapper = true;
};
if (this.isKeyMapperSymbol(symbol)) {
NTMO.COTS.setDefaultKeyMapper();
}
};
NTMO.COTS.setFPSKeyMapper = function () {
//Clear method is necessary to avoid input bug(ex. keep moving).
Input.clear();
Input.keyMapper = NTMO.COTS.getFPSKeyMapper();
ConfigManager.keyMapper = false;
};
var _Window_Options_cursorLeft = Window_Options.prototype.cursorLeft;
Window_Options.prototype.cursorLeft = function (wrap) {
_Window_Options_cursorLeft.apply(this, arguments);
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
//=============================================================================
// Window_Options
// Add a setting for KeyMapper.
//=============================================================================
var _Window_Options_makeCommandList = Window_Options.prototype.makeCommandList;
Window_Options.prototype.makeCommandList = function () {
_Window_Options_makeCommandList.call(this);
this.addKeyMapperOption();
};
if (this.isKeyMapperSymbol(symbol)) {
NTMO.COTS.setFPSKeyMapper();
}
};
Window_Options.prototype.addKeyMapperOption = function () {
this.addCommand(param.itemName, 'keyMapper');
};
//=============================================================================
// KeyMapperObjects
// Key mapper objects for mapping FPS key or default key.
//=============================================================================
NTMO.COTS.defaultKeyMapper = {
9: "tab", // tab
13: "ok", // enter
16: "shift", // shift
17: "control", // control
18: "control", // alt
27: "escape", // escape
32: "ok", // space
33: "pageup", // pageup
34: "pagedown", // pagedown
37: "left", // left arrow
38: "up", // up arrow
39: "right", // right arrow
40: "down", // down arrow
45: "escape", // insert
81: "pageup", // Q
87: "pagedown", // W
88: "escape", // X
90: "ok", // Z
96: "escape", // numpad 0
98: "down", // numpad 2
100: "left", // numpad 4
102: "right", // numpad 6
104: "up", // numpad 8
120: "debug", // F9
};
NTMO.COTS.FPSKeyMapper = {
//These are default key mappings.
9: "tab", // tab
13: "ok", // enter
16: "shift", // shift
17: "control", // control
18: "control", // alt
27: "escape", // escape
//32: 'ok', // space
33: "pageup", // pageup
34: "pagedown", // pagedown
37: "left", // left arrow
38: "up", // up arrow
39: "right", // right arrow
40: "down", // down arrow
45: "escape", // insert
//81: 'pageup', // Q
//87: 'pagedown', // W
88: "escape", // X
90: "ok", // Z
96: "escape", // numpad 0
98: "down", // numpad 2
100: "left", // numpad 4
102: "right", // numpad 6
104: "up", // numpad 8
120: "debug", // F9
var _Window_Options_statusText = Window_Options.prototype.statusText;
Window_Options.prototype.statusText = function (index) {
//Initialize.
var result = _Window_Options_statusText.apply(this, arguments);
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
//These are addtional key mappings.
65: "left", // A
68: "right", // D
83: "down", // S
87: "up", // W
81: "pageup", // Q
69: "pagedown", // E
70: "ok", // F
32: "escape", // space
67: "escape", // C
86: "escape", // V
};
//Check if the symbol is key mapper.
if (this.isKeyMapperSymbol(symbol)) {
result = this.keyMapperStatusText(value);
}
return result;
};
Window_Options.prototype.isKeyMapperSymbol = function (symbol) {
return symbol.contains('keyMapper');
};
Window_Options.prototype.keyMapperStatusText = function (value) {
return value ? param.symbolDefault : param.symbolFPS;
};
var _Window_Options_cursorRight = Window_Options.prototype.cursorRight;
Window_Options.prototype.cursorRight = function (wrap) {
_Window_Options_cursorRight.apply(this, arguments);
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
if (this.isKeyMapperSymbol(symbol)) {
NTMO.COTS.setDefaultKeyMapper();
}
};
var _Window_Options_cursorLeft = Window_Options.prototype.cursorLeft;
Window_Options.prototype.cursorLeft = function (wrap) {
_Window_Options_cursorLeft.apply(this, arguments);
var index = this.index();
var symbol = this.commandSymbol(index);
var value = this.getConfigValue(symbol);
if (this.isKeyMapperSymbol(symbol)) {
NTMO.COTS.setFPSKeyMapper();
}
};
//=============================================================================
// KeyMapperObjects
// Key mapper objects for mapping FPS key or default key.
//=============================================================================
NTMO.COTS.defaultKeyMapper = {
9: 'tab', // tab
13: 'ok', // enter
16: 'shift', // shift
17: 'control', // control
18: 'control', // alt
27: 'escape', // escape
32: 'ok', // space
33: 'pageup', // pageup
34: 'pagedown', // pagedown
37: 'left', // left arrow
38: 'up', // up arrow
39: 'right', // right arrow
40: 'down', // down arrow
45: 'escape', // insert
81: 'pageup', // Q
87: 'pagedown', // W
88: 'escape', // X
90: 'ok', // Z
96: 'escape', // numpad 0
98: 'down', // numpad 2
100: 'left', // numpad 4
102: 'right', // numpad 6
104: 'up', // numpad 8
120: 'debug' // F9
};
NTMO.COTS.FPSKeyMapper = {
//These are default key mappings.
9: 'tab', // tab
13: 'ok', // enter
16: 'shift', // shift
17: 'control', // control
18: 'control', // alt
27: 'escape', // escape
//32: 'ok', // space
33: 'pageup', // pageup
34: 'pagedown', // pagedown
37: 'left', // left arrow
38: 'up', // up arrow
39: 'right', // right arrow
40: 'down', // down arrow
45: 'escape', // insert
//81: 'pageup', // Q
//87: 'pagedown', // W
88: 'escape', // X
90: 'ok', // Z
96: 'escape', // numpad 0
98: 'down', // numpad 2
100: 'left', // numpad 4
102: 'right', // numpad 6
104: 'up', // numpad 8
120: 'debug', // F9
//These are addtional key mappings.
65: 'left', // A
68: 'right', // D
83: 'down', // S
87: 'up', // W
81: 'pageup', // Q
69: 'pagedown', // E
70: 'ok', // F
32: 'escape', // space
67: 'escape', // C
86: 'escape' // V
};
//Obsolete
//=============================================================================
// OverrideKeyMapper
// Override Input class for mapping FPS key.
//=============================================================================
//Input.keyMapper = NTMO.COTS.FPSKeyMapper;
})();
//Obsolete
//=============================================================================
// OverrideKeyMapper
// Override Input class for mapping FPS key.
//=============================================================================
//Input.keyMapper = NTMO.COTS.FPSKeyMapper;
})();

View file

@ -4,12 +4,12 @@
*
* @help This plugin does not provide plugin commands.
*
* @param cacheLimit
* @param cacheLimit
* @desc For setting the upper limit of image memory cache. (MPix)
* @default 10
*
* @param screenWidth
* @desc For setting the screen width.
* @desc For setting the screen width.
* @default 816
*
* @param screenHeight
@ -65,73 +65,71 @@
*/
(function () {
function toNumber(str, def) {
return isNaN(str) ? def : +(str || def);
function toNumber(str, def) {
return isNaN(str) ? def : +(str || def);
}
var parameters = PluginManager.parameters("Community_Basic");
var cacheLimit = toNumber(parameters["cacheLimit"], 10);
var screenWidth = toNumber(parameters["screenWidth"], 816);
var screenHeight = toNumber(parameters["screenHeight"], 624);
var renderingMode = parameters["renderingMode"].toLowerCase();
var alwaysDash = parameters["alwaysDash"].toLowerCase() === "on";
var windowWidthTo = toNumber(parameters["changeWindowWidthTo"], 0);
var windowHeightTo = toNumber(parameters["changeWindowHeightTo"], 0);
var windowWidth;
var windowHeight;
if (windowWidthTo) {
windowWidth = windowWidthTo;
} else if (screenWidth !== SceneManager._screenWidth) {
windowWidth = screenWidth;
}
if (windowHeightTo) {
windowHeight = windowHeightTo;
} else if (screenHeight !== SceneManager._screenHeight) {
windowHeight = screenHeight;
}
ImageCache.limit = cacheLimit * 1000 * 1000;
SceneManager._screenWidth = screenWidth;
SceneManager._screenHeight = screenHeight;
SceneManager._boxWidth = screenWidth;
SceneManager._boxHeight = screenHeight;
SceneManager.preferableRendererType = function () {
if (Utils.isOptionValid("canvas")) {
return "canvas";
} else if (Utils.isOptionValid("webgl")) {
return "webgl";
} else if (renderingMode === "canvas") {
return "canvas";
} else if (renderingMode === "webgl") {
return "webgl";
} else {
return "auto";
}
};
var parameters = PluginManager.parameters('Community_Basic');
var cacheLimit = toNumber(parameters['cacheLimit'], 10);
var screenWidth = toNumber(parameters['screenWidth'], 816);
var screenHeight = toNumber(parameters['screenHeight'], 624);
var renderingMode = parameters['renderingMode'].toLowerCase();
var alwaysDash = parameters['alwaysDash'].toLowerCase() === 'on';
var windowWidthTo = toNumber(parameters['changeWindowWidthTo'], 0);
var windowHeightTo = toNumber(parameters['changeWindowHeightTo'], 0);
var windowWidth;
var windowHeight;
if (windowWidthTo) {
windowWidth = windowWidthTo;
} else if (screenWidth !== SceneManager._screenWidth) {
windowWidth = screenWidth;
var _ConfigManager_applyData = ConfigManager.applyData;
ConfigManager.applyData = function (config) {
_ConfigManager_applyData.apply(this, arguments);
if (config["alwaysDash"] === undefined) {
this.alwaysDash = alwaysDash;
}
};
if (windowHeightTo) {
windowHeight = windowHeightTo;
} else if (screenHeight !== SceneManager._screenHeight) {
windowHeight = screenHeight;
var _SceneManager_initNwjs = SceneManager.initNwjs;
SceneManager.initNwjs = function () {
_SceneManager_initNwjs.apply(this, arguments);
if (Utils.isNwjs() && windowWidth && windowHeight) {
var dw = windowWidth - window.innerWidth;
var dh = windowHeight - window.innerHeight;
window.moveBy(-dw / 2, -dh / 2);
window.resizeBy(dw, dh);
}
ImageCache.limit = cacheLimit * 1000 * 1000;
SceneManager._screenWidth = screenWidth;
SceneManager._screenHeight = screenHeight;
SceneManager._boxWidth = screenWidth;
SceneManager._boxHeight = screenHeight;
SceneManager.preferableRendererType = function () {
if (Utils.isOptionValid('canvas')) {
return 'canvas';
} else if (Utils.isOptionValid('webgl')) {
return 'webgl';
} else if (renderingMode === 'canvas') {
return 'canvas';
} else if (renderingMode === 'webgl') {
return 'webgl';
} else {
return 'auto';
}
};
var _ConfigManager_applyData = ConfigManager.applyData;
ConfigManager.applyData = function (config) {
_ConfigManager_applyData.apply(this, arguments);
if (config['alwaysDash'] === undefined) {
this.alwaysDash = alwaysDash;
}
};
var _SceneManager_initNwjs = SceneManager.initNwjs;
SceneManager.initNwjs = function () {
_SceneManager_initNwjs.apply(this, arguments);
if (Utils.isNwjs() && windowWidth && windowHeight) {
var dw = windowWidth - window.innerWidth;
var dh = windowHeight - window.innerHeight;
window.moveBy(-dw / 2, -dh / 2);
window.resizeBy(dw, dh);
}
};
})();
};
})();

View file

@ -5,23 +5,23 @@
//
var Imported = Imported || {};
Imported['ConditionallyAddEffect'] = 1.04;
Imported["ConditionallyAddEffect"] = 1.04;
/*:
* @plugindesc ver1.04/条件を満たすと発動する追加効果を設定できるようになります
* @author Yana
*
*
* @param Display Add Effect Text
* @desc 追加効果が発動した時のメッセージ_nameが発動元スキル名に
* _mes1,_mes2が追加効果のメッセージ12行目に置き換わります
* @default _userの_nameの追加効果が発動した
*
*
* @help プラグインコマンドはありません
*
*
* YEP_BattleEngineCoreよりも下に配置してください
*
*
* スキルやアイテムのメモ欄に
*
*
* <追加効果:I,×%>
* 発動条件
* </>
@ -30,13 +30,13 @@ Imported['ConditionallyAddEffect'] = 1.04;
* 発動条件
* </>
* と記述してください
*
*
* Iの場合は番のアイテムSの場合は番のスキルが条件を満たした時×%の確率で追加効果として発動します
*
*
* 発動条件の詳細はConditionallyCoreのヘルプを参照してください
* 発動時の表示メッセージはnullにすることで表示を無効化することができます
* 発動時のメッセージは_userを発動者の名前に変換します
*
*
* ------------------------------------------------------
* 利用規約特になし素材利用は自己責任でお願いします
* ------------------------------------------------------
@ -60,173 +60,217 @@ Imported['ConditionallyAddEffect'] = 1.04;
*/
(function () {
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
var parameters = PluginManager.parameters('ConditionallyAddEffect');
var displayAddEffectText = String(parameters['Display Add Effect Text'] || '_nameの追加効果が発動');
var parameters = PluginManager.parameters("ConditionallyAddEffect");
var displayAddEffectText = String(
parameters["Display Add Effect Text"] || "_nameの追加効果が発動"
);
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
function AddEffectManager() {
throw new Error('This is a static class');
}
function AddEffectManager() {
throw new Error("This is a static class");
}
AddEffectManager.initCond = function (note) {
var texts = note.split('\n');
var flag = false;
var result = [];
for (var i = 0; i < texts.length; i++) {
if (flag) {
if (texts[i].match(/^<\/追加効果>/)) {
result.push(effect);
flag = false;
} else {
effect['conditions'].push(ConditionallyManager.makeCondition(texts[i]));
}
} else if (texts[i].match(/^<追加効果:([ISis])(\d+),(\d+)[%]>/)) {
var effect = {
'type': RegExp.$1,
'id': parseInt(RegExp.$2),
'rate': parseInt(RegExp.$3),
'conditions': []
};
flag = true;
}
}
return result;
};
AddEffectManager.initCond = function (note) {
var texts = note.split("\n");
var flag = false;
var result = [];
for (var i = 0; i < texts.length; i++) {
if (flag) {
if (texts[i].match(/^<\/追加効果>/)) {
result.push(effect);
flag = false;
} else {
effect["conditions"].push(
ConditionallyManager.makeCondition(texts[i])
);
}
} else if (texts[i].match(/^<追加効果:([ISis])(\d+),(\d+)[%]>/)) {
var effect = {
type: RegExp.$1,
id: parseInt(RegExp.$2),
rate: parseInt(RegExp.$3),
conditions: [],
};
flag = true;
}
}
return result;
};
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
var _CAef_BManager_endAction = BattleManager.endAction;
BattleManager.endAction = function () {
if (this._subject && !$gameTemp._checkAddEffect) {
this.executeAddEffect();
$gameTemp._checkAddEffect = true;
this._caefCallItem = this._lastAction.item();
}
if (this._subject && this._subject.isAddEffects()) {
var effect = this._subject.shiftCurrentAddEffects();
var action = effect[0];
this._subject._actions.unshift(action);
$gameTemp._caefTargets = effect[1];
this._logWindow.displayAddEffect(this._subject, this._caefCallItem);
this.startAction();
this._subject.removeCurrentAction();
} else {
$gameTemp._caefTargets = null;
$gameTemp._checkAddEffect = false;
_CAef_BManager_endAction.call(this);
}
}
var _CAef_BManager_endAction = BattleManager.endAction;
BattleManager.endAction = function () {
if (this._subject && !$gameTemp._checkAddEffect) {
this.executeAddEffect();
$gameTemp._checkAddEffect = true;
this._caefCallItem = this._lastAction.item();
}
if (this._subject && this._subject.isAddEffects()) {
var effect = this._subject.shiftCurrentAddEffects();
var action = effect[0];
this._subject._actions.unshift(action);
$gameTemp._caefTargets = effect[1];
this._logWindow.displayAddEffect(this._subject, this._caefCallItem);
this.startAction();
this._subject.removeCurrentAction();
} else {
$gameTemp._caefTargets = null;
$gameTemp._checkAddEffect = false;
_CAef_BManager_endAction.call(this);
}
};
BattleManager.executeAddEffect = function () {
if ($gameTroop.aliveMembers().length === 0) { return }
var item = this._lastAction.item();
if (!item) { return }
item._condAddEffects = item._condAddEffects || AddEffectManager.initCond(item.note);
var cEff = item._condAddEffects;
var user = this._subject;
var targets = this._lastTargets;
if (!targets) { return }
if (!targets[0]) { return }
if (!targets[0]._lastHit) { return }
user._addEffects = [];
for (var i = 0; i < cEff.length; i++) {
if (Math.random() < (cEff[i]['rate'] / 100)) {
if (ConditionallyManager.checkConditions(user, targets[0], cEff[i]['conditions'])) {
var action = new Game_Action(user);
switch (cEff[i]['type']) {
case 'I':
case 'i':
action.setItem(cEff[i]['id']);
break;
case 'S':
case 's':
action.setSkill(cEff[i]['id']);
break;
}
var tgr = [];
if (action.item().scope === item.scope) {
var r = targets.filter(function (t) { return t.isDead() })
if (r.length !== targets.length) { tgr = targets }
} else if (action.isForOne() && action.isForFriend()) {
if (user.isAlive()) { tgr = [user] }
} else if (action.isForOne() && action.isForOpponent() && this._lastAction.isForOpponent()) {
for (var j = 0; j < targets.length; j++) {
if (targets[j].isAlive()) { tgr = [targets[j]]; break }
}
} else { tgr = action.makeTargets() }
if (tgr.length > 0) { user.setAddEffects(action, tgr) }
}
}
}
};
BattleManager.executeAddEffect = function () {
if ($gameTroop.aliveMembers().length === 0) {
return;
}
var item = this._lastAction.item();
if (!item) {
return;
}
item._condAddEffects =
item._condAddEffects || AddEffectManager.initCond(item.note);
var cEff = item._condAddEffects;
var user = this._subject;
var targets = this._lastTargets;
if (!targets) {
return;
}
if (!targets[0]) {
return;
}
if (!targets[0]._lastHit) {
return;
}
user._addEffects = [];
for (var i = 0; i < cEff.length; i++) {
if (Math.random() < cEff[i]["rate"] / 100) {
if (
ConditionallyManager.checkConditions(
user,
targets[0],
cEff[i]["conditions"]
)
) {
var action = new Game_Action(user);
switch (cEff[i]["type"]) {
case "I":
case "i":
action.setItem(cEff[i]["id"]);
break;
case "S":
case "s":
action.setSkill(cEff[i]["id"]);
break;
}
var tgr = [];
if (action.item().scope === item.scope) {
var r = targets.filter(function (t) {
return t.isDead();
});
if (r.length !== targets.length) {
tgr = targets;
}
} else if (action.isForOne() && action.isForFriend()) {
if (user.isAlive()) {
tgr = [user];
}
} else if (
action.isForOne() &&
action.isForOpponent() &&
this._lastAction.isForOpponent()
) {
for (var j = 0; j < targets.length; j++) {
if (targets[j].isAlive()) {
tgr = [targets[j]];
break;
}
}
} else {
tgr = action.makeTargets();
}
if (tgr.length > 0) {
user.setAddEffects(action, tgr);
}
}
}
}
};
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
Game_Battler.prototype.setAddEffects = function (action, targets) {
if (this._addEffects === undefined) { this._addEffects = [] }
this._addEffects.push([action, targets]);
};
Game_Battler.prototype.setAddEffects = function (action, targets) {
if (this._addEffects === undefined) {
this._addEffects = [];
}
this._addEffects.push([action, targets]);
};
Game_Battler.prototype.isAddEffects = function () {
if (this._addEffects && this._addEffects.length > 0) { return true }
return false;
};
Game_Battler.prototype.isAddEffects = function () {
if (this._addEffects && this._addEffects.length > 0) {
return true;
}
return false;
};
Game_Battler.prototype.shiftCurrentAddEffects = function () {
return this._addEffects.shift();
};
Game_Battler.prototype.shiftCurrentAddEffects = function () {
return this._addEffects.shift();
};
var __GBattler_useItem = Game_Battler.prototype.useItem;
Game_Battler.prototype.useItem = function (item) {
if ($gameTemp._checkAddEffect) { return } // 追加効果は消費が発生しない
__GBattler_useItem.call(this, item);
};
var __GBattler_useItem = Game_Battler.prototype.useItem;
Game_Battler.prototype.useItem = function (item) {
if ($gameTemp._checkAddEffect) {
return;
} // 追加効果は消費が発生しない
__GBattler_useItem.call(this, item);
};
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
Window_BattleLog.prototype.displayAddEffect = function (subject, item) {
var text = displayAddEffectText;
if (text != 'null') {
if (DataManager.isSkill(item)) {
text = text.replace('_mes1', item.message1);
text = text.replace('_mes2', item.message2);
}
text = text.replace('_user', subject.name());
text = text.replace('_name', item.name);
this.push('addText', text);
this.push('wait');
this.push('clear');
}
};
Window_BattleLog.prototype.displayAddEffect = function (subject, item) {
var text = displayAddEffectText;
if (text != "null") {
if (DataManager.isSkill(item)) {
text = text.replace("_mes1", item.message1);
text = text.replace("_mes2", item.message2);
}
text = text.replace("_user", subject.name());
text = text.replace("_name", item.name);
this.push("addText", text);
this.push("wait");
this.push("clear");
}
};
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
var _CAef_GAction_makeTargets = Game_Action.prototype.makeTargets;
Game_Action.prototype.makeTargets = function () {
if ($gameTemp._caefTargets) {
return $gameTemp._caefTargets;
} else {
return _CAef_GAction_makeTargets.call(this);
}
};
var _CAef_GAction_makeTargets = Game_Action.prototype.makeTargets;
Game_Action.prototype.makeTargets = function () {
if ($gameTemp._caefTargets) {
return $gameTemp._caefTargets;
} else {
return _CAef_GAction_makeTargets.call(this);
}
};
var _CAef_GAction_apply = Game_Action.prototype.apply;
Game_Action.prototype.apply = function (target) {
$gameTemp._tmpTarget = target;
_CAef_GAction_apply.call(this, target);
}
var _CAef_GAction_apply = Game_Action.prototype.apply;
Game_Action.prototype.apply = function (target) {
$gameTemp._tmpTarget = target;
_CAef_GAction_apply.call(this, target);
};
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
var _CAef_GActionResult_isHit = Game_ActionResult.prototype.isHit;
Game_ActionResult.prototype.isHit = function () {
var result = _CAef_GActionResult_isHit.call(this);
$gameTemp._tmpTarget._lastHit = result;
return result;
};
var _CAef_GActionResult_isHit = Game_ActionResult.prototype.isHit;
Game_ActionResult.prototype.isHit = function () {
var result = _CAef_GActionResult_isHit.call(this);
$gameTemp._tmpTarget._lastHit = result;
return result;
};
////////////////////////////////////////////////////////////////////////////////////
}());
////////////////////////////////////////////////////////////////////////////////////
})();

File diff suppressed because it is too large Load diff

View file

@ -23,10 +23,10 @@
* @author Moooty
*
* @help
* Add escape character for YEP_YEP_X_ItemDurability.js with ItemNameEscape.js
*
* Add escape character for YEP_YEP_X_ItemDurability.js with ItemNameEscape.js
*
* required : YEP_X_ItemDurability.js, ItemNameEscape.js
*
*
* escape codes :
* \D equipment durability
* \MD equipment max durability
@ -45,127 +45,126 @@
* @help
* 項目名の制御文字適用プラグイン(ItemNameEscape.js)を使って
* YEP_X_ItemDurability.js用の制御文字を追加します
*
*
* YEP_X_ItemDurabilityとItemNameEscape.jsのあとにプラグインを読みこんでください
*
* \D 装備の耐久度
* \MD 装備の最大耐久度
*
*
*/
(function () {
'use strict';
const UNBREAKABLE = -1;
"use strict";
const UNBREAKABLE = -1;
// 耐久度回復アイテムを使った時に耐久度を更新する
// Window_ItemList(rpg_windows.js)をオーバーライド
var _Window_ItemList_makeItemList = Window_ItemList.prototype.makeItemList;
Window_ItemList.prototype.makeItemList = function () {
_Window_ItemList_makeItemList.call(this);
DataManager.updateDurability();
};
// 耐久度回復アイテムを使った時に耐久度を更新する
// Window_ItemList(rpg_windows.js)をオーバーライド
var _Window_ItemList_makeItemList = Window_ItemList.prototype.makeItemList;
Window_ItemList.prototype.makeItemList = function () {
_Window_ItemList_makeItemList.call(this);
DataManager.updateDurability();
};
// メニューシーンを開いた時に耐久度を更新する
// Scene_Menu(rpg_scenes.js)をオーバーライド
var _Scene_Menu_initialize = Scene_Menu.prototype.initialize;
Scene_Menu.prototype.initialize = function () {
_Scene_Menu_initialize.call(this);
DataManager.updateDurability();
};
// メニューシーンを開いた時に耐久度を更新する
// Scene_Menu(rpg_scenes.js)をオーバーライド
var _Scene_Menu_initialize = Scene_Menu.prototype.initialize;
Scene_Menu.prototype.initialize = function () {
_Scene_Menu_initialize.call(this);
DataManager.updateDurability();
};
// 戦闘中に装備変更をしたい場合の更新処理(ChangeEquipBattle.jsと併用)
// ChangeEquipBattle.jsのcommandEquipにthis._eStatusWindow.refresh();を追加して使用
// BattleManager(rpg_managers.js)をオーバーライド
var _BattleManager_updateTurnEnd = BattleManager.updateTurnEnd;
BattleManager.updateTurnEnd = function () {
_BattleManager_updateTurnEnd.call(this);
DataManager.updateDurability();
};
// 戦闘中に装備変更をしたい場合の更新処理(ChangeEquipBattle.jsと併用)
// ChangeEquipBattle.jsのcommandEquipにthis._eStatusWindow.refresh();を追加して使用
// BattleManager(rpg_managers.js)をオーバーライド
var _BattleManager_updateTurnEnd = BattleManager.updateTurnEnd;
BattleManager.updateTurnEnd = function () {
_BattleManager_updateTurnEnd.call(this);
DataManager.updateDurability();
};
// 装備の耐久度を更新する
DataManager.updateDurability = function () {
if ($gameParty) {
// 装備中の装備
for (var i = 0; i < $gameParty.members().length; i++) {
var actor = $gameParty.members()[i];
for (var ii = 0; ii < actor.equips().length; ii++) {
var item = actor.equips()[ii];
this.setDurability(item);
}
}
// 装備の耐久度を更新する
DataManager.updateDurability = function () {
if ($gameParty) {
// 装備中の装備
for (var i = 0; i < $gameParty.members().length; i++) {
var actor = $gameParty.members()[i];
for (var ii = 0; ii < actor.equips().length; ii++) {
var item = actor.equips()[ii];
this.setDurability(item);
}
}
//控えの装備も更新
for (var wi = 0; wi < $gameParty.weapons().length; wi++) {
DataManager.setDurability($gameParty.weapons()[wi]);
}
//控えの装備も更新
for (var wi = 0; wi < $gameParty.weapons().length; wi++) {
DataManager.setDurability($gameParty.weapons()[wi]);
}
for (var ai = 0; ai < $gameParty.armors().length; ai++) {
DataManager.setDurability($gameParty.armors()[ai]);
}
}
};
for (var ai = 0; ai < $gameParty.armors().length; ai++) {
DataManager.setDurability($gameParty.armors()[ai]);
}
}
};
// 耐久度の変換処理を呼び出し
DataManager.setDurability = function (data) {
if (data != null) {
if (hasDurability(data)) {
if (data.preName != null) {
data.name = convertDurabilityEscapeCharacters(data.preName, data);
}
if (data.preDescription != null) {
data.description = convertDurabilityEscapeCharacters(
data.preDescription,
data
);
}
}
}
};
function hasDurability(item) {
return item.hasOwnProperty("durability") ? true : false;
}
// 耐久度用の制御文字を変換
function convertDurabilityEscapeCharacters(text, item) {
text = text.replace(/\\/g, "\x1b");
text = text.replace(/\x1b\x1b/g, "\\");
// 耐久度の変換処理を呼び出し
DataManager.setDurability = function (data) {
if (data != null) {
if (hasDurability(data)) {
if (data.preName != null) {
data.name = convertDurabilityEscapeCharacters(data.preName, data);
}
var durability = "-";
var maxDurability = "-";
if (item.durability !== UNBREAKABLE) {
durability = item.durability;
maxDurability = item.durMax;
}
if (data.preDescription != null) {
data.description = convertDurabilityEscapeCharacters(data.preDescription, data);
}
}
}
};
text = text.replace(/\x1bD/gi, durability);
text = text.replace(/\x1bMD/gi, maxDurability);
function hasDurability(item) {
return item.hasOwnProperty('durability') ? true : false;
}
return text;
}
// 耐久度用の制御文字を変換
function convertDurabilityEscapeCharacters(text, item) {
text = text.replace(/\\/g, '\x1b');
text = text.replace(/\x1b\x1b/g, '\\');
var _Window_Base_convertEscapeCharacters =
Window_Base.prototype.convertEscapeCharacters;
Window_Base.prototype.convertEscapeCharacters = function (text) {
var result = _Window_Base_convertEscapeCharacters.apply(this, arguments);
result = trimDurabilityStrings(result);
var durability = '-';
var maxDurability = '-';
if (item.durability !== UNBREAKABLE) {
durability = item.durability;
maxDurability = item.durMax;
}
return result;
};
text = text.replace(/\x1bD/gi, durability);
text = text.replace(/\x1bMD/gi, maxDurability);
// メッセージの表示の時にアイテム名の耐久度を取りのぞく
function trimDurabilityStrings(str) {
const PLUGIN_NAME = "CustomItemEscapeCharacterDurability";
var parameters = PluginManager.parameters(PLUGIN_NAME);
var removeString = parameters["removeString"];
removeString = removeString.replace(/\\/g, "\x1b");
removeString = removeString.replace(/\x1b\x1b/g, "\\");
return text;
};
removeString = removeString.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
var regExp = new RegExp(removeString);
var _Window_Base_convertEscapeCharacters = Window_Base.prototype.convertEscapeCharacters;
Window_Base.prototype.convertEscapeCharacters = function (text) {
var result = _Window_Base_convertEscapeCharacters.apply(this, arguments);
result = trimDurabilityStrings(result);
return result;
};
// メッセージの表示の時にアイテム名の耐久度を取りのぞく
function trimDurabilityStrings(str) {
const PLUGIN_NAME = "CustomItemEscapeCharacterDurability";
var parameters = PluginManager.parameters(PLUGIN_NAME);
var removeString = parameters['removeString'];
removeString = removeString.replace(/\\/g, '\x1b');
removeString = removeString.replace(/\x1b\x1b/g, '\\');
removeString = removeString.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
var regExp = new RegExp(removeString);
return str.replace(regExp, '');
}
return str.replace(regExp, "");
}
})();

View file

@ -142,93 +142,104 @@
* このプラグインはもうあなたのものです
*/
(function () {
'use strict';
var pluginName = 'CustomizeConfigDefault';
"use strict";
var pluginName = "CustomizeConfigDefault";
var getParamNumber = function (paramNames, min, max) {
var value = getParamOther(paramNames);
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(value, 10) || 0).clamp(min, max);
};
var getParamNumber = function (paramNames, min, max) {
var value = getParamOther(paramNames);
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(value, 10) || 0).clamp(min, max);
};
var getParamBoolean = function (paramNames) {
var value = getParamOther(paramNames);
return (value || '').toUpperCase() === 'ON';
};
var getParamBoolean = function (paramNames) {
var value = getParamOther(paramNames);
return (value || "").toUpperCase() === "ON";
};
var getParamOther = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return null;
};
var getParamOther = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return null;
};
//=============================================================================
// パラメータの取得と整形
//=============================================================================
var paramAlwaysDash = getParamBoolean(['AlwaysDash', '常時ダッシュ']);
var paramCommandRemember = getParamBoolean(['CommandRemember', 'コマンド記憶']);
var paramBgmVolume = getParamNumber(['BgmVolume', 'BGM音量'], 0, 100);
var paramBgsVolume = getParamNumber(['BgsVolume', 'BGS音量'], 0, 100);
var paramMeVolume = getParamNumber(['MeVolume', 'ME音量'], 0, 100);
var paramSeVolume = getParamNumber(['SeVolume', 'SE音量'], 0, 100);
var paramEraseAlwaysDash = getParamBoolean(['EraseAlwaysDash', '常時ダッシュ消去']);
var paramEraseCommandRemember = getParamBoolean(['EraseCommandRemember', 'コマンド記憶消去']);
var paramEraseBgmVolume = getParamBoolean(['EraseBgmVolume', 'BGM音量消去']);
var paramEraseBgsVolume = getParamBoolean(['EraseBgsVolume', 'BGS音量消去']);
var paramEraseMeVolume = getParamBoolean(['EraseMeVolume', 'ME音量消去']);
var paramEraseSeVolume = getParamBoolean(['EraseSeVolume', 'SE音量消去']);
//=============================================================================
// パラメータの取得と整形
//=============================================================================
var paramAlwaysDash = getParamBoolean(["AlwaysDash", "常時ダッシュ"]);
var paramCommandRemember = getParamBoolean([
"CommandRemember",
"コマンド記憶",
]);
var paramBgmVolume = getParamNumber(["BgmVolume", "BGM音量"], 0, 100);
var paramBgsVolume = getParamNumber(["BgsVolume", "BGS音量"], 0, 100);
var paramMeVolume = getParamNumber(["MeVolume", "ME音量"], 0, 100);
var paramSeVolume = getParamNumber(["SeVolume", "SE音量"], 0, 100);
var paramEraseAlwaysDash = getParamBoolean([
"EraseAlwaysDash",
"常時ダッシュ消去",
]);
var paramEraseCommandRemember = getParamBoolean([
"EraseCommandRemember",
"コマンド記憶消去",
]);
var paramEraseBgmVolume = getParamBoolean(["EraseBgmVolume", "BGM音量消去"]);
var paramEraseBgsVolume = getParamBoolean(["EraseBgsVolume", "BGS音量消去"]);
var paramEraseMeVolume = getParamBoolean(["EraseMeVolume", "ME音量消去"]);
var paramEraseSeVolume = getParamBoolean(["EraseSeVolume", "SE音量消去"]);
//=============================================================================
// ConfigManager
// それぞれの項目に初期値を与えます。
//=============================================================================
var _ConfigManagerApplyData = ConfigManager.applyData;
ConfigManager.applyData = function (config) {
_ConfigManagerApplyData.apply(this, arguments);
if (config.alwaysDash == null) this.alwaysDash = paramAlwaysDash;
if (config.commandRemember == null) this.commandRemember = paramCommandRemember;
if (config.bgmVolume == null) this.bgmVolume = paramBgmVolume;
if (config.bgsVolume == null) this.bgsVolume = paramBgsVolume;
if (config.meVolume == null) this.meVolume = paramMeVolume;
if (config.seVolume == null) this.seVolume = paramSeVolume;
};
//=============================================================================
// ConfigManager
// それぞれの項目に初期値を与えます。
//=============================================================================
var _ConfigManagerApplyData = ConfigManager.applyData;
ConfigManager.applyData = function (config) {
_ConfigManagerApplyData.apply(this, arguments);
if (config.alwaysDash == null) this.alwaysDash = paramAlwaysDash;
if (config.commandRemember == null)
this.commandRemember = paramCommandRemember;
if (config.bgmVolume == null) this.bgmVolume = paramBgmVolume;
if (config.bgsVolume == null) this.bgsVolume = paramBgsVolume;
if (config.meVolume == null) this.meVolume = paramMeVolume;
if (config.seVolume == null) this.seVolume = paramSeVolume;
};
//=============================================================================
// Window_Options
// パラメータを空白にした項目を除去します。
//=============================================================================
var _Window_Options_makeCommandList = Window_Options.prototype.makeCommandList;
Window_Options.prototype.makeCommandList = function () {
_Window_Options_makeCommandList.apply(this, arguments);
if (paramEraseAlwaysDash) this.eraseOption('alwaysDash');
if (paramEraseCommandRemember) this.eraseOption('commandRemember');
if (paramEraseBgmVolume) this.eraseOption('bgmVolume');
if (paramEraseBgsVolume) this.eraseOption('bgsVolume');
if (paramEraseMeVolume) this.eraseOption('meVolume');
if (paramEraseSeVolume) this.eraseOption('seVolume');
};
//=============================================================================
// Window_Options
// パラメータを空白にした項目を除去します。
//=============================================================================
var _Window_Options_makeCommandList =
Window_Options.prototype.makeCommandList;
Window_Options.prototype.makeCommandList = function () {
_Window_Options_makeCommandList.apply(this, arguments);
if (paramEraseAlwaysDash) this.eraseOption("alwaysDash");
if (paramEraseCommandRemember) this.eraseOption("commandRemember");
if (paramEraseBgmVolume) this.eraseOption("bgmVolume");
if (paramEraseBgsVolume) this.eraseOption("bgsVolume");
if (paramEraseMeVolume) this.eraseOption("meVolume");
if (paramEraseSeVolume) this.eraseOption("seVolume");
};
Window_Options.prototype.eraseOption = function (symbol) {
for (var i = 0; i < this._list.length; i++) {
if (this._list[i].symbol === symbol) {
this._list.splice(i, 1);
// for Mano_InputConfig.js
this.adjustIndexManoInputConfig(i);
break;
}
}
};
Window_Options.prototype.eraseOption = function (symbol) {
for (var i = 0; i < this._list.length; i++) {
if (this._list[i].symbol === symbol) {
this._list.splice(i, 1);
// for Mano_InputConfig.js
this.adjustIndexManoInputConfig(i);
break;
}
}
};
Window_Options.prototype.adjustIndexManoInputConfig = function (index) {
if (this._gamepadOptionIndex > index) {
this._gamepadOptionIndex -= 1;
}
if (this._keyboardConfigIndex > index) {
this._keyboardConfigIndex -= 1;
}
};
})();
Window_Options.prototype.adjustIndexManoInputConfig = function (index) {
if (this._gamepadOptionIndex > index) {
this._gamepadOptionIndex -= 1;
}
if (this._keyboardConfigIndex > index) {
this._keyboardConfigIndex -= 1;
}
};
})();

File diff suppressed because it is too large Load diff

View file

@ -33,11 +33,14 @@
*/
(() => {
'use strict';
"use strict";
const pluginName = document.currentScript.src.replace(/^.*\/(.*).js$/, function () {
return arguments[1];
});
const pluginName = document.currentScript.src.replace(
/^.*\/(.*).js$/,
function () {
return arguments[1];
}
);
function parseArgs_erasePictures(args) {
return {
@ -46,14 +49,22 @@
};
}
const command_erasePictures = 'erasePictures';
const command_erasePictures = "erasePictures";
PluginManager.registerCommand(pluginName, command_erasePictures, function (args) {
const parsedArgs = parseArgs_erasePictures(args);
$gameScreen.erasePictures(parsedArgs.start, parsedArgs.end);
});
PluginManager.registerCommand(
pluginName,
command_erasePictures,
function (args) {
const parsedArgs = parseArgs_erasePictures(args);
$gameScreen.erasePictures(parsedArgs.start, parsedArgs.end);
}
);
Game_Screen.prototype.erasePictures = function (start, end) {
this._pictures.fill(null, this.realPictureId(start), this.realPictureId(end) + 1);
this._pictures.fill(
null,
this.realPictureId(start),
this.realPictureId(end) + 1
);
};
})();

View file

@ -64,129 +64,143 @@
*/
(function () {
'use strict';
var metaTagPrefix = 'DS_';
"use strict";
var metaTagPrefix = "DS_";
var getCommandName = function (command) {
return (command || '').toUpperCase();
};
var getCommandName = function (command) {
return (command || "").toUpperCase();
};
var getArgNumber = function (arg, min, max) {
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(convertEscapeCharacters(arg), 10) || 0).clamp(min, max);
};
var getArgNumber = function (arg, min, max) {
if (arguments.length < 2) min = -Infinity;
if (arguments.length < 3) max = Infinity;
return (parseInt(convertEscapeCharacters(arg), 10) || 0).clamp(min, max);
};
var convertEscapeCharacters = function (text) {
if (text == null) text = '';
var windowLayer = SceneManager._scene._windowLayer;
return windowLayer ? windowLayer.children[0].convertEscapeCharacters(text) : text;
};
var convertEscapeCharacters = function (text) {
if (text == null) text = "";
var windowLayer = SceneManager._scene._windowLayer;
return windowLayer
? windowLayer.children[0].convertEscapeCharacters(text)
: text;
};
//=============================================================================
// Game_Interpreter
// プラグインコマンドを追加定義します。
//=============================================================================
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.apply(this, arguments);
var commandPrefix = new RegExp('^' + metaTagPrefix);
if (!command.match(commandPrefix)) return;
try {
this.pluginCommandDirectivityShake(command.replace(commandPrefix, ''), args);
} catch (e) {
if ($gameTemp.isPlaytest() && Utils.isNwjs()) {
var window = require('nw.gui').Window.get();
if (!window.isDevToolsOpen()) {
var devTool = window.showDevTools();
devTool.moveTo(0, 0);
devTool.resizeTo(window.screenX + window.outerWidth, window.screenY + window.outerHeight);
window.focus();
}
}
console.log('プラグインコマンドの実行中にエラーが発生しました。');
console.log('- コマンド名  : ' + command);
console.log('- コマンド引数 : ' + args);
console.log('- エラー原因 : ' + e.stack || e.toString());
//=============================================================================
// Game_Interpreter
// プラグインコマンドを追加定義します。
//=============================================================================
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.apply(this, arguments);
var commandPrefix = new RegExp("^" + metaTagPrefix);
if (!command.match(commandPrefix)) return;
try {
this.pluginCommandDirectivityShake(
command.replace(commandPrefix, ""),
args
);
} catch (e) {
if ($gameTemp.isPlaytest() && Utils.isNwjs()) {
var window = require("nw.gui").Window.get();
if (!window.isDevToolsOpen()) {
var devTool = window.showDevTools();
devTool.moveTo(0, 0);
devTool.resizeTo(
window.screenX + window.outerWidth,
window.screenY + window.outerHeight
);
window.focus();
}
};
}
console.log("プラグインコマンドの実行中にエラーが発生しました。");
console.log("- コマンド名  : " + command);
console.log("- コマンド引数 : " + args);
console.log("- エラー原因 : " + e.stack || e.toString());
}
};
Game_Interpreter.prototype.pluginCommandDirectivityShake = function (command, args) {
switch (getCommandName(command)) {
case '方向設定':
case 'SET_ROTATION':
$gameScreen.setShakeRotation(getArgNumber(args[0]));
break;
case 'SIN振動':
case 'SIN_WAVE':
$gameScreen.setShakeSinWave();
break;
}
};
Game_Interpreter.prototype.pluginCommandDirectivityShake = function (
command,
args
) {
switch (getCommandName(command)) {
case "方向設定":
case "SET_ROTATION":
$gameScreen.setShakeRotation(getArgNumber(args[0]));
break;
case "SIN振動":
case "SIN_WAVE":
$gameScreen.setShakeSinWave();
break;
}
};
//=============================================================================
// Game_Screen
// シェイクの方向を保持します。
//=============================================================================
Game_Screen.prototype.getShakeRotation = function () {
return this._shakeRotation;
};
//=============================================================================
// Game_Screen
// シェイクの方向を保持します。
//=============================================================================
Game_Screen.prototype.getShakeRotation = function () {
return this._shakeRotation;
};
Game_Screen.prototype.setShakeRotation = function (value) {
this._shakeRotation = value * Math.PI / 180;
};
Game_Screen.prototype.setShakeRotation = function (value) {
this._shakeRotation = (value * Math.PI) / 180;
};
Game_Screen.prototype.setShakeSinWave = function () {
this._shakeSinWave = true;
};
Game_Screen.prototype.setShakeSinWave = function () {
this._shakeSinWave = true;
};
var _Game_Screen_clearShake = Game_Screen.prototype.clearShake;
Game_Screen.prototype.clearShake = function () {
_Game_Screen_clearShake.apply(this, arguments);
this.clearDirectivityShake();
};
var _Game_Screen_clearShake = Game_Screen.prototype.clearShake;
Game_Screen.prototype.clearShake = function () {
_Game_Screen_clearShake.apply(this, arguments);
this.clearDirectivityShake();
};
Game_Screen.prototype.clearDirectivityShake = function () {
this._shakeRotation = 0;
this._shakeSinWave = false;
};
Game_Screen.prototype.clearDirectivityShake = function () {
this._shakeRotation = 0;
this._shakeSinWave = false;
};
var _Game_Screen_updateShake = Game_Screen.prototype.updateShake;
Game_Screen.prototype.updateShake = function () {
var wasShake = this.isNeedShakeUpdate();
if (this._shakeSinWave && wasShake) {
this.updateSinShake();
} else {
_Game_Screen_updateShake.apply(this, arguments);
}
if (wasShake && !this.isNeedShakeUpdate()) {
this.clearDirectivityShake();
}
};
var _Game_Screen_updateShake = Game_Screen.prototype.updateShake;
Game_Screen.prototype.updateShake = function () {
var wasShake = this.isNeedShakeUpdate();
if (this._shakeSinWave && wasShake) {
this.updateSinShake();
} else {
_Game_Screen_updateShake.apply(this, arguments);
}
if (wasShake && !this.isNeedShakeUpdate()) {
this.clearDirectivityShake();
}
};
Game_Screen.prototype.updateSinShake = function () {
this._shake = Math.sin(3 * this._shakeDuration * this._shakeSpeed * Math.PI / 180) * this._shakePower * 3;
this._shakeDuration--;
};
Game_Screen.prototype.updateSinShake = function () {
this._shake =
Math.sin((3 * this._shakeDuration * this._shakeSpeed * Math.PI) / 180) *
this._shakePower *
3;
this._shakeDuration--;
};
Game_Screen.prototype.isNeedShakeUpdate = function () {
return this._shakeDuration > 0 || this._shake !== 0;
};
Game_Screen.prototype.isNeedShakeUpdate = function () {
return this._shakeDuration > 0 || this._shake !== 0;
};
//=============================================================================
// Spriteset_Base
// シェイクの方向を反映します。
//=============================================================================
var _Spriteset_Base_updatePosition = Spriteset_Base.prototype.updatePosition;
Spriteset_Base.prototype.updatePosition = function () {
_Spriteset_Base_updatePosition.apply(this, arguments);
var shakeRotation = $gameScreen.getShakeRotation();
if (shakeRotation) {
var shakeDistance = Math.round($gameScreen.shake());
this.x -= shakeDistance;
this.x += Math.cos(shakeRotation) * shakeDistance;
this.y += Math.sin(shakeRotation) * shakeDistance;
}
};
//=============================================================================
// Spriteset_Base
// シェイクの方向を反映します。
//=============================================================================
var _Spriteset_Base_updatePosition = Spriteset_Base.prototype.updatePosition;
Spriteset_Base.prototype.updatePosition = function () {
_Spriteset_Base_updatePosition.apply(this, arguments);
var shakeRotation = $gameScreen.getShakeRotation();
if (shakeRotation) {
var shakeDistance = Math.round($gameScreen.shake());
this.x -= shakeDistance;
this.x += Math.cos(shakeRotation) * shakeDistance;
this.y += Math.sin(shakeRotation) * shakeDistance;
}
};
})();

View file

@ -107,191 +107,196 @@
*/
(function () {
'use strict';
var pluginName = 'DrainExtend';
var metaTagPrefix = 'DE_';
"use strict";
var pluginName = "DrainExtend";
var metaTagPrefix = "DE_";
//=============================================================================
// ローカル関数
// プラグインパラメータやプラグインコマンドパラメータの整形やチェックをします
//=============================================================================
var getParamString = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return '';
};
//=============================================================================
// ローカル関数
// プラグインパラメータやプラグインコマンドパラメータの整形やチェックをします
//=============================================================================
var getParamString = function (paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return "";
};
var getParamBoolean = function (paramNames) {
var value = getParamString(paramNames).toUpperCase();
return value === 'ON' || value === 'TRUE';
};
var getParamBoolean = function (paramNames) {
var value = getParamString(paramNames).toUpperCase();
return value === "ON" || value === "TRUE";
};
var getMetaValue = function (object, name) {
var metaTagName = metaTagPrefix + (name ? name : '');
return object.meta.hasOwnProperty(metaTagName) ? object.meta[metaTagName] : undefined;
};
var getMetaValue = function (object, name) {
var metaTagName = metaTagPrefix + (name ? name : "");
return object.meta.hasOwnProperty(metaTagName)
? object.meta[metaTagName]
: undefined;
};
var getMetaValues = function (object, names) {
if (!Array.isArray(names)) return getMetaValue(object, names);
for (var i = 0, n = names.length; i < n; i++) {
var value = getMetaValue(object, names[i]);
if (value !== undefined) return value;
}
return undefined;
};
var getMetaValues = function (object, names) {
if (!Array.isArray(names)) return getMetaValue(object, names);
for (var i = 0, n = names.length; i < n; i++) {
var value = getMetaValue(object, names[i]);
if (value !== undefined) return value;
}
return undefined;
};
var convertEscapeCharacters = function (text) {
if (text == null) text = '';
var windowLayer = SceneManager._scene._windowLayer;
return windowLayer ? windowLayer.children[0].convertEscapeCharacters(text) : text;
};
var convertEscapeCharacters = function (text) {
if (text == null) text = "";
var windowLayer = SceneManager._scene._windowLayer;
return windowLayer
? windowLayer.children[0].convertEscapeCharacters(text)
: text;
};
//=============================================================================
// パラメータの取得と整形
//=============================================================================
var param = {};
param.recoverSe = getParamBoolean(['RecoverSe', '回復効果音']);
//=============================================================================
// パラメータの取得と整形
//=============================================================================
var param = {};
param.recoverSe = getParamBoolean(["RecoverSe", "回復効果音"]);
//=============================================================================
// Game_BattlerBase
// 吸収の有効率を設定します。
//=============================================================================
Game_BattlerBase.prototype.getDrainEffectiveRate = function (subject) {
var rate = null;
var a = subject;
var b = this;
this.traitObjects().forEach(function (traitObj) {
var meta = getMetaValues(traitObj, ['EffectiveRate', '有効率']);
if (meta) {
rate = Math.max(rate || 0, eval(convertEscapeCharacters(meta)) / 100);
}
});
return rate !== null ? rate : 1.0;
};
//=============================================================================
// Game_BattlerBase
// 吸収の有効率を設定します。
//=============================================================================
Game_BattlerBase.prototype.getDrainEffectiveRate = function (subject) {
var rate = null;
var a = subject;
var b = this;
this.traitObjects().forEach(function (traitObj) {
var meta = getMetaValues(traitObj, ["EffectiveRate", "有効率"]);
if (meta) {
rate = Math.max(rate || 0, eval(convertEscapeCharacters(meta)) / 100);
}
});
return rate !== null ? rate : 1.0;
};
//=============================================================================
// Game_Action
// 吸収の仕様を拡張します。
//=============================================================================
var _Game_Action_isDrain = Game_Action.prototype.isDrain;
Game_Action.prototype.isDrain = function () {
if (this._temporaryDisableDrain) {
this._temporaryDisableDrain = false;
return false;
}
return _Game_Action_isDrain.apply(this, arguments);
};
//=============================================================================
// Game_Action
// 吸収の仕様を拡張します。
//=============================================================================
var _Game_Action_isDrain = Game_Action.prototype.isDrain;
Game_Action.prototype.isDrain = function () {
if (this._temporaryDisableDrain) {
this._temporaryDisableDrain = false;
return false;
}
return _Game_Action_isDrain.apply(this, arguments);
};
Game_Action.prototype.getDrainExtendMeta = function (paramNames) {
return getMetaValues(this.item(), paramNames);
};
Game_Action.prototype.getDrainExtendMeta = function (paramNames) {
return getMetaValues(this.item(), paramNames);
};
Game_Action.prototype.getHpDrainRate = function (original) {
var rate = this.getDrainRate(['PercentageHP', 'HP吸収率']);
return rate !== undefined ? rate / 100 : (original ? 1 : undefined);
};
Game_Action.prototype.getHpDrainRate = function (original) {
var rate = this.getDrainRate(["PercentageHP", "HP吸収率"]);
return rate !== undefined ? rate / 100 : original ? 1 : undefined;
};
Game_Action.prototype.getMpDrainRate = function (original) {
var rate = this.getDrainRate(['PercentageMP', 'MP吸収率']);
return rate !== undefined ? rate / 100 : (original ? 1 : undefined);
};
Game_Action.prototype.getMpDrainRate = function (original) {
var rate = this.getDrainRate(["PercentageMP", "MP吸収率"]);
return rate !== undefined ? rate / 100 : original ? 1 : undefined;
};
Game_Action.prototype.getTpDrainRate = function () {
var rate = this.getDrainRate(['PercentageTP', 'TP吸収率']);
return rate !== undefined ? rate / 100 : undefined;
};
Game_Action.prototype.getTpDrainRate = function () {
var rate = this.getDrainRate(["PercentageTP", "TP吸収率"]);
return rate !== undefined ? rate / 100 : undefined;
};
Game_Action.prototype.getDrainRate = function (metaParams) {
var rate = convertEscapeCharacters(this.getDrainExtendMeta(metaParams));
var a = this.subject();
var b = this._drainTarget;
return rate ? eval(rate) : undefined;
};
Game_Action.prototype.getDrainRate = function (metaParams) {
var rate = convertEscapeCharacters(this.getDrainExtendMeta(metaParams));
var a = this.subject();
var b = this._drainTarget;
return rate ? eval(rate) : undefined;
};
Game_Action.prototype.isDrainMessageAttack = function () {
return !!this.getDrainExtendMeta(['AttackMessage', '攻撃メッセージ']);
};
Game_Action.prototype.isDrainMessageAttack = function () {
return !!this.getDrainExtendMeta(["AttackMessage", "攻撃メッセージ"]);
};
Game_Action.prototype.isDrainLimitOver = function () {
return !!this.getDrainExtendMeta(['LimitOver', '上限突破']);
};
Game_Action.prototype.isDrainLimitOver = function () {
return !!this.getDrainExtendMeta(["LimitOver", "上限突破"]);
};
var _Game_Action_apply = Game_Action.prototype.apply;
Game_Action.prototype.apply = function (target) {
if (this.isDrainMessageAttack()) {
this._temporaryDisableDrain = true;
}
this._drainTarget = target;
return _Game_Action_apply.apply(this, arguments);
};
var _Game_Action_apply = Game_Action.prototype.apply;
Game_Action.prototype.apply = function (target) {
if (this.isDrainMessageAttack()) {
this._temporaryDisableDrain = true;
}
this._drainTarget = target;
return _Game_Action_apply.apply(this, arguments);
};
var _Game_Action_executeHpDamage = Game_Action.prototype.executeHpDamage;
Game_Action.prototype.executeHpDamage = function (target, value) {
if (this.isDrainLimitOver()) this._temporaryDisableDrain = true;
_Game_Action_executeHpDamage.apply(this, arguments);
};
var _Game_Action_executeHpDamage = Game_Action.prototype.executeHpDamage;
Game_Action.prototype.executeHpDamage = function (target, value) {
if (this.isDrainLimitOver()) this._temporaryDisableDrain = true;
_Game_Action_executeHpDamage.apply(this, arguments);
};
var _Game_Action_gainDrainedHp = Game_Action.prototype.gainDrainedHp;
Game_Action.prototype.gainDrainedHp = function (value) {
this.gainDrainedParam(value, 'hp');
};
var _Game_Action_gainDrainedHp = Game_Action.prototype.gainDrainedHp;
Game_Action.prototype.gainDrainedHp = function (value) {
this.gainDrainedParam(value, "hp");
};
var _Game_Action_gainDrainedMp = Game_Action.prototype.gainDrainedMp;
Game_Action.prototype.gainDrainedMp = function (value) {
this.gainDrainedParam(value, 'mp');
};
var _Game_Action_gainDrainedMp = Game_Action.prototype.gainDrainedMp;
Game_Action.prototype.gainDrainedMp = function (value) {
this.gainDrainedParam(value, "mp");
};
Game_Action.prototype.gainDrainedParam = function (value, originalType) {
var effectiveRate = this._drainTarget.getDrainEffectiveRate(this.subject());
var hpRate = this.getHpDrainRate(originalType === 'hp');
if (hpRate !== undefined) {
var hpValue = Math.floor(value * hpRate * effectiveRate);
if (hpValue !== 0) {
_Game_Action_gainDrainedHp.call(this, hpValue);
}
}
var mpRate = this.getMpDrainRate(originalType === 'mp');
if (mpRate !== undefined) {
var mpValue = Math.floor(value * mpRate * effectiveRate);
if (mpValue !== 0) {
_Game_Action_gainDrainedMp.call(this, mpValue);
}
}
var tpRate = this.getTpDrainRate();
if (tpRate !== undefined) {
var tpValue = Math.floor(value * tpRate * effectiveRate);
if (tpValue !== 0) {
this.gainDrainedTp(tpValue);
}
}
};
Game_Action.prototype.gainDrainedParam = function (value, originalType) {
var effectiveRate = this._drainTarget.getDrainEffectiveRate(this.subject());
var hpRate = this.getHpDrainRate(originalType === "hp");
if (hpRate !== undefined) {
var hpValue = Math.floor(value * hpRate * effectiveRate);
if (hpValue !== 0) {
_Game_Action_gainDrainedHp.call(this, hpValue);
}
}
var mpRate = this.getMpDrainRate(originalType === "mp");
if (mpRate !== undefined) {
var mpValue = Math.floor(value * mpRate * effectiveRate);
if (mpValue !== 0) {
_Game_Action_gainDrainedMp.call(this, mpValue);
}
}
var tpRate = this.getTpDrainRate();
if (tpRate !== undefined) {
var tpValue = Math.floor(value * tpRate * effectiveRate);
if (tpValue !== 0) {
this.gainDrainedTp(tpValue);
}
}
};
Game_Action.prototype.gainDrainedTp = function (value) {
if (this.isDrain()) {
var gainTarget = this.subject();
if (this._reflectionTarget !== undefined) {
gainTarget = this._reflectionTarget;
}
gainTarget.gainTp(value);
}
};
Game_Action.prototype.gainDrainedTp = function (value) {
if (this.isDrain()) {
var gainTarget = this.subject();
if (this._reflectionTarget !== undefined) {
gainTarget = this._reflectionTarget;
}
gainTarget.gainTp(value);
}
};
//=============================================================================
// Window_BattleLog
// 吸収時に回復効果音を演奏します。
//=============================================================================
var _Window_BattleLog_displayDamage = Window_BattleLog.prototype.displayDamage;
Window_BattleLog.prototype.displayDamage = function (target) {
_Window_BattleLog_displayDamage.apply(this, arguments);
if (this.isNeedDrainRecoverSe(target.result())) {
this.push('performRecovery', target);
}
};
//=============================================================================
// Window_BattleLog
// 吸収時に回復効果音を演奏します。
//=============================================================================
var _Window_BattleLog_displayDamage =
Window_BattleLog.prototype.displayDamage;
Window_BattleLog.prototype.displayDamage = function (target) {
_Window_BattleLog_displayDamage.apply(this, arguments);
if (this.isNeedDrainRecoverSe(target.result())) {
this.push("performRecovery", target);
}
};
Window_BattleLog.prototype.isNeedDrainRecoverSe = function (result) {
return param.recoverSe && !result.missed && !result.evaded && result.drain;
};
Window_BattleLog.prototype.isNeedDrainRecoverSe = function (result) {
return param.recoverSe && !result.missed && !result.evaded && result.drain;
};
})();

File diff suppressed because it is too large Load diff

View file

@ -10,15 +10,15 @@
* @help
* ピクチャの移動の際の位置拡大率不透明度の
* 変化の仕方のパターンを変更できます
*
*
* 使い方
* プラグインコマンドeasing 動き方
* ピクチャの移動普通に設定する
* 指定した動き方でピクチャが移動します
*
*
*
*
* 以下にいくつかおすすめの動き方を載せておきます
*
*
* linear
*  同じ速度でツーっと移動しますプラグイン無しの時の動きと同じ
* easeInQuad
@ -33,260 +33,334 @@
*  びよよんと目的の値を前後してから最終的に目的の値で止まります
* easeOutBounce
*  目的の値でぼよんと何回か跳ね返ってから目的の値で止まります
*
*
* その他の動き方が知りたい方は以下のサイトを参照してください
* http://easings.net/ja
* このサイトには本プラグインで使用できるすべての動き方
* 名前と図が載っています図の見方横軸が時間縦軸が変化量
*
*
*
*
* 応用編
* プラグインコマンドeasing 動き方 x
* と指定することで横方向への位置の動き方のみ個別に変更できます
* 同様にyで縦方向sxで幅syで高さ
* opで透明度の動き方を個別に指定できます
*
*
* ライセンス
* このプラグインの利用法に制限はありませんお好きなようにどうぞ
*/
(function (jQueryEasing) {
'use strict';
var _Game_Picture_move = Game_Picture.prototype.move;
Game_Picture.prototype.move = function () {
_Game_Picture_move.apply(this, arguments);
this._time = 0;
this._easingX = { f: $gameTemp._easingX, b: this._x, c: this._targetX - this._x };
this._easingY = { f: $gameTemp._easingY, b: this._y, c: this._targetY - this._y };
this._easingSx = { f: $gameTemp._easingSx, b: this._scaleX, c: this._targetScaleX - this._scaleX };
this._easingSy = { f: $gameTemp._easingSy, b: this._scaleY, c: this._targetScaleY - this._scaleY };
this._easingOp = { f: $gameTemp._easingOp, b: this._opacity, c: this._targetOpacity - this._opacity };
};
"use strict";
var _Game_Picture_move = Game_Picture.prototype.move;
Game_Picture.prototype.move = function () {
_Game_Picture_move.apply(this, arguments);
this._time = 0;
this._easingX = {
f: $gameTemp._easingX,
b: this._x,
c: this._targetX - this._x,
};
this._easingY = {
f: $gameTemp._easingY,
b: this._y,
c: this._targetY - this._y,
};
this._easingSx = {
f: $gameTemp._easingSx,
b: this._scaleX,
c: this._targetScaleX - this._scaleX,
};
this._easingSy = {
f: $gameTemp._easingSy,
b: this._scaleY,
c: this._targetScaleY - this._scaleY,
};
this._easingOp = {
f: $gameTemp._easingOp,
b: this._opacity,
c: this._targetOpacity - this._opacity,
};
};
Game_Picture.prototype.updateMove = function () {
if (this._time < this._duration) {
this._time++;
this._x = this.updateEasing(this._easingX);
this._y = this.updateEasing(this._easingY);
this._scaleX = this.updateEasing(this._easingSx);
this._scaleY = this.updateEasing(this._easingSy);
this._opacity = this.updateEasing(this._easingOp);
}
};
Game_Picture.prototype.updateMove = function () {
if (this._time < this._duration) {
this._time++;
this._x = this.updateEasing(this._easingX);
this._y = this.updateEasing(this._easingY);
this._scaleX = this.updateEasing(this._easingSx);
this._scaleY = this.updateEasing(this._easingSy);
this._opacity = this.updateEasing(this._easingOp);
}
};
Game_Picture.prototype.updateEasing = function (easing) {
if (jQueryEasing[easing.f]) {
return jQueryEasing[easing.f](this._time, easing.b, easing.c, this._duration);
} else {
return jQueryEasing.linear(this._time, easing.b, easing.c, this._duration);
}
};
Game_Picture.prototype.updateEasing = function (easing) {
if (jQueryEasing[easing.f]) {
return jQueryEasing[easing.f](
this._time,
easing.b,
easing.c,
this._duration
);
} else {
return jQueryEasing.linear(
this._time,
easing.b,
easing.c,
this._duration
);
}
};
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.apply(this, arguments);
if (command.toLowerCase() === 'easing') {
if (!args[1]) {
$gameTemp._easingX = args[0];
$gameTemp._easingY = args[0];
$gameTemp._easingSx = args[0];
$gameTemp._easingSy = args[0];
$gameTemp._easingOp = args[0];
return;
}
switch (args[1].toLowerCase()) {
case 'x':
$gameTemp._easingX = args[0];
break;
case 'y':
$gameTemp._easingY = args[0];
break;
case 'sx':
$gameTemp._easingSx = args[0];
break;
case 'sy':
$gameTemp._easingSy = args[0];
break;
case 'op':
$gameTemp._easingOp = args[0];
break;
default:
break;
}
}
};
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.apply(this, arguments);
if (command.toLowerCase() === "easing") {
if (!args[1]) {
$gameTemp._easingX = args[0];
$gameTemp._easingY = args[0];
$gameTemp._easingSx = args[0];
$gameTemp._easingSy = args[0];
$gameTemp._easingOp = args[0];
return;
}
switch (args[1].toLowerCase()) {
case "x":
$gameTemp._easingX = args[0];
break;
case "y":
$gameTemp._easingY = args[0];
break;
case "sx":
$gameTemp._easingSx = args[0];
break;
case "sy":
$gameTemp._easingSy = args[0];
break;
case "op":
$gameTemp._easingOp = args[0];
break;
default:
break;
}
}
};
})(
/* ============================================================
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
* https://raw.github.com/danro/jquery-easing/master/LICENSE
* ======================================================== */
/* ============================================================
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
* https://raw.github.com/danro/jquery-easing/master/LICENSE
* ======================================================== */
{
// t: current time, b: begInnIng value, c: change In value, d: duration
linear: function (t, b, c, d) {
return c * (t / d) + b;
},
easeInQuad: function (t, b, c, d) {
return c * (t /= d) * t + b;
},
easeOutQuad: function (t, b, c, d) {
return -c * (t /= d) * (t - 2) + b;
},
easeInOutQuad: function (t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t + b;
return -c / 2 * ((--t) * (t - 2) - 1) + b;
},
easeInCubic: function (t, b, c, d) {
return c * (t /= d) * t * t + b;
},
easeOutCubic: function (t, b, c, d) {
return c * ((t = t / d - 1) * t * t + 1) + b;
},
easeInOutCubic: function (t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;
return c / 2 * ((t -= 2) * t * t + 2) + b;
},
easeInQuart: function (t, b, c, d) {
return c * (t /= d) * t * t * t + b;
},
easeOutQuart: function (t, b, c, d) {
return -c * ((t = t / d - 1) * t * t * t - 1) + b;
},
easeInOutQuart: function (t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t * t * t + b;
return -c / 2 * ((t -= 2) * t * t * t - 2) + b;
},
easeInQuint: function (t, b, c, d) {
return c * (t /= d) * t * t * t * t + b;
},
easeOutQuint: function (t, b, c, d) {
return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
},
easeInOutQuint: function (t, b, c, d) {
if ((t /= d / 2) < 1) return c / 2 * t * t * t * t * t + b;
return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;
},
easeInSine: function (t, b, c, d) {
return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;
},
easeOutSine: function (t, b, c, d) {
return c * Math.sin(t / d * (Math.PI / 2)) + b;
},
easeInOutSine: function (t, b, c, d) {
return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
},
easeInExpo: function (t, b, c, d) {
return (t == 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
},
easeOutExpo: function (t, b, c, d) {
return (t == d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;
},
easeInOutExpo: function (t, b, c, d) {
if (t == 0) return b;
if (t == d) return b + c;
if ((t /= d / 2) < 1) return c / 2 * Math.pow(2, 10 * (t - 1)) + b;
return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;
},
easeInCirc: function (t, b, c, d) {
return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
},
easeOutCirc: function (t, b, c, d) {
return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
},
easeInOutCirc: function (t, b, c, d) {
if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;
return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
},
easeInElastic: function (t, b, c, d) {
var s = 1.70158; var p = 0; var a = c;
if (c == 0 || t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;
if (a < Math.abs(c)) { a = c; var s = p / 4; }
else var s = p / (2 * Math.PI) * Math.asin(c / a);
return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
},
easeOutElastic: function (t, b, c, d) {
var s = 1.70158; var p = 0; var a = c;
if (c == 0 || t == 0) return b; if ((t /= d) == 1) return b + c; if (!p) p = d * .3;
if (a < Math.abs(c)) { a = c; var s = p / 4; }
else var s = p / (2 * Math.PI) * Math.asin(c / a);
return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;
},
easeInOutElastic: function (t, b, c, d) {
var s = 1.70158; var p = 0; var a = c;
if (c == 0 || t == 0) return b; if ((t /= d / 2) == 2) return b + c; if (!p) p = d * (.3 * 1.5);
if (a < Math.abs(c)) { a = c; var s = p / 4; }
else var s = p / (2 * Math.PI) * Math.asin(c / a);
if (t < 1) return -.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;
return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * .5 + c + b;
},
easeInBack: function (t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c * (t /= d) * t * ((s + 1) * t - s) + b;
},
easeOutBack: function (t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
},
easeInOutBack: function (t, b, c, d, s) {
if (s == undefined) s = 1.70158;
if ((t /= d / 2) < 1) return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;
return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;
},
easeInBounce: function (t, b, c, d) {
return c - this.easeOutBounce(d - t, 0, c, d) + b;
},
easeOutBounce: function (t, b, c, d) {
if ((t /= d) < (1 / 2.75)) {
return c * (7.5625 * t * t) + b;
} else if (t < (2 / 2.75)) {
return c * (7.5625 * (t -= (1.5 / 2.75)) * t + .75) + b;
} else if (t < (2.5 / 2.75)) {
return c * (7.5625 * (t -= (2.25 / 2.75)) * t + .9375) + b;
} else {
return c * (7.5625 * (t -= (2.625 / 2.75)) * t + .984375) + b;
}
},
easeInOutBounce: function (t, b, c, d) {
if (t < d / 2) return this.easeInBounce(t * 2, 0, c, d) * .5 + b;
return this.easeOutBounce(t * 2 - d, 0, c, d) * .5 + c * .5 + b;
}
});
{
// t: current time, b: begInnIng value, c: change In value, d: duration
linear: function (t, b, c, d) {
return c * (t / d) + b;
},
easeInQuad: function (t, b, c, d) {
return c * (t /= d) * t + b;
},
easeOutQuad: function (t, b, c, d) {
return -c * (t /= d) * (t - 2) + b;
},
easeInOutQuad: function (t, b, c, d) {
if ((t /= d / 2) < 1) return (c / 2) * t * t + b;
return (-c / 2) * (--t * (t - 2) - 1) + b;
},
easeInCubic: function (t, b, c, d) {
return c * (t /= d) * t * t + b;
},
easeOutCubic: function (t, b, c, d) {
return c * ((t = t / d - 1) * t * t + 1) + b;
},
easeInOutCubic: function (t, b, c, d) {
if ((t /= d / 2) < 1) return (c / 2) * t * t * t + b;
return (c / 2) * ((t -= 2) * t * t + 2) + b;
},
easeInQuart: function (t, b, c, d) {
return c * (t /= d) * t * t * t + b;
},
easeOutQuart: function (t, b, c, d) {
return -c * ((t = t / d - 1) * t * t * t - 1) + b;
},
easeInOutQuart: function (t, b, c, d) {
if ((t /= d / 2) < 1) return (c / 2) * t * t * t * t + b;
return (-c / 2) * ((t -= 2) * t * t * t - 2) + b;
},
easeInQuint: function (t, b, c, d) {
return c * (t /= d) * t * t * t * t + b;
},
easeOutQuint: function (t, b, c, d) {
return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
},
easeInOutQuint: function (t, b, c, d) {
if ((t /= d / 2) < 1) return (c / 2) * t * t * t * t * t + b;
return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;
},
easeInSine: function (t, b, c, d) {
return -c * Math.cos((t / d) * (Math.PI / 2)) + c + b;
},
easeOutSine: function (t, b, c, d) {
return c * Math.sin((t / d) * (Math.PI / 2)) + b;
},
easeInOutSine: function (t, b, c, d) {
return (-c / 2) * (Math.cos((Math.PI * t) / d) - 1) + b;
},
easeInExpo: function (t, b, c, d) {
return t == 0 ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;
},
easeOutExpo: function (t, b, c, d) {
return t == d ? b + c : c * (-Math.pow(2, (-10 * t) / d) + 1) + b;
},
easeInOutExpo: function (t, b, c, d) {
if (t == 0) return b;
if (t == d) return b + c;
if ((t /= d / 2) < 1) return (c / 2) * Math.pow(2, 10 * (t - 1)) + b;
return (c / 2) * (-Math.pow(2, -10 * --t) + 2) + b;
},
easeInCirc: function (t, b, c, d) {
return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;
},
easeOutCirc: function (t, b, c, d) {
return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;
},
easeInOutCirc: function (t, b, c, d) {
if ((t /= d / 2) < 1) return (-c / 2) * (Math.sqrt(1 - t * t) - 1) + b;
return (c / 2) * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
},
easeInElastic: function (t, b, c, d) {
var s = 1.70158;
var p = 0;
var a = c;
if (c == 0 || t == 0) return b;
if ((t /= d) == 1) return b + c;
if (!p) p = d * 0.3;
if (a < Math.abs(c)) {
a = c;
var s = p / 4;
} else var s = (p / (2 * Math.PI)) * Math.asin(c / a);
return (
-(
a *
Math.pow(2, 10 * (t -= 1)) *
Math.sin(((t * d - s) * (2 * Math.PI)) / p)
) + b
);
},
easeOutElastic: function (t, b, c, d) {
var s = 1.70158;
var p = 0;
var a = c;
if (c == 0 || t == 0) return b;
if ((t /= d) == 1) return b + c;
if (!p) p = d * 0.3;
if (a < Math.abs(c)) {
a = c;
var s = p / 4;
} else var s = (p / (2 * Math.PI)) * Math.asin(c / a);
return (
a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +
c +
b
);
},
easeInOutElastic: function (t, b, c, d) {
var s = 1.70158;
var p = 0;
var a = c;
if (c == 0 || t == 0) return b;
if ((t /= d / 2) == 2) return b + c;
if (!p) p = d * (0.3 * 1.5);
if (a < Math.abs(c)) {
a = c;
var s = p / 4;
} else var s = (p / (2 * Math.PI)) * Math.asin(c / a);
if (t < 1)
return (
-0.5 *
(a *
Math.pow(2, 10 * (t -= 1)) *
Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +
b
);
return (
a *
Math.pow(2, -10 * (t -= 1)) *
Math.sin(((t * d - s) * (2 * Math.PI)) / p) *
0.5 +
c +
b
);
},
easeInBack: function (t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c * (t /= d) * t * ((s + 1) * t - s) + b;
},
easeOutBack: function (t, b, c, d, s) {
if (s == undefined) s = 1.70158;
return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
},
easeInOutBack: function (t, b, c, d, s) {
if (s == undefined) s = 1.70158;
if ((t /= d / 2) < 1)
return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;
return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;
},
easeInBounce: function (t, b, c, d) {
return c - this.easeOutBounce(d - t, 0, c, d) + b;
},
easeOutBounce: function (t, b, c, d) {
if ((t /= d) < 1 / 2.75) {
return c * (7.5625 * t * t) + b;
} else if (t < 2 / 2.75) {
return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;
} else if (t < 2.5 / 2.75) {
return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;
} else {
return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;
}
},
easeInOutBounce: function (t, b, c, d) {
if (t < d / 2) return this.easeInBounce(t * 2, 0, c, d) * 0.5 + b;
return this.easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
},
}
);
/*
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
*
* Open source under the BSD License.
*
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
*/

View file

@ -49,299 +49,297 @@
*/
(function () {
var parameters = PluginManager.parameters("EnemyBook");
var unknownData = String(parameters["Unknown Data"] || "??????");
var parameters = PluginManager.parameters('EnemyBook');
var unknownData = String(parameters['Unknown Data'] || '??????');
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "EnemyBook") {
switch (args[0]) {
case "open":
SceneManager.push(Scene_EnemyBook);
break;
case "add":
$gameSystem.addToEnemyBook(Number(args[1]));
break;
case "remove":
$gameSystem.removeFromEnemyBook(Number(args[1]));
break;
case "complete":
$gameSystem.completeEnemyBook();
break;
case "clear":
$gameSystem.clearEnemyBook();
break;
}
}
};
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === 'EnemyBook') {
switch (args[0]) {
case 'open':
SceneManager.push(Scene_EnemyBook);
break;
case 'add':
$gameSystem.addToEnemyBook(Number(args[1]));
break;
case 'remove':
$gameSystem.removeFromEnemyBook(Number(args[1]));
break;
case 'complete':
$gameSystem.completeEnemyBook();
break;
case 'clear':
$gameSystem.clearEnemyBook();
break;
}
}
};
Game_System.prototype.addToEnemyBook = function (enemyId) {
if (!this._enemyBookFlags) {
this.clearEnemyBook();
}
this._enemyBookFlags[enemyId] = true;
};
Game_System.prototype.addToEnemyBook = function (enemyId) {
if (!this._enemyBookFlags) {
this.clearEnemyBook();
}
this._enemyBookFlags[enemyId] = true;
};
Game_System.prototype.removeFromEnemyBook = function (enemyId) {
if (this._enemyBookFlags) {
this._enemyBookFlags[enemyId] = false;
}
};
Game_System.prototype.removeFromEnemyBook = function (enemyId) {
if (this._enemyBookFlags) {
this._enemyBookFlags[enemyId] = false;
}
};
Game_System.prototype.completeEnemyBook = function () {
this.clearEnemyBook();
for (var i = 1; i < $dataEnemies.length; i++) {
this._enemyBookFlags[i] = true;
}
};
Game_System.prototype.completeEnemyBook = function () {
this.clearEnemyBook();
for (var i = 1; i < $dataEnemies.length; i++) {
this._enemyBookFlags[i] = true;
}
};
Game_System.prototype.clearEnemyBook = function () {
this._enemyBookFlags = [];
};
Game_System.prototype.clearEnemyBook = function () {
this._enemyBookFlags = [];
};
Game_System.prototype.isInEnemyBook = function (enemy) {
if (this._enemyBookFlags && enemy) {
return !!this._enemyBookFlags[enemy.id];
} else {
return false;
}
};
Game_System.prototype.isInEnemyBook = function (enemy) {
if (this._enemyBookFlags && enemy) {
return !!this._enemyBookFlags[enemy.id];
} else {
return false;
}
};
var _Game_Troop_setup = Game_Troop.prototype.setup;
Game_Troop.prototype.setup = function (troopId) {
_Game_Troop_setup.call(this, troopId);
this.members().forEach(function (enemy) {
if (enemy.isAppeared()) {
$gameSystem.addToEnemyBook(enemy.enemyId());
}
}, this);
};
var _Game_Troop_setup = Game_Troop.prototype.setup;
Game_Troop.prototype.setup = function (troopId) {
_Game_Troop_setup.call(this, troopId);
this.members().forEach(function (enemy) {
if (enemy.isAppeared()) {
$gameSystem.addToEnemyBook(enemy.enemyId());
}
}, this);
};
var _Game_Enemy_appear = Game_Enemy.prototype.appear;
Game_Enemy.prototype.appear = function () {
_Game_Enemy_appear.call(this);
$gameSystem.addToEnemyBook(this._enemyId);
};
var _Game_Enemy_appear = Game_Enemy.prototype.appear;
Game_Enemy.prototype.appear = function () {
_Game_Enemy_appear.call(this);
$gameSystem.addToEnemyBook(this._enemyId);
};
var _Game_Enemy_transform = Game_Enemy.prototype.transform;
Game_Enemy.prototype.transform = function (enemyId) {
_Game_Enemy_transform.call(this, enemyId);
$gameSystem.addToEnemyBook(enemyId);
};
var _Game_Enemy_transform = Game_Enemy.prototype.transform;
Game_Enemy.prototype.transform = function (enemyId) {
_Game_Enemy_transform.call(this, enemyId);
$gameSystem.addToEnemyBook(enemyId);
};
function Scene_EnemyBook() {
this.initialize.apply(this, arguments);
}
function Scene_EnemyBook() {
this.initialize.apply(this, arguments);
Scene_EnemyBook.prototype = Object.create(Scene_MenuBase.prototype);
Scene_EnemyBook.prototype.constructor = Scene_EnemyBook;
Scene_EnemyBook.prototype.initialize = function () {
Scene_MenuBase.prototype.initialize.call(this);
};
Scene_EnemyBook.prototype.create = function () {
Scene_MenuBase.prototype.create.call(this);
this._indexWindow = new Window_EnemyBookIndex(0, 0);
this._indexWindow.setHandler("cancel", this.popScene.bind(this));
var wy = this._indexWindow.height;
var ww = Graphics.boxWidth;
var wh = Graphics.boxHeight - wy;
this._statusWindow = new Window_EnemyBookStatus(0, wy, ww, wh);
this.addWindow(this._indexWindow);
this.addWindow(this._statusWindow);
this._indexWindow.setStatusWindow(this._statusWindow);
};
function Window_EnemyBookIndex() {
this.initialize.apply(this, arguments);
}
Window_EnemyBookIndex.prototype = Object.create(Window_Selectable.prototype);
Window_EnemyBookIndex.prototype.constructor = Window_EnemyBookIndex;
Window_EnemyBookIndex.lastTopRow = 0;
Window_EnemyBookIndex.lastIndex = 0;
Window_EnemyBookIndex.prototype.initialize = function (x, y) {
var width = Graphics.boxWidth;
var height = this.fittingHeight(6);
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this.refresh();
this.setTopRow(Window_EnemyBookIndex.lastTopRow);
this.select(Window_EnemyBookIndex.lastIndex);
this.activate();
};
Window_EnemyBookIndex.prototype.maxCols = function () {
return 3;
};
Window_EnemyBookIndex.prototype.maxItems = function () {
return this._list ? this._list.length : 0;
};
Window_EnemyBookIndex.prototype.setStatusWindow = function (statusWindow) {
this._statusWindow = statusWindow;
this.updateStatus();
};
Window_EnemyBookIndex.prototype.update = function () {
Window_Selectable.prototype.update.call(this);
this.updateStatus();
};
Window_EnemyBookIndex.prototype.updateStatus = function () {
if (this._statusWindow) {
var enemy = this._list[this.index()];
this._statusWindow.setEnemy(enemy);
}
};
Window_EnemyBookIndex.prototype.refresh = function () {
this._list = [];
for (var i = 1; i < $dataEnemies.length; i++) {
var enemy = $dataEnemies[i];
if (enemy.name && enemy.meta.book !== "no") {
this._list.push(enemy);
}
}
this.createContents();
this.drawAllItems();
};
Window_EnemyBookIndex.prototype.drawItem = function (index) {
var enemy = this._list[index];
var rect = this.itemRectForText(index);
var name;
if ($gameSystem.isInEnemyBook(enemy)) {
name = enemy.name;
} else {
name = unknownData;
}
this.drawText(name, rect.x, rect.y, rect.width);
};
Window_EnemyBookIndex.prototype.processCancel = function () {
Window_Selectable.prototype.processCancel.call(this);
Window_EnemyBookIndex.lastTopRow = this.topRow();
Window_EnemyBookIndex.lastIndex = this.index();
};
function Window_EnemyBookStatus() {
this.initialize.apply(this, arguments);
}
Window_EnemyBookStatus.prototype = Object.create(Window_Base.prototype);
Window_EnemyBookStatus.prototype.constructor = Window_EnemyBookStatus;
Window_EnemyBookStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._enemy = null;
this._enemySprite = new Sprite();
this._enemySprite.anchor.x = 0.5;
this._enemySprite.anchor.y = 0.5;
this._enemySprite.x = width / 2 - 20;
this._enemySprite.y = height / 2;
this.addChildToBack(this._enemySprite);
this.refresh();
};
Window_EnemyBookStatus.prototype.setEnemy = function (enemy) {
if (this._enemy !== enemy) {
this._enemy = enemy;
this.refresh();
}
};
Window_EnemyBookStatus.prototype.update = function () {
Window_Base.prototype.update.call(this);
if (this._enemySprite.bitmap) {
var bitmapHeight = this._enemySprite.bitmap.height;
var contentsHeight = this.contents.height;
var scale = 1;
if (bitmapHeight > contentsHeight) {
scale = contentsHeight / bitmapHeight;
}
this._enemySprite.scale.x = scale;
this._enemySprite.scale.y = scale;
}
};
Window_EnemyBookStatus.prototype.refresh = function () {
var enemy = this._enemy;
var x = 0;
var y = 0;
var lineHeight = this.lineHeight();
this.contents.clear();
if (!enemy || !$gameSystem.isInEnemyBook(enemy)) {
this._enemySprite.bitmap = null;
return;
}
Scene_EnemyBook.prototype = Object.create(Scene_MenuBase.prototype);
Scene_EnemyBook.prototype.constructor = Scene_EnemyBook;
var name = enemy.battlerName;
var hue = enemy.battlerHue;
var bitmap;
if ($gameSystem.isSideView()) {
bitmap = ImageManager.loadSvEnemy(name, hue);
} else {
bitmap = ImageManager.loadEnemy(name, hue);
}
this._enemySprite.bitmap = bitmap;
Scene_EnemyBook.prototype.initialize = function () {
Scene_MenuBase.prototype.initialize.call(this);
};
this.resetTextColor();
this.drawText(enemy.name, x, y);
Scene_EnemyBook.prototype.create = function () {
Scene_MenuBase.prototype.create.call(this);
this._indexWindow = new Window_EnemyBookIndex(0, 0);
this._indexWindow.setHandler('cancel', this.popScene.bind(this));
var wy = this._indexWindow.height;
var ww = Graphics.boxWidth;
var wh = Graphics.boxHeight - wy;
this._statusWindow = new Window_EnemyBookStatus(0, wy, ww, wh);
this.addWindow(this._indexWindow);
this.addWindow(this._statusWindow);
this._indexWindow.setStatusWindow(this._statusWindow);
};
x = this.textPadding();
y = lineHeight + this.textPadding();
function Window_EnemyBookIndex() {
this.initialize.apply(this, arguments);
for (var i = 0; i < 8; i++) {
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(i), x, y, 160);
this.resetTextColor();
this.drawText(enemy.params[i], x + 160, y, 60, "right");
y += lineHeight;
}
Window_EnemyBookIndex.prototype = Object.create(Window_Selectable.prototype);
Window_EnemyBookIndex.prototype.constructor = Window_EnemyBookIndex;
var rewardsWidth = 280;
x = this.contents.width - rewardsWidth;
y = lineHeight + this.textPadding();
Window_EnemyBookIndex.lastTopRow = 0;
Window_EnemyBookIndex.lastIndex = 0;
this.resetTextColor();
this.drawText(enemy.exp, x, y);
x += this.textWidth(enemy.exp) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.expA, x, y);
x += this.textWidth(TextManager.expA + " ");
Window_EnemyBookIndex.prototype.initialize = function (x, y) {
var width = Graphics.boxWidth;
var height = this.fittingHeight(6);
Window_Selectable.prototype.initialize.call(this, x, y, width, height);
this.refresh();
this.setTopRow(Window_EnemyBookIndex.lastTopRow);
this.select(Window_EnemyBookIndex.lastIndex);
this.activate();
};
this.resetTextColor();
this.drawText(enemy.gold, x, y);
x += this.textWidth(enemy.gold) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.currencyUnit, x, y);
Window_EnemyBookIndex.prototype.maxCols = function () {
return 3;
};
x = this.contents.width - rewardsWidth;
y += lineHeight;
Window_EnemyBookIndex.prototype.maxItems = function () {
return this._list ? this._list.length : 0;
};
Window_EnemyBookIndex.prototype.setStatusWindow = function (statusWindow) {
this._statusWindow = statusWindow;
this.updateStatus();
};
Window_EnemyBookIndex.prototype.update = function () {
Window_Selectable.prototype.update.call(this);
this.updateStatus();
};
Window_EnemyBookIndex.prototype.updateStatus = function () {
if (this._statusWindow) {
var enemy = this._list[this.index()];
this._statusWindow.setEnemy(enemy);
}
};
Window_EnemyBookIndex.prototype.refresh = function () {
this._list = [];
for (var i = 1; i < $dataEnemies.length; i++) {
var enemy = $dataEnemies[i];
if (enemy.name && enemy.meta.book !== 'no') {
this._list.push(enemy);
}
}
this.createContents();
this.drawAllItems();
};
Window_EnemyBookIndex.prototype.drawItem = function (index) {
var enemy = this._list[index];
var rect = this.itemRectForText(index);
var name;
if ($gameSystem.isInEnemyBook(enemy)) {
name = enemy.name;
} else {
name = unknownData;
}
this.drawText(name, rect.x, rect.y, rect.width);
};
Window_EnemyBookIndex.prototype.processCancel = function () {
Window_Selectable.prototype.processCancel.call(this);
Window_EnemyBookIndex.lastTopRow = this.topRow();
Window_EnemyBookIndex.lastIndex = this.index();
};
function Window_EnemyBookStatus() {
this.initialize.apply(this, arguments);
}
Window_EnemyBookStatus.prototype = Object.create(Window_Base.prototype);
Window_EnemyBookStatus.prototype.constructor = Window_EnemyBookStatus;
Window_EnemyBookStatus.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._enemy = null;
this._enemySprite = new Sprite();
this._enemySprite.anchor.x = 0.5;
this._enemySprite.anchor.y = 0.5;
this._enemySprite.x = width / 2 - 20;
this._enemySprite.y = height / 2;
this.addChildToBack(this._enemySprite);
this.refresh();
};
Window_EnemyBookStatus.prototype.setEnemy = function (enemy) {
if (this._enemy !== enemy) {
this._enemy = enemy;
this.refresh();
}
};
Window_EnemyBookStatus.prototype.update = function () {
Window_Base.prototype.update.call(this);
if (this._enemySprite.bitmap) {
var bitmapHeight = this._enemySprite.bitmap.height;
var contentsHeight = this.contents.height;
var scale = 1;
if (bitmapHeight > contentsHeight) {
scale = contentsHeight / bitmapHeight;
}
this._enemySprite.scale.x = scale;
this._enemySprite.scale.y = scale;
}
};
Window_EnemyBookStatus.prototype.refresh = function () {
var enemy = this._enemy;
var x = 0;
var y = 0;
var lineHeight = this.lineHeight();
this.contents.clear();
if (!enemy || !$gameSystem.isInEnemyBook(enemy)) {
this._enemySprite.bitmap = null;
return;
}
var name = enemy.battlerName;
var hue = enemy.battlerHue;
var bitmap;
if ($gameSystem.isSideView()) {
bitmap = ImageManager.loadSvEnemy(name, hue);
} else {
bitmap = ImageManager.loadEnemy(name, hue);
}
this._enemySprite.bitmap = bitmap;
this.resetTextColor();
this.drawText(enemy.name, x, y);
x = this.textPadding();
y = lineHeight + this.textPadding();
for (var i = 0; i < 8; i++) {
this.changeTextColor(this.systemColor());
this.drawText(TextManager.param(i), x, y, 160);
this.resetTextColor();
this.drawText(enemy.params[i], x + 160, y, 60, 'right');
y += lineHeight;
}
var rewardsWidth = 280;
x = this.contents.width - rewardsWidth;
y = lineHeight + this.textPadding();
this.resetTextColor();
this.drawText(enemy.exp, x, y);
x += this.textWidth(enemy.exp) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.expA, x, y);
x += this.textWidth(TextManager.expA + ' ');
this.resetTextColor();
this.drawText(enemy.gold, x, y);
x += this.textWidth(enemy.gold) + 6;
this.changeTextColor(this.systemColor());
this.drawText(TextManager.currencyUnit, x, y);
x = this.contents.width - rewardsWidth;
for (var j = 0; j < enemy.dropItems.length; j++) {
var di = enemy.dropItems[j];
if (di.kind > 0) {
var item = Game_Enemy.prototype.itemObject(di.kind, di.dataId);
this.drawItemName(item, x, y, rewardsWidth);
y += lineHeight;
}
}
for (var j = 0; j < enemy.dropItems.length; j++) {
var di = enemy.dropItems[j];
if (di.kind > 0) {
var item = Game_Enemy.prototype.itemObject(di.kind, di.dataId);
this.drawItemName(item, x, y, rewardsWidth);
y += lineHeight;
}
}
var descWidth = 480;
x = this.contents.width - descWidth;
y = this.textPadding() + lineHeight * 7;
this.drawTextEx(enemy.meta.desc1, x, y + lineHeight * 0, descWidth);
this.drawTextEx(enemy.meta.desc2, x, y + lineHeight * 1, descWidth);
};
var descWidth = 480;
x = this.contents.width - descWidth;
y = this.textPadding() + lineHeight * 7;
this.drawTextEx(enemy.meta.desc1, x, y + lineHeight * 0, descWidth);
this.drawTextEx(enemy.meta.desc2, x, y + lineHeight * 1, descWidth);
};
})();

View file

@ -11,11 +11,11 @@
//
var Imported = Imported || {};
Imported['EquipSlotAddTrait'] = 1.02;
Imported["EquipSlotAddTrait"] = 1.02;
/*:
* @plugindesc ver1.02/装備スロットを追加する特徴を設定できるようにします
* @author Yana
*
*
* @help ------------------------------------------------------
* 使用方法
* ------------------------------------------------------
@ -28,7 +28,7 @@ Imported['EquipSlotAddTrait'] = 1.02;
*
* 注意
* 初期装備に反映される形で武器を減らさないでください
*
*
* ------------------------------------------------------
* 利用規約
* ------------------------------------------------------
@ -50,91 +50,103 @@ Imported['EquipSlotAddTrait'] = 1.02;
* 公開
*/
(function () {
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
'use strict';
"use strict";
var parameters = PluginManager.parameters('EquipSlotAddTrait');
var parameters = PluginManager.parameters("EquipSlotAddTrait");
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
DataManager.addEquipSlots = function (item) {
if (!item) { return [] }
if (item._addEquipSlots === undefined) {
item._addEquipSlots = [];
var texts = item.note.split('\n');
for (var i = 0, max = texts.length; i < max; i++) {
var text = texts[i];
if (text.match(/<(?:装備スロット|AddEquipSlot):(\d+)([+-]\d+)>/)) {
item._addEquipSlots.push([Number(RegExp.$1), Number(RegExp.$2)]);
}
}
DataManager.addEquipSlots = function (item) {
if (!item) {
return [];
}
if (item._addEquipSlots === undefined) {
item._addEquipSlots = [];
var texts = item.note.split("\n");
for (var i = 0, max = texts.length; i < max; i++) {
var text = texts[i];
if (text.match(/<(?:装備スロット|AddEquipSlot):(\d+)([+-]\d+)>/)) {
item._addEquipSlots.push([Number(RegExp.$1), Number(RegExp.$2)]);
}
return item._addEquipSlots;
};
}
}
return item._addEquipSlots;
};
var __DManager_loadGame = DataManager.loadGame;
DataManager.loadGame = function (savefileId) {
var result = __DManager_loadGame.call(this, savefileId);
if (result) { $gameParty.allMembers().forEach(function (m) { m.refresh() }) }
return result;
};
var __DManager_loadGame = DataManager.loadGame;
DataManager.loadGame = function (savefileId) {
var result = __DManager_loadGame.call(this, savefileId);
if (result) {
$gameParty.allMembers().forEach(function (m) {
m.refresh();
});
}
return result;
};
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
var __GActor_equipSlots = Game_Actor.prototype.equipSlots;
Game_Actor.prototype.equipSlots = function () {
var slots = __GActor_equipSlots.call(this);
var objects = this.traitObjects().clone();
return objects.reduce(function (r, to) {
var addSlots = DataManager.addEquipSlots(to);
for (var i = 0, max = addSlots.length; i < max; i++) {
var addSlot = addSlots[i];
for (var j = 0; j < addSlot[1]; j++) {
if (!this._equips[r.length]) {
this._equips[r.length] = new Game_Item();
}
r = r.concat(addSlot[0]);
}
for (var j = 0; j < -addSlot[1]; j++) {
var index = r.indexOf(addSlot[0]);
if (index >= 0) { r.splice(index, 1) }
}
var __GActor_equipSlots = Game_Actor.prototype.equipSlots;
Game_Actor.prototype.equipSlots = function () {
var slots = __GActor_equipSlots.call(this);
var objects = this.traitObjects().clone();
return objects.reduce(
function (r, to) {
var addSlots = DataManager.addEquipSlots(to);
for (var i = 0, max = addSlots.length; i < max; i++) {
var addSlot = addSlots[i];
for (var j = 0; j < addSlot[1]; j++) {
if (!this._equips[r.length]) {
this._equips[r.length] = new Game_Item();
}
return r;
}.bind(this), slots);
};
var __GActor_initEquips = Game_Actor.prototype.initEquips;
Game_Actor.prototype.initEquips = function (equips) {
var slots = this.equipSlots();
var ary = [];
for (var i = 0, max = equips.length; i < max; i++) {
if (equips[i] === 0 || i === 0 || i === 1 && this.isDualWield()) {
ary.push(equips[i]);
continue;
r = r.concat(addSlot[0]);
}
for (var j = 0; j < -addSlot[1]; j++) {
var index = r.indexOf(addSlot[0]);
if (index >= 0) {
r.splice(index, 1);
}
var obj = $dataArmors[equips[i]];
if (slots.contains(obj.etypeId)) ary.push(equips[i]);
}
}
__GActor_initEquips.call(this, ary);
};
return r;
}.bind(this),
slots
);
};
var __GActor_initEquips = Game_Actor.prototype.initEquips;
Game_Actor.prototype.initEquips = function (equips) {
var slots = this.equipSlots();
var ary = [];
for (var i = 0, max = equips.length; i < max; i++) {
if (equips[i] === 0 || i === 0 || (i === 1 && this.isDualWield())) {
ary.push(equips[i]);
continue;
}
var obj = $dataArmors[equips[i]];
if (slots.contains(obj.etypeId)) ary.push(equips[i]);
}
__GActor_initEquips.call(this, ary);
};
var __GActor_changeClass = Game_Actor.prototype.changeClass;
Game_Actor.prototype.changeClass = function (classId, keepExp) {
__GActor_changeClass.call(this, classId, keepExp);
var es = this.equipSlots();
for (var i = 0, max = es.length; i < max; i++) {
if (!this._equips[es[i] - 1]) this._equips[es[i] - 1] = new Game_Item();
}
};
var __GActor_changeClass = Game_Actor.prototype.changeClass;
Game_Actor.prototype.changeClass = function (classId, keepExp) {
__GActor_changeClass.call(this, classId, keepExp);
var es = this.equipSlots();
for (var i = 0, max = es.length; i < max; i++) {
if (!this._equips[es[i] - 1]) this._equips[es[i] - 1] = new Game_Item();
}
};
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
var __WESlot_refresh = Window_EquipSlot.prototype.refresh;
Window_EquipSlot.prototype.refresh = function () {
if (this._actor) { this._actor.refresh() }
__WESlot_refresh.call(this);
};
}());
var __WESlot_refresh = Window_EquipSlot.prototype.refresh;
Window_EquipSlot.prototype.refresh = function () {
if (this._actor) {
this._actor.refresh();
}
__WESlot_refresh.call(this);
};
})();

View file

@ -14,26 +14,29 @@
* @help This plugin does not provide plugin commands.
*/
; (function () {
var desiredFPS = Number(PluginManager.parameters('FPSLimit')['FPS Limit']),
(function () {
var desiredFPS = Number(PluginManager.parameters("FPSLimit")["FPS Limit"]),
frameLimit = 1000 / desiredFPS,
nextUpdate = 0,
timeout = null
timeout = null;
SceneManager.requestUpdate = function () {
if (!this._stopped) {
var now = Date.now()
var now = Date.now();
if (now >= nextUpdate) {
if (timeout) { clearTimeout(timeout); timeout = null }
nextUpdate = now + frameLimit
requestAnimationFrame(this.update.bind(this))
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
nextUpdate = now + frameLimit;
requestAnimationFrame(this.update.bind(this));
} else {
var that = this
var that = this;
timeout = setTimeout(function () {
nextUpdate = Date.now() + frameLimit;
requestAnimationFrame(that.update.bind(that))
}, nextUpdate - now)
requestAnimationFrame(that.update.bind(that));
}, nextUpdate - now);
}
}
}
})()
};
})();

View file

@ -19,91 +19,91 @@ FTKR.CSS.BS = FTKR.CSS.BS || {};
/*:
* @plugindesc v2.2.0 バトル画面のステータス表示を変更するプラグイン
* @author フトコロ
*
*
* @param Enabled Save WindowLayout
* @desc ウィンドウ設定データをセーブできるようにする
* @default false
* @type boolean
* @on 有効
* @off 無効
*
*
* @param --バトルパーティー設定--
* @desc
*
* @desc
*
* @param Max Battle Members
* @desc バトルに参加する最大人数を設定します
* 0 - この機能を無効にします
* @default 0
*
*
* @param --レイアウト設定--
* @desc
*
* @desc
*
* @param statusList
* @desc 表示するステータスとその位置を設定します
* @type struct<status>[]
* @default ["{\"text\":\"name\",\"x\":\"0\",\"y\":\"0\",\"width\":\"150\"}","{\"text\":\"state\",\"x\":\"156\",\"y\":\"0\",\"width\":\"150\"}","{\"text\":\"[hp/mp]\",\"value\":\"\",\"x\":\"312\",\"y\":\"0\",\"width\":\"width - 312\"}"]
*
*
* @param Actor Status Space In Text
* @desc Text内で複数表示する場合の間隔を指定します
* @default 5
*
*
* @param --ウィンドウ設定--
* @desc
*
* @desc
*
* @param Enabled Custom Window
* @desc ウィンドウのレイアウト変更機能を使うか
* 0 - 無効, 1 - 有効
* @default 0
*
*
* @param Number Visible Rows
* @desc ステータスウィンドウの縦の行数デフォルト 4
* @default 4
*
*
* @param Number Max Cols
* @desc アクターを横に並べる数デフォルト 1
* @default 1
*
*
* @param Cursol Line Number
* @desc カーソル高さの行数デフォルト 1
* @default 1
*
*
* @param Cursol Height Space
* @desc 縦のカーソル間隔デフォルト 0
* @default 0
*
*
* @param Font Size
* @desc フォントサイズデフォルト 28
* @default 28
*
*
* @param Window Padding
* @desc ウィンドウの周囲の余白デフォルト 18
* @default 18
*
*
* @param Window Line Height
* @desc ウィンドウ内の1行の高さデフォルト 36
* @default 36
*
*
* @param Window Opacity
* @desc ウィンドウ内の背景の透明度デフォルト 192
* @default 192
*
*
* @param Hide Window Frame
* @desc ウィンドウ枠を非表示にするか
* 1 - 非表示にする0 - 表示する
* @default 0
*
*
* @param --アクターの位置設定--
* @desc
*
* @desc
*
* @param Enable Custom Position
* @desc アクターの位置変更機能を使うか
* 0 - 無効, 1 - 有効
* @default 0
*
*
* @param Max Number of Vertical
* @desc アクターを縦に並べる最大数
* @default 4
*
*
* @param Center Position X
* @desc 前列の中心のX座標
* @default 600
@ -119,7 +119,7 @@ FTKR.CSS.BS = FTKR.CSS.BS || {};
* @param Diff Position Y
* @desc 縦方向のアクターの間隔
* @default 48
*
*
* @param Diff Column
* @desc 横方向の列の間隔
* @default 96
@ -130,188 +130,188 @@ FTKR.CSS.BS = FTKR.CSS.BS || {};
*-----------------------------------------------------------------------------
* 本プラグインを実装することでバトル画面で表示するアクターの
* ステータス表示のレイアウトを変更できます
*
*
* このプラグインにはFTKR_CustomSimpleActorStatus.js (v3.0.0以降)が必要です
*
*
* プラグインの使い方は下のオンラインマニュアルページを見てください
* https://github.com/futokoro/RPGMaker/blob/master/FTKR_CSS_BattleStatus.ja.md
*
*
*
*
*-----------------------------------------------------------------------------
* 設定方法
*-----------------------------------------------------------------------------
* 1.プラグインマネージャー(プラグイン管理)本プラグインを追加して
* ください
*
*
* 2. 以下のプラグインと組み合わせる場合はプラグイン管理の順番に注意してください
*
*
* FTKR_CustomSimpleActorStatus.js (ステータス表示を変更)
* このプラグインよりも上に登録
* FTKR_CSS_BattleStatus.js
*
*
*
*
*-----------------------------------------------------------------------------
* アクターのバトルステータス表示の設定
*-----------------------------------------------------------------------------
* プラグインパラメータの設定によりバトル画面で表示する
* ステータスの表示レイアウトを変更することができます
*
*
* 各パラメータの意味と設定方法は
* FTKR_CustomSimpleActorStatus.jsのヘルプを参照してください
*
*
* なお歩行キャラSV戦闘キャラカスタムパラメータカスタムゲージの
* 設定はFTKR_CustomSimpleActorStatus.jsの設定に従います
*
*
*
*
*-----------------------------------------------------------------------------
* バトルステータスウィンドウの設定
*-----------------------------------------------------------------------------
* 以下のプラグインパラメータで設定できます
*
*
* <Enabled Custom Window>
* :バトル画面のウィンドウ変更機能を使うか指定します
* :0 - 無効, 1 - 有効
*
*
* <Number Visible Rows>
* :ステータスウィンドウの縦の行数を変更します
* :デフォルトは4行です
* :この値を変えてもコマンドウィンドウのサイズは変わりません
*
*
* <Number Max Cols>
* :ウィンドウ内でアクターを横に並べる数を変更します
* :デフォルトは 1 です
*
*
* <Cursol Line Number>
* :カーソルの高さを何行分にするか設定します
* :デフォルトは 1 です
*
*
* <Cursol Height Space>
* :縦のカーソル間隔を設定します
* :デフォルトは 0 です(単位はpixel)
*
*
* <Font Size>
* :ウィンドウ内のフォントサイズを変更します
* :デフォルトは 28 です(単位はpixel)
*
*
* <Window Padding>
* :ウィンドウの周囲の余白を変更します
* :デフォルトは 18 です(単位はpixel)
*
*
* <Window Line Height>
* :ウィンドウ内の1行の高さを変更します
* :デフォルトは 36 です(単位はpixel)
*
*
* <Window Opacity>
* :ウィンドウ内の背景の透明度を変更します
* :デフォルトは 192 です
* :0 - 透明255 - 不透明
*
*
* <Hide Window Frame>
* :ウィンドウ枠を非表示にするか指定します
* :1 - 非表示にする0 - 表示する
* :デフォルトは表示します
*
*
*
*
* ウィンドウの高さ
* ウィンドウの高さは以下の計算式で算出します
* [ウィンドウ高さ] [縦の行数] × [1行の高さ] + [余白のサイズ] × 2
*
*
*
*
* フォントサイズと行の高さ
* 基本的に下の大小関係になるように設定しましょう
* フォントサイズ 1行の高さ
*
*
*
*
* ウィンドウを消す方法
* 以下の設定にするとウィンドウ枠とウィンドウの背景が消えて
* アクターのステータスだけを表示します
*
*
* <Window Opacity> : 0
* <Hide Window Frame> : 1
*
*
*
*
*-----------------------------------------------------------------------------
* バトルフィールド上のアクターの位置設定
*-----------------------------------------------------------------------------
* 以下のプラグインパラメータで設定できます
*
*
* <Enable Custom Position>
* :アクターの位置変更機能を使うか指定します
* :0 - 無効, 1 - 有効
*
*
* <Max Number of Vertical>
* :アクターを縦に何人まで並べるか設定します
* :バトルメンバーがこの数以上になった場合後列に配置します
*
*
* <Center Position *>
* :前列の中心の座標を設定します
*
*
* <Diff Position *>
* :2番目以降のアクターの位置を先頭のアクターから
* :どの程度ずらすか設定します
*
*
* <Diff Column>
* :横方向の列の間隔を設定します
*
*
*
*
*-----------------------------------------------------------------------------
* 本プラグインのライセンスについて(License)
*-----------------------------------------------------------------------------
* 本プラグインはMITライセンスのもとで公開しています
* This plugin is released under the MIT License.
*
*
* Copyright (c) 2017,2018 Futokoro
* http://opensource.org/licenses/mit-license.php
*
*
*
*
* プラグイン公開元
* https://github.com/futokoro/RPGMaker/blob/master/README.md
*
*
*-----------------------------------------------------------------------------
* 変更来歴
*-----------------------------------------------------------------------------
*
*
* v2.2.0 - 2018/12/29 : 機能追加
* 1. ウィンドウ設定をセーブできる機能を追加
*
*
* v2.1.3 - 2018/12/13 : プラグインパラメータstatusListの初期値変更
*
*
* v2.1.2 - 2018/09/29 : 機能追加
* 1. プラグインパラメータのリストで選択できる項目を追加
*
*
* v2.1.1 - 2018/09/12 : 不具合修正
* 1. プラグインパラメータ Number Visible Rows が反映されない不具合を修正
*
*
* v2.1.0 - 2018/08/30 : 機能追加
* 1. プラグインパラメータで表示するステータスをリストで選択できる機能を追加
*
*
* v2.0.0 - 2018/08/19 : FTKR_CustomSimpleActorStatus v3.0.0 対応版に変更
*
*
* v1.3.0 - 2017/11/18 : 仕様変更
* 1. FTKR_CustomSimpleActorStatus.js v2.6.0に対応
*
*
* v1.2.1 - 2017/06/11 : 機能追加
* 1. バトルに参加する最大人数を設定する機能を追加
*
*
* v1.2.0 - 2017/05/31 : 機能追加
* 1. バトルフィールド上のSVキャラの初期位置変更機能を拡張
*
*
* v1.1.2 - 2017/05/11 : 機能追加
* 1. バトルフィールド上のSVキャラの初期位置変更機能追加
*
*
* v1.1.1 - 2017/05/06 : 機能追加
* 1. 縦のカーソル間隔を設定する機能を追加
*
*
* v1.1.0 - 2017/04/21 : 機能変更
* 1. FTKR_CustomSimpleActorStatus.jsのv1.4.0に対応
* 2. ウィンドウのレイアウト変更のON/OFF機能を追加
*
*
* v1.0.1 - 2017/04/12 : 機能追加
* 1. ウィンドウの余白と1行の高さ透明度枠の有無を変更する機能を追加
* 2. カーソル高さを変更する機能を追加
*
*
* v1.0.0 - 2017/04/11 : 初版作成
*
*
*-----------------------------------------------------------------------------
*/
//=============================================================================
@ -319,7 +319,7 @@ FTKR.CSS.BS = FTKR.CSS.BS || {};
* @param text
* @desc 表示するステータスを選択
* リストにない場合は直接テキストで記述
* @default
* @default
* @type select
* @option 名前
* @value name
@ -412,8 +412,8 @@ FTKR.CSS.BS = FTKR.CSS.BS || {};
*
* @param value
* @desc code(%1)の形式で設定するステータスの%1の内容を入力
* @default
*
* @default
*
* @param x
* @desc 表示するX座標
* @default 0
@ -429,162 +429,181 @@ FTKR.CSS.BS = FTKR.CSS.BS || {};
*/
(function () {
var paramParse = function (obj) {
return JSON.parse(JSON.stringify(obj, paramReplace));
};
var paramReplace = function (key, value) {
try {
return JSON.parse(value || null);
} catch (e) {
return value;
}
};
//=============================================================================
// プラグイン パラメータ
//=============================================================================
var parameters = PluginManager.parameters('FTKR_CSS_BattleStatus');
var saveCssWindow = paramParse(parameters['Enabled Save WindowLayout']) || false;
FTKR.CSS.BS.party = {
maxMembers: Number(parameters['Max Battle Members'] || 0),
};
//ウィンドウ設定オブジェクト
FTKR.CSS.BS.window = {
enabled: Number(parameters['Enabled Custom Window'] || 0),
numVisibleRows: Number(parameters['Number Visible Rows'] || 0),
fontSize: Number(parameters['Font Size'] || 0),
padding: Number(parameters['Window Padding'] || 0),
lineHeight: Number(parameters['Window Line Height'] || 0),
opacity: Number(parameters['Window Opacity'] || 0),
hideFrame: Number(parameters['Hide Window Frame'] || 0),
maxCols: Number(parameters['Number Max Cols'] || 0),
cursorHeight: Number(parameters['Cursol Line Number'] || 0),
hspace: Number(parameters['Cursol Height Space'] || 0),
};
//簡易ステータスオブジェクト
FTKR.CSS.BS.simpleStatus = {
statusList: paramParse(parameters['statusList']),
spaceIn: Number(parameters['Actor Status Space In Text'] || 0),
};
FTKR.CSS.BS.position = {
enabled: Number(parameters['Enable Custom Position'] || 0),
diffX: Number(parameters['Diff Position X'] || 0),
diffY: Number(parameters['Diff Position Y'] || 0),
diffCol: Number(parameters['Diff Column'] || 0),
centerX: Number(parameters['Center Position X'] || 0),
centerY: Number(parameters['Center Position Y'] || 0),
maxVer: Number(parameters['Max Number of Vertical'] || 0),
};
//=============================================================================
// Game_System
//=============================================================================
var _Game_System_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function () {
_Game_System_initialize.call(this);
if (saveCssWindow) {
this.resetCssBattleWindow();
}
};
Game_System.prototype.resetCssBattleWindow = function () {
this._cssBattleWindow = JsonEx.makeDeepCopy(FTKR.CSS.BS.window);
};
Game_System.prototype.cssBattleWindow = function () {
return saveCssWindow ? this._cssBattleWindow : FTKR.CSS.BS.window;
};
//=============================================================================
// Game_Party
//=============================================================================
if (FTKR.CSS.BS.party.maxMembers) {
Game_Party.prototype.maxBattleMembers = function () {
return FTKR.CSS.BS.party.maxMembers;
};
var paramParse = function (obj) {
return JSON.parse(JSON.stringify(obj, paramReplace));
};
var paramReplace = function (key, value) {
try {
return JSON.parse(value || null);
} catch (e) {
return value;
}
};
//=============================================================================
// Window_BattleStatus
// バトル画面のステータスウィンドウの表示クラス
//=============================================================================
if (Imported.FTKR_CSS) {
//=============================================================================
// プラグイン パラメータ
//=============================================================================
var parameters = PluginManager.parameters("FTKR_CSS_BattleStatus");
Window_BattleStatus.prototype.standardCssLayout = function () {
return $gameSystem.cssBattleWindow();
};
var saveCssWindow =
paramParse(parameters["Enabled Save WindowLayout"]) || false;
Window_BattleStatus.prototype.standardCssStatus = function () {
return FTKR.CSS.BS.simpleStatus;
};
FTKR.CSS.BS.party = {
maxMembers: Number(parameters["Max Battle Members"] || 0),
};
Window_BattleStatus.prototype.itemHeight = function () {
return this.cursorHeight() ?
this.lineHeight() * this.cursorHeight() :
Window_Selectable.prototype.itemHeight.call(this);
};
//ウィンドウ設定オブジェクト
FTKR.CSS.BS.window = {
enabled: Number(parameters["Enabled Custom Window"] || 0),
numVisibleRows: Number(parameters["Number Visible Rows"] || 0),
fontSize: Number(parameters["Font Size"] || 0),
padding: Number(parameters["Window Padding"] || 0),
lineHeight: Number(parameters["Window Line Height"] || 0),
opacity: Number(parameters["Window Opacity"] || 0),
hideFrame: Number(parameters["Hide Window Frame"] || 0),
maxCols: Number(parameters["Number Max Cols"] || 0),
cursorHeight: Number(parameters["Cursol Line Number"] || 0),
hspace: Number(parameters["Cursol Height Space"] || 0),
};
//ウィンドウの行数
var _DS_Window_BattleStatus_numVisibleRows = Window_BattleStatus.prototype.numVisibleRows;
Window_BattleStatus.prototype.numVisibleRows = function () {
return $gameSystem.cssBattleWindow().enabled ? $gameSystem.cssBattleWindow().numVisibleRows : _DS_Window_BattleStatus_numVisibleRows.call(this);
};
//簡易ステータスオブジェクト
FTKR.CSS.BS.simpleStatus = {
statusList: paramParse(parameters["statusList"]),
spaceIn: Number(parameters["Actor Status Space In Text"] || 0),
};
//書き換え
//アクター1人分のステータス表示
Window_BattleStatus.prototype.drawItem = function (index) {
var lss = this._lssStatus;
var actor = $gameParty.battleMembers()[index];
var rect = this.itemRectForText(index);
this.drawCssActorStatus(index, actor, rect.x, rect.y, rect.width, rect.height, lss);
};
};//FTKR_CustomSimpleActorStatus.jsが必要
FTKR.CSS.BS.position = {
enabled: Number(parameters["Enable Custom Position"] || 0),
diffX: Number(parameters["Diff Position X"] || 0),
diffY: Number(parameters["Diff Position Y"] || 0),
diffCol: Number(parameters["Diff Column"] || 0),
centerX: Number(parameters["Center Position X"] || 0),
centerY: Number(parameters["Center Position Y"] || 0),
maxVer: Number(parameters["Max Number of Vertical"] || 0),
};
//=============================================================================
// Sprite_Actor
// バトルフィールド上のSVキャラの位置変更
//=============================================================================
var _BS_Sprite_Actor_setActorHome = Sprite_Actor.prototype.setActorHome;
Sprite_Actor.prototype.setActorHome = function (index) {
_BS_Sprite_Actor_setActorHome.call(this, index);
if (FTKR.CSS.BS.position.enabled) {
this.setHome(this.partyPositionX(index), this.partyPositionY(index));
}
//=============================================================================
// Game_System
//=============================================================================
var _Game_System_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function () {
_Game_System_initialize.call(this);
if (saveCssWindow) {
this.resetCssBattleWindow();
}
};
Game_System.prototype.resetCssBattleWindow = function () {
this._cssBattleWindow = JsonEx.makeDeepCopy(FTKR.CSS.BS.window);
};
Game_System.prototype.cssBattleWindow = function () {
return saveCssWindow ? this._cssBattleWindow : FTKR.CSS.BS.window;
};
//=============================================================================
// Game_Party
//=============================================================================
if (FTKR.CSS.BS.party.maxMembers) {
Game_Party.prototype.maxBattleMembers = function () {
return FTKR.CSS.BS.party.maxMembers;
};
}
//=============================================================================
// Window_BattleStatus
// バトル画面のステータスウィンドウの表示クラス
//=============================================================================
if (Imported.FTKR_CSS) {
Window_BattleStatus.prototype.standardCssLayout = function () {
return $gameSystem.cssBattleWindow();
};
Sprite_Actor.prototype.partyPositionX = function (index) {
var party = Math.min($gameParty.battleMembers().length, FTKR.CSS.BS.position.maxVer);
var col = Math.floor(index / party);
var centerX = FTKR.CSS.BS.position.centerX - this.centerDiffX(party) + col * FTKR.CSS.BS.position.diffCol;
var positionX = centerX + (index % party) * FTKR.CSS.BS.position.diffX;
return positionX;
Window_BattleStatus.prototype.standardCssStatus = function () {
return FTKR.CSS.BS.simpleStatus;
};
Sprite_Actor.prototype.partyPositionY = function (index) {
var party = Math.min($gameParty.battleMembers().length, FTKR.CSS.BS.position.maxVer);
var centerY = FTKR.CSS.BS.position.centerY - this.centerDiffY(party);
var positionY = centerY + (index % party) * FTKR.CSS.BS.position.diffY;
return positionY;
Window_BattleStatus.prototype.itemHeight = function () {
return this.cursorHeight()
? this.lineHeight() * this.cursorHeight()
: Window_Selectable.prototype.itemHeight.call(this);
};
Sprite_Actor.prototype.centerDiffY = function (party) {
var value1 = Math.floor((party + 1) / 2) * FTKR.CSS.BS.position.diffY;
var value2 = (Math.floor(party / 2 - 1) * 2 + 1) * FTKR.CSS.BS.position.diffY / 2;
return party % 2 ? value1 : value2;
//ウィンドウの行数
var _DS_Window_BattleStatus_numVisibleRows =
Window_BattleStatus.prototype.numVisibleRows;
Window_BattleStatus.prototype.numVisibleRows = function () {
return $gameSystem.cssBattleWindow().enabled
? $gameSystem.cssBattleWindow().numVisibleRows
: _DS_Window_BattleStatus_numVisibleRows.call(this);
};
Sprite_Actor.prototype.centerDiffX = function (party) {
var value1 = Math.floor((party + 1) / 2) * FTKR.CSS.BS.position.diffX;
var value2 = (Math.floor(party / 2 - 1) * 2 + 1) * FTKR.CSS.BS.position.diffX / 2;
return party % 2 ? value1 : value2;
//書き換え
//アクター1人分のステータス表示
Window_BattleStatus.prototype.drawItem = function (index) {
var lss = this._lssStatus;
var actor = $gameParty.battleMembers()[index];
var rect = this.itemRectForText(index);
this.drawCssActorStatus(
index,
actor,
rect.x,
rect.y,
rect.width,
rect.height,
lss
);
};
} //FTKR_CustomSimpleActorStatus.jsが必要
}());//EOF
//=============================================================================
// Sprite_Actor
// バトルフィールド上のSVキャラの位置変更
//=============================================================================
var _BS_Sprite_Actor_setActorHome = Sprite_Actor.prototype.setActorHome;
Sprite_Actor.prototype.setActorHome = function (index) {
_BS_Sprite_Actor_setActorHome.call(this, index);
if (FTKR.CSS.BS.position.enabled) {
this.setHome(this.partyPositionX(index), this.partyPositionY(index));
}
};
Sprite_Actor.prototype.partyPositionX = function (index) {
var party = Math.min(
$gameParty.battleMembers().length,
FTKR.CSS.BS.position.maxVer
);
var col = Math.floor(index / party);
var centerX =
FTKR.CSS.BS.position.centerX -
this.centerDiffX(party) +
col * FTKR.CSS.BS.position.diffCol;
var positionX = centerX + (index % party) * FTKR.CSS.BS.position.diffX;
return positionX;
};
Sprite_Actor.prototype.partyPositionY = function (index) {
var party = Math.min(
$gameParty.battleMembers().length,
FTKR.CSS.BS.position.maxVer
);
var centerY = FTKR.CSS.BS.position.centerY - this.centerDiffY(party);
var positionY = centerY + (index % party) * FTKR.CSS.BS.position.diffY;
return positionY;
};
Sprite_Actor.prototype.centerDiffY = function (party) {
var value1 = Math.floor((party + 1) / 2) * FTKR.CSS.BS.position.diffY;
var value2 =
((Math.floor(party / 2 - 1) * 2 + 1) * FTKR.CSS.BS.position.diffY) / 2;
return party % 2 ? value1 : value2;
};
Sprite_Actor.prototype.centerDiffX = function (party) {
var value1 = Math.floor((party + 1) / 2) * FTKR.CSS.BS.position.diffX;
var value2 =
((Math.floor(party / 2 - 1) * 2 + 1) * FTKR.CSS.BS.position.diffX) / 2;
return party % 2 ? value1 : value2;
};
})(); //EOF

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -26,19 +26,19 @@ FTKR.SHW = FTKR.SHW || {};
* @off 表示
* @default false
*
* @help
* @help
*-----------------------------------------------------------------------------
* 概要
*-----------------------------------------------------------------------------
* 選択肢ウィンドウを表示中に選択肢ごとに設定した説明文を表示するウィンドウを
* 追加で表示します
*
*
* 説明文はイベントコマンドの注釈で作成します
* 注釈の最初の行に<SHW_説明>と記入されていると以降の行の文章を
* 説明文として取り込みます
*
*
* 以下の様にイベントを作成してください
*
*
* 選択肢の表示はい, いいえ (ウィンドウ, , #1, #2)
* はいのとき
* 注釈<SHW_説明>
@ -49,172 +49,183 @@ FTKR.SHW = FTKR.SHW || {};
*   いいえを選択中の説明文
*
* 分岐終了
*
*
*
*
* 説明文ウィンドウ画面上部に固定で表示します
* また説明文は2行まで表示できます
*
*
*
*
*-----------------------------------------------------------------------------
* 設定方法
*-----------------------------------------------------------------------------
* 1.プラグインマネージャー(プラグイン管理)本プラグインを追加して
* ください
*
*
*
*
*-----------------------------------------------------------------------------
* 本プラグインのライセンスについて(License)
*-----------------------------------------------------------------------------
* 本プラグインはMITライセンスのもとで公開しています
* This plugin is released under the MIT License.
*
*
* Copyright (c) 2018 Futokoro
* http://opensource.org/licenses/mit-license.php
*
*
*
*
* プラグイン公開元
* https://github.com/futokoro/RPGMaker/blob/master/README.md
*
*
*
*
*-----------------------------------------------------------------------------
* 変更来歴
*-----------------------------------------------------------------------------
*
*
* v1.1.0 - 2018/08/06 : 機能追加
* 1. 注釈の設定がない場合は説明ウィンドウを非表示にする機能を追加
*
*
* v1.0.0 - 2018/04/15 : 初版作成
*
*
*-----------------------------------------------------------------------------
*/
*/
//=============================================================================
(function () {
var parameters = PluginManager.parameters('FTKR_SelectHelpWindow');
FTKR.SHW.enableHideWindow = JSON.parse(parameters['Enable Hide Window'] || false);
var parameters = PluginManager.parameters("FTKR_SelectHelpWindow");
FTKR.SHW.enableHideWindow = JSON.parse(
parameters["Enable Hide Window"] || false
);
//=============================================================================
// Game_Interpreter
//=============================================================================
var _SHW_Game_Interpreter_setupChoices = Game_Interpreter.prototype.setupChoices;
Game_Interpreter.prototype.setupChoices = function (params) {
_SHW_Game_Interpreter_setupChoices.call(this, params);
var texts = this.setupChoiceHelpMessage();
$gameMessage.setChoiceHelpTexts(texts);
};
//=============================================================================
// Game_Interpreter
//=============================================================================
var _SHW_Game_Interpreter_setupChoices =
Game_Interpreter.prototype.setupChoices;
Game_Interpreter.prototype.setupChoices = function (params) {
_SHW_Game_Interpreter_setupChoices.call(this, params);
var texts = this.setupChoiceHelpMessage();
$gameMessage.setChoiceHelpTexts(texts);
};
Game_Interpreter.prototype.listCode = function (index) {
var command = this._list[index];
if (command) {
return command.code;
} else {
return 0;
Game_Interpreter.prototype.listCode = function (index) {
var command = this._list[index];
if (command) {
return command.code;
} else {
return 0;
}
};
Game_Interpreter.prototype.setupChoiceHelpMessage = function () {
var index = this._index;
var texts = [];
var textIndex = 0;
for (var i = index; i < this._list.length; i++) {
if (this.listCode(i) === 404) return texts;
if (
this.listCode(i) === 108 &&
this._list[i].parameters[0] === "<SHW_説明>"
) {
// 注釈
i++;
texts[textIndex] = "";
for (var j = i; j < this._list.length; j++) {
if (this.listCode(j) !== 408) break;
texts[textIndex] += this._list[j].parameters[0] + "\n";
}
};
textIndex++;
}
}
return texts;
};
Game_Interpreter.prototype.setupChoiceHelpMessage = function () {
var index = this._index;
var texts = [];
var textIndex = 0;
for (var i = index; i < this._list.length; i++) {
if (this.listCode(i) === 404) return texts;
if (this.listCode(i) === 108 && this._list[i].parameters[0] === '<SHW_説明>') { // 注釈
i++;
texts[textIndex] = '';
for (var j = i; j < this._list.length; j++) {
if (this.listCode(j) !== 408) break;
texts[textIndex] += this._list[j].parameters[0] + '\n';
}
textIndex++;
}
}
return texts;
};
//=============================================================================
// Game_Message
//=============================================================================
//=============================================================================
// Game_Message
//=============================================================================
Game_Message.prototype.setChoiceHelpTexts = function (texts) {
this._choiceHelpTexts = texts;
};
Game_Message.prototype.setChoiceHelpTexts = function (texts) {
this._choiceHelpTexts = texts;
};
//=============================================================================
// Scene_Map
//=============================================================================
//=============================================================================
// Scene_Map
//=============================================================================
var _SHW_Scene_Map_createMessageWindow =
Scene_Map.prototype.createMessageWindow;
Scene_Map.prototype.createMessageWindow = function () {
_SHW_Scene_Map_createMessageWindow.call(this);
this.addWindow(this._messageWindow.choiceHelpWindow());
};
var _SHW_Scene_Map_createMessageWindow = Scene_Map.prototype.createMessageWindow;
Scene_Map.prototype.createMessageWindow = function () {
_SHW_Scene_Map_createMessageWindow.call(this);
this.addWindow(this._messageWindow.choiceHelpWindow());
};
var _SHW_Scene_Battle_createMessageWindow =
Scene_Battle.prototype.createMessageWindow;
Scene_Battle.prototype.createMessageWindow = function () {
_SHW_Scene_Battle_createMessageWindow.call(this);
this.addWindow(this._messageWindow.choiceHelpWindow());
};
var _SHW_Scene_Battle_createMessageWindow = Scene_Battle.prototype.createMessageWindow;
Scene_Battle.prototype.createMessageWindow = function () {
_SHW_Scene_Battle_createMessageWindow.call(this);
this.addWindow(this._messageWindow.choiceHelpWindow());
};
//=============================================================================
// Window_ChoiceList
//=============================================================================
Window_ChoiceList.prototype.setHelpWindowText = function (text) {
if (this._helpWindow) {
this._helpWindow.setText(text);
this._helpWindow.show();
}
};
//=============================================================================
// Window_ChoiceList
//=============================================================================
Window_ChoiceList.prototype.setHelpWindowText = function (text) {
if (this._helpWindow) {
this._helpWindow.setText(text);
this._helpWindow.show();
}
};
Window_ChoiceList.prototype.updateHelp = function () {
var text = $gameMessage._choiceHelpTexts[this.index()];
if (FTKR.SHW.enableHideWindow && (text == undefined || !text)) {
this._helpWindow.hide();
} else {
this.setHelpWindowText(text);
}
};
Window_ChoiceList.prototype.updateHelp = function () {
var text = $gameMessage._choiceHelpTexts[this.index()];
if (FTKR.SHW.enableHideWindow && (text == undefined || !text)) {
this._helpWindow.hide();
} else {
this.setHelpWindowText(text);
}
};
Window_ChoiceList.prototype.helpWindow = function () {
return this._messageWindow.choiceHelpWindow();
};
Window_ChoiceList.prototype.helpWindow = function () {
return this._messageWindow.choiceHelpWindow();
};
var _SHW_Window_ChoiceList_start = Window_ChoiceList.prototype.start;
Window_ChoiceList.prototype.start = function () {
_SHW_Window_ChoiceList_start.call(this);
this.helpWindow().open();
};
var _SHW_Window_ChoiceList_start = Window_ChoiceList.prototype.start;
Window_ChoiceList.prototype.start = function () {
_SHW_Window_ChoiceList_start.call(this);
this.helpWindow().open();
};
var _SHW_Window_ChoiceList_callOkHandler =
Window_ChoiceList.prototype.callOkHandler;
Window_ChoiceList.prototype.callOkHandler = function () {
_SHW_Window_ChoiceList_callOkHandler.call(this);
this.helpWindow().close();
};
var _SHW_Window_ChoiceList_callOkHandler = Window_ChoiceList.prototype.callOkHandler;
Window_ChoiceList.prototype.callOkHandler = function () {
_SHW_Window_ChoiceList_callOkHandler.call(this);
this.helpWindow().close();
};
var _SHW_Window_ChoiceList_callCancelHandler =
Window_ChoiceList.prototype.callCancelHandler;
Window_ChoiceList.prototype.callCancelHandler = function () {
_SHW_Window_ChoiceList_callCancelHandler.call(this);
this.helpWindow().close();
};
var _SHW_Window_ChoiceList_callCancelHandler = Window_ChoiceList.prototype.callCancelHandler;
Window_ChoiceList.prototype.callCancelHandler = function () {
_SHW_Window_ChoiceList_callCancelHandler.call(this);
this.helpWindow().close();
};
//=============================================================================
// Window_Message
//=============================================================================
//=============================================================================
// Window_Message
//=============================================================================
var _SHW_Window_Message_createSubWindows =
Window_Message.prototype.createSubWindows;
Window_Message.prototype.createSubWindows = function () {
_SHW_Window_Message_createSubWindows.call(this);
this.createChoiceHelpWIndow();
};
var _SHW_Window_Message_createSubWindows = Window_Message.prototype.createSubWindows;
Window_Message.prototype.createSubWindows = function () {
_SHW_Window_Message_createSubWindows.call(this);
this.createChoiceHelpWIndow();
};
Window_Message.prototype.createChoiceHelpWIndow = function () {
this._helpWindow = new Window_Help();
this._helpWindow.close();
this._helpWindow.openness = 0;
this._choiceWindow.setHelpWindow(this._helpWindow);
};
Window_Message.prototype.createChoiceHelpWIndow = function () {
this._helpWindow = new Window_Help();
this._helpWindow.close();
this._helpWindow.openness = 0;
this._choiceWindow.setHelpWindow(this._helpWindow);
};
Window_Message.prototype.choiceHelpWindow = function () {
return this._helpWindow;
};
}());//EOF
Window_Message.prototype.choiceHelpWindow = function () {
return this._helpWindow;
};
})(); //EOF

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