Initial Commit
This commit is contained in:
commit
89fdc6c7f8
96 changed files with 732462 additions and 0 deletions
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Ignore all files
|
||||
*.*
|
||||
|
||||
# Except
|
||||
!*.json
|
||||
!*.js
|
||||
!*.zip
|
||||
!*.7z
|
||||
!*.csv
|
||||
!.gitignore
|
||||
!README.md
|
||||
!bokukae_sce.dat
|
||||
!bokukae_sce.dat.bak
|
||||
!bokukae_define.dat
|
||||
|
||||
# Images
|
||||
49
README.md
Normal file
49
README.md
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# 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:
|
||||
* [VSCode](https://code.visualstudio.com/) Make sure you check all the boxes for context menus. 
|
||||
* The Game
|
||||
* [Git](https://git-scm.com/downloads) (Use the default for everything. Just keep clicking Next)
|
||||
* Motivation to learn
|
||||
|
||||
Installation:
|
||||
1. Fork the repo using the fork button at the top. Click Code > HTTPS > Copy URL.
|
||||
2. Right click on the game folder and click 'Open with VSCode' (Shift+Right_Click if you are on Windows 11)
|
||||
3. Click on the Source Control Button and click initialize repository.
|
||||
|
||||

|
||||
|
||||
4. At the top click on Terminal > New Terminal. Enter the following: `git clone [URL_YOU_COPIED_ABOVE]`.
|
||||
5. Copy the contents of the new folder created with git clone into the game folder and replace all.
|
||||
6. Your source control menu should be good to go and look like this.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
8. After you are satisfied with your changes it's time to put in a PR. Go to source control to see all your changes. Add a message and click the `Commit` button to save them all.
|
||||
|
||||

|
||||
|
||||
8. Click Sync to push your changes to your fork. Now all that's left is to put in a pull request.
|
||||
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.
|
||||
12
package.json
Normal file
12
package.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "",
|
||||
"main": "www/index.html",
|
||||
"js-flags": "--expose-gc",
|
||||
"window": {
|
||||
"title": "",
|
||||
"toolbar": false,
|
||||
"width": 816,
|
||||
"height": 624,
|
||||
"icon": "www/icon/icon.png"
|
||||
}
|
||||
}
|
||||
40
www/data/Actors.json
Normal file
40
www/data/Actors.json
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"battlerName": "orikyarasaimin1_3",
|
||||
"characterIndex": 6,
|
||||
"characterName": "orikyarakabesiri",
|
||||
"classId": 5,
|
||||
"equips": [0, 0, 0, 6, 0],
|
||||
"faceIndex": 0,
|
||||
"faceName": "touko",
|
||||
"traits": [{ "code": 62, "dataId": 3, "value": 1 }],
|
||||
"initialLevel": 1,
|
||||
"maxLevel": 99,
|
||||
"name": "Kensaki Touko",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": "Always underground doing research on life reanimation"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"battlerName": "orikyara1_1",
|
||||
"characterIndex": 7,
|
||||
"characterName": "orikyarakabesiri",
|
||||
"classId": 11,
|
||||
"equips": [0, 0, 0, 6, 0],
|
||||
"faceIndex": 0,
|
||||
"faceName": "kuruerumi4",
|
||||
"traits": [
|
||||
{ "code": 62, "dataId": 3, "value": 1 },
|
||||
{ "code": 43, "dataId": 23, "value": 1 }
|
||||
],
|
||||
"initialLevel": 1,
|
||||
"maxLevel": 99,
|
||||
"name": "Kyaro",
|
||||
"nickname": "",
|
||||
"note": "",
|
||||
"profile": "Always underground doing research on life reanimation"
|
||||
}
|
||||
]
|
||||
129762
www/data/Animations.json
Normal file
129762
www/data/Animations.json
Normal file
File diff suppressed because it is too large
Load diff
654
www/data/Armors.json
Normal file
654
www/data/Armors.json
Normal file
|
|
@ -0,0 +1,654 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"atypeId": 5,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 128,
|
||||
"name": "Wooden Shield",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 3000
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 3,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 130,
|
||||
"name": "Cloth Hat",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 135,
|
||||
"name": "Cloth Armor",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"atypeId": 1,
|
||||
"description": "",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 145,
|
||||
"name": "Wooden Ring",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
5,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 300
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"atypeId": 3,
|
||||
"description": "It becomes warm.",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 149,
|
||||
"name": "Muffler",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"atypeId": 3,
|
||||
"description": "Touko's jersey I don't care about the appearance as long as it's easy\nto move in.",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 135,
|
||||
"name": "Everyday clothes",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
5,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"atypeId": 5,
|
||||
"description": "A shield made with all their soul",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 128,
|
||||
"name": "Soul Shield",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
5,
|
||||
0,
|
||||
5,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 6000
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"atypeId": 3,
|
||||
"description": "Honorable knight wearing armor Cool",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0.1
|
||||
}
|
||||
],
|
||||
"iconIndex": 137,
|
||||
"name": "Hero's Armor",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
25,
|
||||
10,
|
||||
0,
|
||||
5,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"atypeId": 3,
|
||||
"description": "The soldiers are all wearing this.",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 137,
|
||||
"name": "Chain Mail",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"atypeId": 3,
|
||||
"description": "Somehow my luck is improving. What a handmade (thing).",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 146,
|
||||
"name": "Princess's Charm",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
10
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"atypeId": 3,
|
||||
"description": "For those who prefer black over white armor",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 137,
|
||||
"name": "Black Armor",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
22,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"atypeId": 3,
|
||||
"description": "With a special material, you can protect yourself from magical\nattacks.",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 137,
|
||||
"name": "Magic Armor",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
35,
|
||||
0,
|
||||
20,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"atypeId": 3,
|
||||
"description": "The gloves that I always wear for research purposes. It's better to\nhave them than not.",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 142,
|
||||
"name": "Rubber Gloves",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"atypeId": 3,
|
||||
"description": "They can perform first aid.",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 43,
|
||||
"dataId": 24,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 142,
|
||||
"name": "Narumi's Nurse Gloves",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"atypeId": 3,
|
||||
"description": "Learning the dance of seduction",
|
||||
"etypeId": 3,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 43,
|
||||
"dataId": 27,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 133,
|
||||
"name": "Himeka's Beret",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"atypeId": 3,
|
||||
"description": "When they're bouncing around, their defense power increases.",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 128,
|
||||
"name": "Puni Puni Shield",
|
||||
"note": "",
|
||||
"params": [
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"atypeId": 3,
|
||||
"description": "Please don't leave any marks!",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 128,
|
||||
"name": "Silver Shield",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
20,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"atypeId": 3,
|
||||
"description": "It's too suspicious, but the amount of money obtained after battles\ndoubles.",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 64,
|
||||
"dataId": 4,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 146,
|
||||
"name": "Lucky Charm Bracelet",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"atypeId": 3,
|
||||
"description": "The princess's custom-made armor, which she prefers in purple color.\nThey are using good materials.",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 137,
|
||||
"name": "Purple Armor",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
20,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"atypeId": 3,
|
||||
"description": "",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 146,
|
||||
"name": "Defense",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
18,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"atypeId": 3,
|
||||
"description": "They can use their maternal instincts.",
|
||||
"etypeId": 5,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 43,
|
||||
"dataId": 28,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 133,
|
||||
"name": "Satomi's Earrings",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"atypeId": 3,
|
||||
"description": "Touko's everyday outfit includes a protective gear that enhances\npolice vision.",
|
||||
"etypeId": 4,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 43,
|
||||
"dataId": 29,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 135,
|
||||
"name": "Kaoru's Vest",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"atypeId": 0,
|
||||
"description": "",
|
||||
"etypeId": 2,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0
|
||||
}
|
||||
]
|
||||
9679
www/data/Classes.json
Normal file
9679
www/data/Classes.json
Normal file
File diff suppressed because it is too large
Load diff
511
www/data/CommonEvents.json
Normal file
511
www/data/CommonEvents.json
Normal file
|
|
@ -0,0 +1,511 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"list": [
|
||||
{
|
||||
"code": 316,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "レベル上がる",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"list": [
|
||||
{
|
||||
"code": 101,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 401,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"ガチャ時間を短縮しますか?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 102,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
[
|
||||
"はい",
|
||||
"いいえ"
|
||||
],
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 402,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
0,
|
||||
"はい"
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 121,
|
||||
"indent": 1,
|
||||
"parameters": [
|
||||
46,
|
||||
46,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 1,
|
||||
"parameters": []
|
||||
},
|
||||
{
|
||||
"code": 402,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1,
|
||||
"いいえ"
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 121,
|
||||
"indent": 1,
|
||||
"parameters": [
|
||||
46,
|
||||
46,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 1,
|
||||
"parameters": []
|
||||
},
|
||||
{
|
||||
"code": 404,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "ガチャ短縮",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"list": [
|
||||
{
|
||||
"code": 250,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Book1",
|
||||
"volume": 90,
|
||||
"pitch": 100,
|
||||
"pan": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 231,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1,
|
||||
"men1",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
100,
|
||||
100,
|
||||
255,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 101,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"",
|
||||
0,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 401,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 235,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "静香カード",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"list": [
|
||||
{
|
||||
"code": 250,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Book1",
|
||||
"volume": 90,
|
||||
"pitch": 100,
|
||||
"pan": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 231,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1,
|
||||
"men2",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
100,
|
||||
100,
|
||||
255,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 101,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"",
|
||||
0,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 401,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 235,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "鳴海カード",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"list": [
|
||||
{
|
||||
"code": 250,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Book1",
|
||||
"volume": 90,
|
||||
"pitch": 100,
|
||||
"pan": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 231,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1,
|
||||
"men3",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
100,
|
||||
100,
|
||||
255,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 101,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"",
|
||||
0,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 401,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 235,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "姫夏カード",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"list": [
|
||||
{
|
||||
"code": 250,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Book1",
|
||||
"volume": 90,
|
||||
"pitch": 100,
|
||||
"pan": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 231,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1,
|
||||
"men4",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
100,
|
||||
100,
|
||||
255,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 101,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"",
|
||||
0,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 401,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 235,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "里美カード",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"list": [
|
||||
{
|
||||
"code": 250,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Book1",
|
||||
"volume": 90,
|
||||
"pitch": 100,
|
||||
"pan": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 231,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1,
|
||||
"men5",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
100,
|
||||
100,
|
||||
255,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 101,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"",
|
||||
0,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 401,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 235,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "薫カード",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"list": [
|
||||
{
|
||||
"code": 250,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
{
|
||||
"name": "Book1",
|
||||
"volume": 90,
|
||||
"pitch": 100,
|
||||
"pan": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 231,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1,
|
||||
"men6",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
100,
|
||||
100,
|
||||
255,
|
||||
0
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 101,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
"",
|
||||
0,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 401,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
""
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 235,
|
||||
"indent": 0,
|
||||
"parameters": [
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": 0,
|
||||
"indent": 0,
|
||||
"parameters": []
|
||||
}
|
||||
],
|
||||
"name": "杏カード",
|
||||
"switchId": 1,
|
||||
"trigger": 0
|
||||
}
|
||||
]
|
||||
1383
www/data/Enemies.json
Normal file
1383
www/data/Enemies.json
Normal file
File diff suppressed because it is too large
Load diff
982
www/data/Items.json
Normal file
982
www/data/Items.json
Normal file
|
|
@ -0,0 +1,982 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"animationId": 41,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "HP recovers 20 times.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 11,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 20
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Emergency food",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 5,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"animationId": 41,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "MP5 Recovery",
|
||||
"effects": [
|
||||
{
|
||||
"code": 12,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 5
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Water",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 8,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"animationId": 45,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Cure all abnormal conditions and restore 500 HP.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 4,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 5,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 6,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 7,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 8,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 9,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 10,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Universal Medicine",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 10,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "b.mhp / 2",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Seems like it could be useful somewhere.",
|
||||
"effects": [],
|
||||
"hitType": 0,
|
||||
"iconIndex": 195,
|
||||
"itypeId": 2,
|
||||
"name": "Key 2",
|
||||
"note": "",
|
||||
"occasion": 3,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Seems like it could be useful somewhere.",
|
||||
"effects": [],
|
||||
"hitType": 0,
|
||||
"iconIndex": 195,
|
||||
"itypeId": 2,
|
||||
"name": "Key 3",
|
||||
"note": "",
|
||||
"occasion": 3,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Seems like it could be useful somewhere.",
|
||||
"effects": [],
|
||||
"hitType": 0,
|
||||
"iconIndex": 195,
|
||||
"itypeId": 2,
|
||||
"name": "Key 1",
|
||||
"note": "",
|
||||
"occasion": 3,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"animationId": 0,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Attack power increased by 1.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 42,
|
||||
"dataId": 2,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 34,
|
||||
"itypeId": 1,
|
||||
"name": "Water of Strength",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 250,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"animationId": 0,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Defense +1",
|
||||
"effects": [
|
||||
{
|
||||
"code": 42,
|
||||
"dataId": 3,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 35,
|
||||
"itypeId": 1,
|
||||
"name": "Water of Protection",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 250,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"animationId": 0,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Maximum HP +20",
|
||||
"effects": [
|
||||
{
|
||||
"code": 42,
|
||||
"dataId": 0,
|
||||
"value1": 20,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 32,
|
||||
"itypeId": 1,
|
||||
"name": "Body Water",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 250,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"animationId": 0,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Magic power +1 MP does not recover.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 42,
|
||||
"dataId": 4,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 36,
|
||||
"itypeId": 1,
|
||||
"name": "Magic Water",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 250,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"animationId": 0,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Can be exchanged for equipment and items.",
|
||||
"effects": [],
|
||||
"hitType": 0,
|
||||
"iconIndex": 191,
|
||||
"itypeId": 2,
|
||||
"name": "Premium Exchange Ticket",
|
||||
"note": "",
|
||||
"occasion": 3,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"animationId": 0,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Level +1. The level of everyone will increase.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 1,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 162,
|
||||
"itypeId": 1,
|
||||
"name": "Water of Level",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"animationId": 41,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "HP recovers 1000 times.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 11,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 1000
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Hi-Potion",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 25,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"animationId": 41,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "MP300 Recovery",
|
||||
"effects": [
|
||||
{
|
||||
"code": 12,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 300
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "High Mana Potion",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 50,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"animationId": 45,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Cure the poison.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 4,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 181,
|
||||
"itypeId": 1,
|
||||
"name": "Antidote",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 10,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"animationId": 41,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 1,
|
||||
"formula": "10000",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "HP recovers 100 times.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 11,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 100
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Medicinal Herb",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 100,
|
||||
"repeats": 1,
|
||||
"scope": 8,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "When used, the clattering motion of the gacha disappears and items\nimmediately appear.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 2,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 306,
|
||||
"itypeId": 1,
|
||||
"name": "Gacha Time Reduction Item",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"animationId": 41,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "MP20 Recovery",
|
||||
"effects": [
|
||||
{
|
||||
"code": 12,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 20
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Sports Drink",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 20,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"animationId": 41,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "HP recovers 50 times.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 11,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 50
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Oden",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 25,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"animationId": 42,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "HP recovers by 50MP40.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 12,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 40
|
||||
},
|
||||
{
|
||||
"code": 11,
|
||||
"dataId": 0,
|
||||
"value1": 0,
|
||||
"value2": 50
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Energy Drink",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 50,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"animationId": 42,
|
||||
"consumable": true,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Fully recover and cure abnormal status.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 11,
|
||||
"dataId": 0,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 12,
|
||||
"dataId": 0,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 4,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 5,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 6,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 7,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 8,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 9,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 10,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 176,
|
||||
"itypeId": 1,
|
||||
"name": "Mysterious Medicine",
|
||||
"note": "",
|
||||
"occasion": 0,
|
||||
"price": 200,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "The request for subjugating a succubus is written. It says that she\nresides in a cave to the northwest of the town, which can only be\nentered at night.",
|
||||
"effects": [],
|
||||
"hitType": 0,
|
||||
"iconIndex": 188,
|
||||
"itypeId": 2,
|
||||
"name": "Letter from the Town",
|
||||
"note": "",
|
||||
"occasion": 3,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 7,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Item(s) owned by a high school girl who suddenly barged into my house.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 3,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 121,
|
||||
"itypeId": 2,
|
||||
"name": "Shizuka's Student ID",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Possessions of a nurse who was wandering outside.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 4,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 121,
|
||||
"itypeId": 2,
|
||||
"name": "Narumi's driver's license",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Possessions of the girl who was commanding the boys.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 5,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 121,
|
||||
"itypeId": 2,
|
||||
"name": "Himika's Student ID",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Possessions of a lady who was rummaging\nthrough the refrigerator of a restaurant",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 6,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 121,
|
||||
"itypeId": 2,
|
||||
"name": "Satomi's driver's license",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Possessions of a policewoman who lacked\nintelligence and couldn't shoot a handgun.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 7,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 121,
|
||||
"itypeId": 2,
|
||||
"name": "Kaoru's Police Notebook",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"animationId": 0,
|
||||
"consumable": false,
|
||||
"damage": {
|
||||
"critical": false,
|
||||
"elementId": 0,
|
||||
"formula": "0",
|
||||
"type": 0,
|
||||
"variance": 20
|
||||
},
|
||||
"description": "Item owned by a female high school student on the rooftop of an\napartment building.",
|
||||
"effects": [
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 8,
|
||||
"value1": 1,
|
||||
"value2": 0
|
||||
}
|
||||
],
|
||||
"hitType": 0,
|
||||
"iconIndex": 121,
|
||||
"itypeId": 2,
|
||||
"name": "Anzu's Student ID",
|
||||
"note": "",
|
||||
"occasion": 2,
|
||||
"price": 0,
|
||||
"repeats": 1,
|
||||
"scope": 0,
|
||||
"speed": 0,
|
||||
"successRate": 100,
|
||||
"tpGain": 0
|
||||
}
|
||||
]
|
||||
1750
www/data/Map001.json
Normal file
1750
www/data/Map001.json
Normal file
File diff suppressed because it is too large
Load diff
2233
www/data/Map002.json
Normal file
2233
www/data/Map002.json
Normal file
File diff suppressed because it is too large
Load diff
1768
www/data/Map003.json
Normal file
1768
www/data/Map003.json
Normal file
File diff suppressed because it is too large
Load diff
1569
www/data/Map004.json
Normal file
1569
www/data/Map004.json
Normal file
File diff suppressed because it is too large
Load diff
17219
www/data/Map005.json
Normal file
17219
www/data/Map005.json
Normal file
File diff suppressed because it is too large
Load diff
191839
www/data/Map006.json
Normal file
191839
www/data/Map006.json
Normal file
File diff suppressed because it is too large
Load diff
19869
www/data/Map016.json
Normal file
19869
www/data/Map016.json
Normal file
File diff suppressed because it is too large
Load diff
34025
www/data/Map017.json
Normal file
34025
www/data/Map017.json
Normal file
File diff suppressed because it is too large
Load diff
6805
www/data/Map024.json
Normal file
6805
www/data/Map024.json
Normal file
File diff suppressed because it is too large
Load diff
2430
www/data/Map026.json
Normal file
2430
www/data/Map026.json
Normal file
File diff suppressed because it is too large
Load diff
4781
www/data/Map027.json
Normal file
4781
www/data/Map027.json
Normal file
File diff suppressed because it is too large
Load diff
41385
www/data/Map028.json
Normal file
41385
www/data/Map028.json
Normal file
File diff suppressed because it is too large
Load diff
8617
www/data/Map029.json
Normal file
8617
www/data/Map029.json
Normal file
File diff suppressed because it is too large
Load diff
3290
www/data/Map030.json
Normal file
3290
www/data/Map030.json
Normal file
File diff suppressed because it is too large
Load diff
10328
www/data/Map031.json
Normal file
10328
www/data/Map031.json
Normal file
File diff suppressed because it is too large
Load diff
2610
www/data/Map032.json
Normal file
2610
www/data/Map032.json
Normal file
File diff suppressed because it is too large
Load diff
3537
www/data/Map033.json
Normal file
3537
www/data/Map033.json
Normal file
File diff suppressed because it is too large
Load diff
2451
www/data/Map034.json
Normal file
2451
www/data/Map034.json
Normal file
File diff suppressed because it is too large
Load diff
3333
www/data/Map035.json
Normal file
3333
www/data/Map035.json
Normal file
File diff suppressed because it is too large
Load diff
5708
www/data/Map036.json
Normal file
5708
www/data/Map036.json
Normal file
File diff suppressed because it is too large
Load diff
3748
www/data/Map037.json
Normal file
3748
www/data/Map037.json
Normal file
File diff suppressed because it is too large
Load diff
3685
www/data/Map038.json
Normal file
3685
www/data/Map038.json
Normal file
File diff suppressed because it is too large
Load diff
3977
www/data/Map039.json
Normal file
3977
www/data/Map039.json
Normal file
File diff suppressed because it is too large
Load diff
2536
www/data/Map040.json
Normal file
2536
www/data/Map040.json
Normal file
File diff suppressed because it is too large
Load diff
1634
www/data/Map041.json
Normal file
1634
www/data/Map041.json
Normal file
File diff suppressed because it is too large
Load diff
4207
www/data/Map042.json
Normal file
4207
www/data/Map042.json
Normal file
File diff suppressed because it is too large
Load diff
17768
www/data/Map043.json
Normal file
17768
www/data/Map043.json
Normal file
File diff suppressed because it is too large
Load diff
1593
www/data/Map044.json
Normal file
1593
www/data/Map044.json
Normal file
File diff suppressed because it is too large
Load diff
1593
www/data/Map045.json
Normal file
1593
www/data/Map045.json
Normal file
File diff suppressed because it is too large
Load diff
3833
www/data/Map046.json
Normal file
3833
www/data/Map046.json
Normal file
File diff suppressed because it is too large
Load diff
3744
www/data/Map047.json
Normal file
3744
www/data/Map047.json
Normal file
File diff suppressed because it is too large
Load diff
298
www/data/MapInfos.json
Normal file
298
www/data/MapInfos.json
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"expanded": true,
|
||||
"name": "樹海",
|
||||
"order": 27,
|
||||
"parentId": 0,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"expanded": false,
|
||||
"name": "交番2",
|
||||
"order": 26,
|
||||
"parentId": 47,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"expanded": true,
|
||||
"name": "自宅(回想用)",
|
||||
"order": 28,
|
||||
"parentId": 1,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"expanded": true,
|
||||
"name": "自宅2階(回想用)",
|
||||
"order": 29,
|
||||
"parentId": 3,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"expanded": true,
|
||||
"name": "始まりの街(回想用)",
|
||||
"order": 30,
|
||||
"parentId": 4,
|
||||
"scrollX": 1637,
|
||||
"scrollY": 765
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"expanded": false,
|
||||
"name": "拷問部屋回想",
|
||||
"order": 31,
|
||||
"parentId": 5,
|
||||
"scrollX": 811,
|
||||
"scrollY": 765
|
||||
},
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"id": 16,
|
||||
"expanded": true,
|
||||
"name": "始まりの街",
|
||||
"order": 1,
|
||||
"parentId": 0,
|
||||
"scrollX": 1637,
|
||||
"scrollY": 975
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"expanded": true,
|
||||
"name": "荒廃した街",
|
||||
"order": 2,
|
||||
"parentId": 16,
|
||||
"scrollX": 1637,
|
||||
"scrollY": 1947
|
||||
},
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
{
|
||||
"id": 24,
|
||||
"expanded": true,
|
||||
"name": "自宅",
|
||||
"order": 3,
|
||||
"parentId": 17,
|
||||
"scrollX": 472.5,
|
||||
"scrollY": 386.5
|
||||
},
|
||||
null,
|
||||
{
|
||||
"id": 26,
|
||||
"expanded": false,
|
||||
"name": "自宅2階",
|
||||
"order": 4,
|
||||
"parentId": 24,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"expanded": true,
|
||||
"name": "研究室",
|
||||
"order": 5,
|
||||
"parentId": 24,
|
||||
"scrollX": 811,
|
||||
"scrollY": 499
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"expanded": false,
|
||||
"name": "拷問部屋",
|
||||
"order": 6,
|
||||
"parentId": 27,
|
||||
"scrollX": 811,
|
||||
"scrollY": 921
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"expanded": true,
|
||||
"name": "飲食店",
|
||||
"order": 7,
|
||||
"parentId": 17,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"expanded": false,
|
||||
"name": "厨房",
|
||||
"order": 8,
|
||||
"parentId": 29,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 31,
|
||||
"expanded": true,
|
||||
"name": "マンション1F",
|
||||
"order": 9,
|
||||
"parentId": 17,
|
||||
"scrollX": 819,
|
||||
"scrollY": 453
|
||||
},
|
||||
{
|
||||
"id": 32,
|
||||
"expanded": true,
|
||||
"name": "一階1",
|
||||
"order": 10,
|
||||
"parentId": 31,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 33,
|
||||
"expanded": true,
|
||||
"name": "一階2",
|
||||
"order": 11,
|
||||
"parentId": 31,
|
||||
"scrollX": 534.6,
|
||||
"scrollY": 430.79999999999995
|
||||
},
|
||||
{
|
||||
"id": 34,
|
||||
"expanded": true,
|
||||
"name": "一階3",
|
||||
"order": 12,
|
||||
"parentId": 31,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 35,
|
||||
"expanded": false,
|
||||
"name": "一階4",
|
||||
"order": 13,
|
||||
"parentId": 31,
|
||||
"scrollX": 472.5,
|
||||
"scrollY": 385.5
|
||||
},
|
||||
{
|
||||
"id": 36,
|
||||
"expanded": true,
|
||||
"name": "マンション2階",
|
||||
"order": 14,
|
||||
"parentId": 31,
|
||||
"scrollX": 819,
|
||||
"scrollY": 453
|
||||
},
|
||||
{
|
||||
"id": 37,
|
||||
"expanded": true,
|
||||
"name": "2階→1",
|
||||
"order": 15,
|
||||
"parentId": 36,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 38,
|
||||
"expanded": true,
|
||||
"name": "2階→2",
|
||||
"order": 16,
|
||||
"parentId": 36,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 39,
|
||||
"expanded": true,
|
||||
"name": "2階→3",
|
||||
"order": 17,
|
||||
"parentId": 36,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 40,
|
||||
"expanded": true,
|
||||
"name": "2階→4",
|
||||
"order": 18,
|
||||
"parentId": 36,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 41,
|
||||
"expanded": true,
|
||||
"name": "屋上への扉",
|
||||
"order": 19,
|
||||
"parentId": 36,
|
||||
"scrollX": 472.5,
|
||||
"scrollY": 385.5
|
||||
},
|
||||
{
|
||||
"id": 42,
|
||||
"expanded": true,
|
||||
"name": "屋上",
|
||||
"order": 20,
|
||||
"parentId": 41,
|
||||
"scrollX": 464.5,
|
||||
"scrollY": 429.5
|
||||
},
|
||||
{
|
||||
"id": 43,
|
||||
"expanded": true,
|
||||
"name": "病院",
|
||||
"order": 21,
|
||||
"parentId": 17,
|
||||
"scrollX": 885,
|
||||
"scrollY": 1467
|
||||
},
|
||||
{
|
||||
"id": 44,
|
||||
"expanded": true,
|
||||
"name": "病院の踊り場",
|
||||
"order": 22,
|
||||
"parentId": 43,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 45,
|
||||
"expanded": true,
|
||||
"name": "病院の踊り場2階",
|
||||
"order": 23,
|
||||
"parentId": 44,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 46,
|
||||
"expanded": false,
|
||||
"name": "病院の踊り場2階倉庫",
|
||||
"order": 24,
|
||||
"parentId": 45,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
},
|
||||
{
|
||||
"id": 47,
|
||||
"expanded": true,
|
||||
"name": "交番",
|
||||
"order": 25,
|
||||
"parentId": 17,
|
||||
"scrollX": 819,
|
||||
"scrollY": 461
|
||||
}
|
||||
]
|
||||
1724
www/data/Skills.json
Normal file
1724
www/data/Skills.json
Normal file
File diff suppressed because it is too large
Load diff
386
www/data/States.json
Normal file
386
www/data/States.json
Normal file
|
|
@ -0,0 +1,386 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"autoRemovalTiming": 0,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 1,
|
||||
"maxTurns": 1,
|
||||
"message1": " has collapsed!",
|
||||
"message2": " was defeated!",
|
||||
"message3": "",
|
||||
"message4": " has been revived!",
|
||||
"minTurns": 1,
|
||||
"motion": 3,
|
||||
"name": "Near Death",
|
||||
"note": "State #1 will be automatically added when\nHP reaches 0.",
|
||||
"overlay": 0,
|
||||
"priority": 100,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": false,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 4,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 23,
|
||||
"dataId": 9,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"autoRemovalTiming": 2,
|
||||
"chanceByDamage": 100,
|
||||
"description": "",
|
||||
"iconIndex": 0,
|
||||
"maxTurns": 1,
|
||||
"message1": "",
|
||||
"message2": "",
|
||||
"message3": "",
|
||||
"message4": "",
|
||||
"minTurns": 1,
|
||||
"motion": 0,
|
||||
"name": "Defense",
|
||||
"note": "",
|
||||
"overlay": 0,
|
||||
"priority": 0,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": true,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 62,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"autoRemovalTiming": 0,
|
||||
"chanceByDamage": 100,
|
||||
"description": "",
|
||||
"iconIndex": 0,
|
||||
"maxTurns": 1,
|
||||
"message1": "",
|
||||
"message2": "",
|
||||
"message3": "",
|
||||
"message4": "",
|
||||
"minTurns": 1,
|
||||
"motion": 0,
|
||||
"name": "Immortality",
|
||||
"note": "",
|
||||
"overlay": 0,
|
||||
"priority": 0,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 14,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"autoRemovalTiming": 0,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 2,
|
||||
"maxTurns": 1,
|
||||
"message1": " was poisoned.",
|
||||
"message2": " poisoned them.",
|
||||
"message3": "",
|
||||
"message4": "'s poison has been completely cured.",
|
||||
"minTurns": 1,
|
||||
"motion": 1,
|
||||
"overlay": 1,
|
||||
"name": "Poison",
|
||||
"note": "",
|
||||
"priority": 50,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 7,
|
||||
"value": -0.1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 3,
|
||||
"maxTurns": 4,
|
||||
"message1": " felt dizzy.",
|
||||
"message2": " became dizzy.",
|
||||
"message3": "",
|
||||
"message4": "'s dizziness has completely healed.",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "Dizziness",
|
||||
"note": "",
|
||||
"overlay": 2,
|
||||
"priority": 60,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": -0.5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 4,
|
||||
"maxTurns": 5,
|
||||
"message1": " is sealed.",
|
||||
"message2": " was sealed.",
|
||||
"message3": "",
|
||||
"message4": "'s seal has been completely healed.",
|
||||
"minTurns": 3,
|
||||
"motion": 1,
|
||||
"name": "Seal",
|
||||
"note": "",
|
||||
"overlay": 3,
|
||||
"priority": 65,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 42,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 50,
|
||||
"iconIndex": 5,
|
||||
"maxTurns": 4,
|
||||
"message1": " became extremely angry.",
|
||||
"message2": " is furious.",
|
||||
"message3": "",
|
||||
"message4": "'s anger subsided.",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "Fierce Anger",
|
||||
"note": "",
|
||||
"overlay": 4,
|
||||
"priority": 70,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 1,
|
||||
"stepsToRemove": 100,
|
||||
"traits": []
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 50,
|
||||
"iconIndex": 6,
|
||||
"maxTurns": 4,
|
||||
"message1": " was confused.",
|
||||
"message2": " is confused.",
|
||||
"message3": "",
|
||||
"message4": "'s confusion has been resolved.",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "Confusion",
|
||||
"note": "",
|
||||
"overlay": 5,
|
||||
"priority": 75,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 2,
|
||||
"stepsToRemove": 100,
|
||||
"traits": []
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 50,
|
||||
"iconIndex": 7,
|
||||
"maxTurns": 4,
|
||||
"message1": " was captivated.",
|
||||
"message2": " was captivated.",
|
||||
"message3": "",
|
||||
"message4": "'s charm has been released.",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "Fascination",
|
||||
"note": "",
|
||||
"overlay": 6,
|
||||
"priority": 80,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 3,
|
||||
"stepsToRemove": 100,
|
||||
"traits": []
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 8,
|
||||
"maxTurns": 5,
|
||||
"message1": " fell asleep.",
|
||||
"message2": " was put to sleep.",
|
||||
"message3": " is sleeping.",
|
||||
"message4": " woke up from sleep.",
|
||||
"minTurns": 3,
|
||||
"motion": 2,
|
||||
"name": "Sleep",
|
||||
"note": "",
|
||||
"overlay": 7,
|
||||
"priority": 90,
|
||||
"releaseByDamage": true,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": true,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 4,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": -1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 1,
|
||||
"value": -0.6
|
||||
}
|
||||
],
|
||||
"iconIndex": 9,
|
||||
"maxTurns": 4,
|
||||
"message1": "'s body stiffened.",
|
||||
"message2": "'s body stiffened.",
|
||||
"message3": " is feeling numb.",
|
||||
"message4": " has recovered from paralysis.",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"name": "Paralysis",
|
||||
"note": "",
|
||||
"overlay": 8,
|
||||
"priority": 50,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 4,
|
||||
"stepsToRemove": 100
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"iconIndex": 64,
|
||||
"maxTurns": 5,
|
||||
"message1": " was engulfed in flames.",
|
||||
"message2": " was engulfed in flames.",
|
||||
"message3": " is still burning.",
|
||||
"message4": "'s flame sank.",
|
||||
"minTurns": 2,
|
||||
"motion": 1,
|
||||
"overlay": 0,
|
||||
"name": "Flame Burst",
|
||||
"note": "",
|
||||
"priority": 50,
|
||||
"releaseByDamage": false,
|
||||
"removeAtBattleEnd": false,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 7,
|
||||
"value": -0.1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"autoRemovalTiming": 1,
|
||||
"chanceByDamage": 100,
|
||||
"traits": [
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 7,
|
||||
"value": 0.2
|
||||
}
|
||||
],
|
||||
"iconIndex": 84,
|
||||
"maxTurns": 5,
|
||||
"message1": " quickly treated the patient!",
|
||||
"message2": " is continuing with ongoing treatment.",
|
||||
"message3": "",
|
||||
"message4": "'s treatment has ended.",
|
||||
"minTurns": 5,
|
||||
"motion": 0,
|
||||
"name": "Allowance",
|
||||
"note": "",
|
||||
"overlay": 0,
|
||||
"priority": 50,
|
||||
"removeAtBattleEnd": true,
|
||||
"removeByDamage": false,
|
||||
"removeByRestriction": false,
|
||||
"removeByWalking": false,
|
||||
"restriction": 0,
|
||||
"stepsToRemove": 100
|
||||
}
|
||||
]
|
||||
626
www/data/System.json
Normal file
626
www/data/System.json
Normal file
|
|
@ -0,0 +1,626 @@
|
|||
{
|
||||
"airship": {
|
||||
"bgm": {
|
||||
"name": "Ship3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 20
|
||||
},
|
||||
"characterIndex": 3,
|
||||
"characterName": "Vehicle",
|
||||
"startMapId": 0,
|
||||
"startX": 0,
|
||||
"startY": 0
|
||||
},
|
||||
"armorTypes": [
|
||||
"",
|
||||
"General Armor",
|
||||
"Magic Armor",
|
||||
"Light Armor",
|
||||
"Heavy Armor",
|
||||
"Shield",
|
||||
"Big Shield"
|
||||
],
|
||||
"attackMotions": [
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 0
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 1
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 2
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 3
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 4
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 5
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"weaponImageId": 6
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"weaponImageId": 7
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"weaponImageId": 8
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"weaponImageId": 9
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 10
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 11
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"weaponImageId": 12
|
||||
}
|
||||
],
|
||||
"battleBgm": {
|
||||
"name": "08_Sacrificial ritual",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
"battleback1Name": "Ruins1",
|
||||
"battleback2Name": "",
|
||||
"battlerHue": 0,
|
||||
"battlerName": "Dragon",
|
||||
"boat": {
|
||||
"bgm": {
|
||||
"name": "Ship1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 20
|
||||
},
|
||||
"characterIndex": 0,
|
||||
"characterName": "Vehicle",
|
||||
"startMapId": 0,
|
||||
"startX": 0,
|
||||
"startY": 0
|
||||
},
|
||||
"currencyUnit": "円",
|
||||
"defeatMe": {
|
||||
"name": "",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
"editMapId": 17,
|
||||
"elements": [
|
||||
"",
|
||||
"物理",
|
||||
"ファイア",
|
||||
"アイス",
|
||||
"サンダー",
|
||||
"ウォーター",
|
||||
"アース",
|
||||
"ウィンド",
|
||||
"ライト",
|
||||
"ダークネス"
|
||||
],
|
||||
"equipTypes": [
|
||||
"",
|
||||
"Weapon",
|
||||
"Gloves",
|
||||
"Hat",
|
||||
"Armor",
|
||||
"Accessory"
|
||||
],
|
||||
"gameTitle": "Zombie Party",
|
||||
"gameoverMe": {
|
||||
"name": "",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 20
|
||||
},
|
||||
"locale": "en_US",
|
||||
"magicSkills": [
|
||||
1
|
||||
],
|
||||
"menuCommands": [
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"optDisplayTp": true,
|
||||
"optDrawTitle": false,
|
||||
"optExtraExp": true,
|
||||
"optFloorDeath": false,
|
||||
"optFollowers": true,
|
||||
"optSideView": true,
|
||||
"optSlipDeath": false,
|
||||
"optTransparent": false,
|
||||
"partyMembers": [
|
||||
1
|
||||
],
|
||||
"ship": {
|
||||
"bgm": {
|
||||
"name": "Ship2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 20
|
||||
},
|
||||
"characterIndex": 1,
|
||||
"characterName": "Vehicle",
|
||||
"startMapId": 0,
|
||||
"startX": 0,
|
||||
"startY": 0
|
||||
},
|
||||
"skillTypes": [
|
||||
"",
|
||||
"Magic",
|
||||
"Special",
|
||||
"Special move"
|
||||
],
|
||||
"sounds": [
|
||||
{
|
||||
"name": "cursor-01",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "kettei-01",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "cancel-01",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Buzzer1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Equip2",
|
||||
"pan": 0,
|
||||
"pitch": 120,
|
||||
"volume": 55
|
||||
},
|
||||
{
|
||||
"name": "save-01",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Load",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "battle-start",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Run",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Attack3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Damage5",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Collapse1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Collapse2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Collapse3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "damage01",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Earth3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Recovery",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Miss",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Evasion1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Evasion2",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Reflection",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Shop1",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Item3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
},
|
||||
{
|
||||
"name": "Item3",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 50
|
||||
}
|
||||
],
|
||||
"startMapId": 1,
|
||||
"startX": 5,
|
||||
"startY": 4,
|
||||
"switches": [
|
||||
"",
|
||||
"OP1",
|
||||
"小さいハンマーを取る",
|
||||
"静香犯し",
|
||||
"武器を探す",
|
||||
"武器を選んだ",
|
||||
"メスガキを犯した",
|
||||
"看護婦を討伐",
|
||||
"公園のガキ討伐",
|
||||
"メスガキ対面",
|
||||
"メスガキ軍団1",
|
||||
"メスガキ軍団2",
|
||||
"メスガキ軍団3",
|
||||
"石壊れる",
|
||||
"デブと戦った",
|
||||
"静香犯し2",
|
||||
"メスガキ軍団4",
|
||||
"メスガキ軍団消滅",
|
||||
"メスガキ討伐",
|
||||
"病院の鍵を開けられなかった",
|
||||
"メスガキ軍団消滅2",
|
||||
"飲食イベント1",
|
||||
"お姉さん討伐",
|
||||
"お姉さん犯し",
|
||||
"お姉さん犯し2",
|
||||
"婦警犯し",
|
||||
"婦警倒す",
|
||||
"抗生物質を見つける",
|
||||
"看護婦犯し2",
|
||||
"飲食店で目隠れと",
|
||||
"飲食店から出る",
|
||||
"婦警犯し2",
|
||||
"マンションへ向かう目隠れ",
|
||||
"飲食店へ向かう目隠れ",
|
||||
"マンション開通",
|
||||
"目隠れと対面",
|
||||
"目隠れ討伐",
|
||||
"目隠れ犯し",
|
||||
"回想1",
|
||||
"回想2",
|
||||
"ED",
|
||||
"正面",
|
||||
"斜視",
|
||||
"白目",
|
||||
"ちんぽケース1",
|
||||
"ちんぽケース終わり",
|
||||
"ガチャ短縮",
|
||||
"手紙を見る",
|
||||
"サキュバス終わり",
|
||||
"キマイラの肉を受け取る",
|
||||
"アイタナ寝てる",
|
||||
"キマイラの肉を届ける",
|
||||
"肉を届けてロールのもとへ",
|
||||
"酒を取る",
|
||||
"村人化け物を見る",
|
||||
"酒もってきて~",
|
||||
"大変村人到着",
|
||||
"ロール消える",
|
||||
"ロール現れる村人の声で",
|
||||
"家を飛び出す",
|
||||
"復習の魔物全滅",
|
||||
"復習の魔物全滅2",
|
||||
"夜でも輸送屋がいる",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ディールの森の扉が開く",
|
||||
"洞窟で死ぬ",
|
||||
"輸送屋感謝",
|
||||
"そして街へ",
|
||||
"ストーリーロール",
|
||||
"回想ルームが出る",
|
||||
"ロール消えるラスト",
|
||||
"ED",
|
||||
"サキュバス打倒s",
|
||||
"キャラが出てくる3",
|
||||
"キャラが出てくる2",
|
||||
"モンスターに負ける",
|
||||
"キャラが出てくる",
|
||||
"拷問部屋"
|
||||
],
|
||||
"terms": {
|
||||
"basic": [
|
||||
"Level",
|
||||
"Lv",
|
||||
"HP",
|
||||
"HP",
|
||||
"MP",
|
||||
"MP",
|
||||
"TP",
|
||||
"TP",
|
||||
"EXP",
|
||||
"EXP"
|
||||
],
|
||||
"commands": [
|
||||
"Fight",
|
||||
"Escape",
|
||||
"Attack",
|
||||
"Defense",
|
||||
"Item",
|
||||
"Skill",
|
||||
"Equipment",
|
||||
"Status",
|
||||
"Sort",
|
||||
"Save",
|
||||
"Exit",
|
||||
"Option",
|
||||
"Weapon",
|
||||
"Armor",
|
||||
"Important thing",
|
||||
"Equipment",
|
||||
"Optimal Equipment",
|
||||
"Remove all",
|
||||
"New Game",
|
||||
"Continue",
|
||||
null,
|
||||
"Go to Title",
|
||||
"Stop",
|
||||
null,
|
||||
"Buy",
|
||||
"Sell"
|
||||
],
|
||||
"params": [
|
||||
"Maximum HP",
|
||||
"Maximum MP",
|
||||
"Attack Power",
|
||||
"Defense Power",
|
||||
"Magic Attack",
|
||||
"Magic Defense",
|
||||
"Agility",
|
||||
"Luck",
|
||||
"Accuracy",
|
||||
"Evasion Rate"
|
||||
],
|
||||
"messages": {
|
||||
"actionFailure": "Failure! %1 evaded it",
|
||||
"actorDamage": "%1 takes %2 damage!",
|
||||
"actorDrain": "%1 was drained of %2 %3!",
|
||||
"actorGain": "%1 gained %2 %3!",
|
||||
"actorLoss": "%1 lost %2 %3!",
|
||||
"actorNoDamage": "%1 has not taken any damage!",
|
||||
"actorNoHit": "Miss! %1 evaded the attack!",
|
||||
"actorRecovery": "%1 Restored %2 %3!",
|
||||
"alwaysDash": "Constant Dash",
|
||||
"bgmVolume": "BGM volume",
|
||||
"bgsVolume": "BGS volume",
|
||||
"buffAdd": "%1 has strengthened %2!",
|
||||
"buffRemove": "%1's %2 status has returned to normal!",
|
||||
"commandRemember": "Command Memory",
|
||||
"counterAttack": "Counterattack by %1!",
|
||||
"criticalToActor": "Devastating blow!",
|
||||
"criticalToEnemy": "Critical hit!",
|
||||
"debuffAdd": "%2 of %1 has been weakened!",
|
||||
"defeat": "%1 has been defeated",
|
||||
"emerge": "%1 has appeared!",
|
||||
"enemyDamage": "%1 takes %2 damage!",
|
||||
"enemyDrain": "%1 was drained of %2 %3!",
|
||||
"enemyGain": "%1 gained %2 %3!",
|
||||
"enemyLoss": "%1 lost points, %2 %3!",
|
||||
"enemyNoDamage": "%1 has not taken any damage!",
|
||||
"enemyNoHit": "Miss! %1 evaded the attack!",
|
||||
"enemyRecovery": "%1 Restored %2 %3!",
|
||||
"escapeFailure": "I've been surrounded!",
|
||||
"escapeStart": "%1 has escaped!",
|
||||
"evasion": "%1 evades the attack!",
|
||||
"expNext": "To Next %1",
|
||||
"expTotal": "Current experience points: %1",
|
||||
"file": "File",
|
||||
"levelUp": "Level up! %1 has reached %2 %3!",
|
||||
"loadMessage": "Road Message",
|
||||
"magicEvasion": "%1 evaded the magic!",
|
||||
"magicReflection": "%1 reflected the magic!",
|
||||
"meVolume": "ME Volume",
|
||||
"obtainExp": "%1 %2 Experience Points Gained!",
|
||||
"obtainGold": "Obtained!",
|
||||
"obtainItem": "Acquired %1!",
|
||||
"obtainSkill": "Learned %1!",
|
||||
"partyName": "%1 and others",
|
||||
"possession": "Number of possessions",
|
||||
"preemptive": "First strike!",
|
||||
"saveMessage": "Save Message",
|
||||
"seVolume": "SE Volume",
|
||||
"substitute": "%1 Take my place, %2!",
|
||||
"surprise": "%1 I was caught off guard!",
|
||||
"useItem": "Used %2!",
|
||||
"victory": "%1 has won!"
|
||||
}
|
||||
},
|
||||
"testBattlers": [
|
||||
{
|
||||
"actorId": 2,
|
||||
"equips": [
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
0
|
||||
],
|
||||
"level": 3
|
||||
},
|
||||
{
|
||||
"actorId": 0,
|
||||
"equips": [
|
||||
7,
|
||||
0,
|
||||
0,
|
||||
9,
|
||||
0
|
||||
],
|
||||
"level": 99
|
||||
},
|
||||
{
|
||||
"actorId": 0,
|
||||
"equips": [
|
||||
8,
|
||||
7,
|
||||
0,
|
||||
8,
|
||||
10
|
||||
],
|
||||
"level": 99
|
||||
},
|
||||
{
|
||||
"actorId": 0,
|
||||
"equips": [
|
||||
11,
|
||||
0,
|
||||
0,
|
||||
9,
|
||||
0
|
||||
],
|
||||
"level": 99
|
||||
}
|
||||
],
|
||||
"testTroopId": 8,
|
||||
"title1Name": "サムネ",
|
||||
"title2Name": "",
|
||||
"titleBgm": {
|
||||
"name": "05Go forward",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 55
|
||||
},
|
||||
"variables": [
|
||||
"",
|
||||
"HP",
|
||||
"MAX HP",
|
||||
"Gacha Gacha",
|
||||
"Searching for facilities",
|
||||
"First Offense",
|
||||
"Title \"Subjugation of Henchmen",
|
||||
"Investigating the police box",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"versionId": 17792291,
|
||||
"victoryMe": {
|
||||
"name": "",
|
||||
"pan": 0,
|
||||
"pitch": 100,
|
||||
"volume": 40
|
||||
},
|
||||
"weaponTypes": [
|
||||
"",
|
||||
"ダガー",
|
||||
"ソード",
|
||||
"フレイル",
|
||||
"斧",
|
||||
"鞭",
|
||||
"杖",
|
||||
"弓",
|
||||
"クロスボウ",
|
||||
"銃",
|
||||
"爪",
|
||||
"グローブ",
|
||||
"槍"
|
||||
],
|
||||
"windowTone": [
|
||||
-204,
|
||||
-204,
|
||||
-221,
|
||||
0
|
||||
],
|
||||
"hasEncryptedImages": true,
|
||||
"hasEncryptedAudio": true,
|
||||
"encryptionKey": "0b45a565f02b0b7afb14187fced215b8"
|
||||
}
|
||||
73962
www/data/Tilesets.json
Normal file
73962
www/data/Tilesets.json
Normal file
File diff suppressed because it is too large
Load diff
2041
www/data/Troops.json
Normal file
2041
www/data/Troops.json
Normal file
File diff suppressed because it is too large
Load diff
556
www/data/Weapons.json
Normal file
556
www/data/Weapons.json
Normal file
|
|
@ -0,0 +1,556 @@
|
|||
[
|
||||
null,
|
||||
{
|
||||
"id": 1,
|
||||
"animationId": 1,
|
||||
"description": "The wooden stick prepared from the laboratory. It's reasonably sturdy,\nbut not very strong.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 110,
|
||||
"name": "Wooden Stick",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 6
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"animationId": 2,
|
||||
"description": "A bat made of iron. It seems like it could destroy things like wooden\nboards.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 110,
|
||||
"name": "Bat",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 6
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"animationId": 1,
|
||||
"description": "It's just made of wood, so it only has attack power.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 101,
|
||||
"name": "Wooden Staff",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 6
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"animationId": 11,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 102,
|
||||
"name": "Wooden Bow",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 7
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"animationId": 6,
|
||||
"description": "Made by processing glass.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 97,
|
||||
"name": "Glass Sword",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 2
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"animationId": 111,
|
||||
"description": "The policewoman had a pistol in her possession. While equipped, she\ncan use a special skill.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 43,
|
||||
"dataId": 13,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 23,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 44,
|
||||
"dataId": 26,
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"code": 43,
|
||||
"dataId": 30,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 104,
|
||||
"name": "Handgun",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
18,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 9
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"animationId": 6,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 107,
|
||||
"name": "Iron Spear",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 500,
|
||||
"wtypeId": 12
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"animationId": 6,
|
||||
"description": "Lilliana the Female Knight's Weapon Strong! As expected!",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 34,
|
||||
"dataId": 0,
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"iconIndex": 97,
|
||||
"name": "Freeza Sword",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
45,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 50000,
|
||||
"wtypeId": 2
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"animationId": 6,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 97,
|
||||
"name": "Black Sword",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
30,
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 2
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"animationId": 6,
|
||||
"description": "Aitana's initial equipment Shiny shiny",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 107,
|
||||
"name": "New Spear",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
20,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 5,
|
||||
"wtypeId": 12
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"animationId": 6,
|
||||
"description": "Daniela's weapon is a large axe made of high-quality material that is\nboth lightweight and resistant to damage.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 99,
|
||||
"name": "Gun Axe",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
30,
|
||||
5,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 4
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"animationId": 1,
|
||||
"description": "A spear that increases speed a little bit.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 107,
|
||||
"name": "Slash Spear",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
30,
|
||||
0,
|
||||
5,
|
||||
0,
|
||||
10,
|
||||
0
|
||||
],
|
||||
"price": 150,
|
||||
"wtypeId": 12
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"animationId": 1,
|
||||
"description": "It's not a spear, but it's still a long object so you can hit with it.\nFor those of you who want to use magic.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 107,
|
||||
"name": "Steel Staff",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
25,
|
||||
0,
|
||||
15,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 150,
|
||||
"wtypeId": 12
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"animationId": 7,
|
||||
"description": "Shining spear with silver foil Magic power also increased",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 107,
|
||||
"name": "Platinum Spear",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
50,
|
||||
0,
|
||||
50,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 3000,
|
||||
"wtypeId": 12
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"animationId": 6,
|
||||
"description": "It's not that going out is a good thing, but I'm weak because I'm\nempty inside.",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 97,
|
||||
"name": "Big Sword",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
5,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 2
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"animationId": 0,
|
||||
"description": "",
|
||||
"etypeId": 1,
|
||||
"traits": [
|
||||
{
|
||||
"code": 31,
|
||||
"dataId": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"code": 22,
|
||||
"dataId": 0,
|
||||
"value": 0
|
||||
}
|
||||
],
|
||||
"iconIndex": 0,
|
||||
"name": "",
|
||||
"note": "",
|
||||
"params": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"price": 0,
|
||||
"wtypeId": 0
|
||||
}
|
||||
]
|
||||
53
www/js/libs/fpsmeter.js
Normal file
53
www/js/libs/fpsmeter.js
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/*! FPSMeter 0.3.1 - 9th May 2013 | https://github.com/Darsain/fpsmeter */
|
||||
(function (m, j) {
|
||||
function s(a, e) { for (var g in e) try { a.style[g] = e[g] } catch (j) { } return a } function H(a) { return null == a ? String(a) : "object" === typeof a || "function" === typeof a ? Object.prototype.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase() || "object" : typeof a } function R(a, e) { if ("array" !== H(e)) return -1; if (e.indexOf) return e.indexOf(a); for (var g = 0, j = e.length; g < j; g++)if (e[g] === a) return g; return -1 } function I() {
|
||||
var a = arguments, e; for (e in a[1]) if (a[1].hasOwnProperty(e)) switch (H(a[1][e])) {
|
||||
case "object": a[0][e] =
|
||||
I({}, a[0][e], a[1][e]); break; case "array": a[0][e] = a[1][e].slice(0); break; default: a[0][e] = a[1][e]
|
||||
}return 2 < a.length ? I.apply(null, [a[0]].concat(Array.prototype.slice.call(a, 2))) : a[0]
|
||||
} function N(a) { a = Math.round(255 * a).toString(16); return 1 === a.length ? "0" + a : a } function S(a, e, g, j) { if (a.addEventListener) a[j ? "removeEventListener" : "addEventListener"](e, g, !1); else if (a.attachEvent) a[j ? "detachEvent" : "attachEvent"]("on" + e, g) } function D(a, e) {
|
||||
function g(a, b, d, c) { return y[0 | a][Math.round(Math.min((b - d) / (c - d) * J, J))] }
|
||||
function r() { f.legend.fps !== q && (f.legend.fps = q, f.legend[T] = q ? "FPS" : "ms"); K = q ? b.fps : b.duration; f.count[T] = 999 < K ? "999+" : K.toFixed(99 < K ? 0 : d.decimals) } function m() {
|
||||
z = A(); L < z - d.threshold && (b.fps -= b.fps / Math.max(1, 60 * d.smoothing / d.interval), b.duration = 1E3 / b.fps); for (c = d.history; c--;)E[c] = 0 === c ? b.fps : E[c - 1], F[c] = 0 === c ? b.duration : F[c - 1]; r(); if (d.heat) {
|
||||
if (w.length) for (c = w.length; c--;)w[c].el.style[h[w[c].name].heatOn] = q ? g(h[w[c].name].heatmap, b.fps, 0, d.maxFps) : g(h[w[c].name].heatmap, b.duration, d.threshold,
|
||||
0); if (f.graph && h.column.heatOn) for (c = u.length; c--;)u[c].style[h.column.heatOn] = q ? g(h.column.heatmap, E[c], 0, d.maxFps) : g(h.column.heatmap, F[c], d.threshold, 0)
|
||||
} if (f.graph) for (p = 0; p < d.history; p++)u[p].style.height = (q ? E[p] ? Math.round(O / d.maxFps * Math.min(E[p], d.maxFps)) : 0 : F[p] ? Math.round(O / d.threshold * Math.min(F[p], d.threshold)) : 0) + "px"
|
||||
} function k() { 20 > d.interval ? (x = M(k), m()) : (x = setTimeout(k, d.interval), P = M(m)) } function G(a) {
|
||||
a = a || window.event; a.preventDefault ? (a.preventDefault(), a.stopPropagation()) : (a.returnValue =
|
||||
!1, a.cancelBubble = !0); b.toggle()
|
||||
} function U() { d.toggleOn && S(f.container, d.toggleOn, G, 1); a.removeChild(f.container) } function V() {
|
||||
f.container && U(); h = D.theme[d.theme]; y = h.compiledHeatmaps || []; if (!y.length && h.heatmaps.length) {
|
||||
for (p = 0; p < h.heatmaps.length; p++) {
|
||||
y[p] = []; for (c = 0; c <= J; c++) {
|
||||
var b = y[p], e = c, g; g = 0.33 / J * c; var j = h.heatmaps[p].saturation, m = h.heatmaps[p].lightness, n = void 0, k = void 0, l = void 0, t = l = void 0, v = n = k = void 0, v = void 0, l = 0.5 >= m ? m * (1 + j) : m + j - m * j; 0 === l ? g = "#000" : (t = 2 * m - l, k = (l - t) / l, g *= 6, n = Math.floor(g),
|
||||
v = g - n, v *= l * k, 0 === n || 6 === n ? (n = l, k = t + v, l = t) : 1 === n ? (n = l - v, k = l, l = t) : 2 === n ? (n = t, k = l, l = t + v) : 3 === n ? (n = t, k = l - v) : 4 === n ? (n = t + v, k = t) : (n = l, k = t, l -= v), g = "#" + N(n) + N(k) + N(l)); b[e] = g
|
||||
}
|
||||
} h.compiledHeatmaps = y
|
||||
} f.container = s(document.createElement("div"), h.container); f.count = f.container.appendChild(s(document.createElement("div"), h.count)); f.legend = f.container.appendChild(s(document.createElement("div"), h.legend)); f.graph = d.graph ? f.container.appendChild(s(document.createElement("div"), h.graph)) : 0; w.length = 0; for (var q in f) f[q] &&
|
||||
h[q].heatOn && w.push({ name: q, el: f[q] }); u.length = 0; if (f.graph) { f.graph.style.width = d.history * h.column.width + (d.history - 1) * h.column.spacing + "px"; for (c = 0; c < d.history; c++)u[c] = f.graph.appendChild(s(document.createElement("div"), h.column)), u[c].style.position = "absolute", u[c].style.bottom = 0, u[c].style.right = c * h.column.width + c * h.column.spacing + "px", u[c].style.width = h.column.width + "px", u[c].style.height = "0px" } s(f.container, d); r(); a.appendChild(f.container); f.graph && (O = f.graph.clientHeight); d.toggleOn && ("click" ===
|
||||
d.toggleOn && (f.container.style.cursor = "pointer"), S(f.container, d.toggleOn, G))
|
||||
} "object" === H(a) && a.nodeType === j && (e = a, a = document.body); a || (a = document.body); var b = this, d = I({}, D.defaults, e || {}), f = {}, u = [], h, y, J = 100, w = [], W = 0, B = d.threshold, Q = 0, L = A() - B, z, E = [], F = [], x, P, q = "fps" === d.show, O, K, c, p; b.options = d; b.fps = 0; b.duration = 0; b.isPaused = 0; b.tickStart = function () { Q = A() }; b.tick = function () { z = A(); W = z - L; B += (W - B) / d.smoothing; b.fps = 1E3 / B; b.duration = Q < L ? B : z - Q; L = z }; b.pause = function () {
|
||||
x && (b.isPaused = 1, clearTimeout(x),
|
||||
C(x), C(P), x = P = 0); return b
|
||||
}; b.resume = function () { x || (b.isPaused = 0, k()); return b }; b.set = function (a, c) { d[a] = c; q = "fps" === d.show; -1 !== R(a, X) && V(); -1 !== R(a, Y) && s(f.container, d); return b }; b.showDuration = function () { b.set("show", "ms"); return b }; b.showFps = function () { b.set("show", "fps"); return b }; b.toggle = function () { b.set("show", q ? "ms" : "fps"); return b }; b.hide = function () { b.pause(); f.container.style.display = "none"; return b }; b.show = function () { b.resume(); f.container.style.display = "block"; return b }; b.destroy = function () {
|
||||
b.pause();
|
||||
U(); b.tick = b.tickStart = function () { }
|
||||
}; V(); k()
|
||||
} var A, r = m.performance; A = r && (r.now || r.webkitNow) ? r[r.now ? "now" : "webkitNow"].bind(r) : function () { return +new Date }; for (var C = m.cancelAnimationFrame || m.cancelRequestAnimationFrame, M = m.requestAnimationFrame, r = ["moz", "webkit", "o"], G = 0, k = 0, Z = r.length; k < Z && !C; ++k)M = (C = m[r[k] + "CancelAnimationFrame"] || m[r[k] + "CancelRequestAnimationFrame"]) && m[r[k] + "RequestAnimationFrame"]; C || (M = function (a) {
|
||||
var e = A(), g = Math.max(0, 16 - (e - G)); G = e + g; return m.setTimeout(function () {
|
||||
a(e +
|
||||
g)
|
||||
}, g)
|
||||
}, C = function (a) { clearTimeout(a) }); var T = "string" === H(document.createElement("div").textContent) ? "textContent" : "innerText"; D.extend = I; window.FPSMeter = D; D.defaults = { interval: 100, smoothing: 10, show: "fps", toggleOn: "click", decimals: 1, maxFps: 60, threshold: 100, position: "absolute", zIndex: 10, left: "5px", top: "5px", right: "auto", bottom: "auto", margin: "0 0 0 0", theme: "dark", heat: 0, graph: 0, history: 20 }; var X = ["toggleOn", "theme", "heat", "graph", "history"], Y = "position zIndex left top right bottom margin".split(" ")
|
||||
})(window); (function (m, j) {
|
||||
j.theme = {}; var s = j.theme.base = {
|
||||
heatmaps: [], container: { heatOn: null, heatmap: null, padding: "5px", minWidth: "95px", height: "30px", lineHeight: "30px", textAlign: "right", textShadow: "none" }, count: { heatOn: null, heatmap: null, position: "absolute", top: 0, right: 0, padding: "5px 10px", height: "30px", fontSize: "24px", fontFamily: "Consolas, Andale Mono, monospace", zIndex: 2 }, legend: {
|
||||
heatOn: null, heatmap: null, position: "absolute", top: 0, left: 0, padding: "5px 10px", height: "30px", fontSize: "12px", lineHeight: "32px", fontFamily: "sans-serif",
|
||||
textAlign: "left", zIndex: 2
|
||||
}, graph: { heatOn: null, heatmap: null, position: "relative", boxSizing: "padding-box", MozBoxSizing: "padding-box", height: "100%", zIndex: 1 }, column: { width: 4, spacing: 1, heatOn: null, heatmap: null }
|
||||
}; j.theme.dark = j.extend({}, s, { heatmaps: [{ saturation: 0.8, lightness: 0.8 }], container: { background: "#222", color: "#fff", border: "1px solid #1a1a1a", textShadow: "1px 1px 0 #222" }, count: { heatOn: "color" }, column: { background: "#3f3f3f" } }); j.theme.light = j.extend({}, s, {
|
||||
heatmaps: [{ saturation: 0.5, lightness: 0.5 }],
|
||||
container: { color: "#666", background: "#fff", textShadow: "1px 1px 0 rgba(255,255,255,.5), -1px -1px 0 rgba(255,255,255,.5)", boxShadow: "0 0 0 1px rgba(0,0,0,.1)" }, count: { heatOn: "color" }, column: { background: "#eaeaea" }
|
||||
}); j.theme.colorful = j.extend({}, s, { heatmaps: [{ saturation: 0.5, lightness: 0.6 }], container: { heatOn: "backgroundColor", background: "#888", color: "#fff", textShadow: "1px 1px 0 rgba(0,0,0,.2)", boxShadow: "0 0 0 1px rgba(0,0,0,.1)" }, column: { background: "#777", backgroundColor: "rgba(0,0,0,.2)" } }); j.theme.transparent =
|
||||
j.extend({}, s, { heatmaps: [{ saturation: 0.8, lightness: 0.5 }], container: { padding: 0, color: "#fff", textShadow: "1px 1px 0 rgba(0,0,0,.5)" }, count: { padding: "0 5px", height: "40px", lineHeight: "40px" }, legend: { padding: "0 5px", height: "40px", lineHeight: "42px" }, graph: { height: "40px" }, column: { width: 5, background: "#999", heatOn: "backgroundColor", opacity: 0.5 } })
|
||||
})(window, FPSMeter);
|
||||
5
www/js/libs/iphone-inline-video.browser.js
Normal file
5
www/js/libs/iphone-inline-video.browser.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
/*! npm.im/iphone-inline-video */
|
||||
var makeVideoPlayableInline = function () {
|
||||
"use strict";/*! npm.im/intervalometer */
|
||||
function e(e, n, r, i) { function t(r) { d = n(t, i), e(r - (a || r)), a = r } var d, a; return { start: function () { d || t(0) }, stop: function () { r(d), d = null, a = 0 } } } function n(n) { return e(n, requestAnimationFrame, cancelAnimationFrame) } function r(e, n, r, i) { function t(n) { Boolean(e[r]) === Boolean(i) && n.stopImmediatePropagation(), delete e[r] } return e.addEventListener(n, t, !1), t } function i(e, n, r, i) { function t() { return r[n] } function d(e) { r[n] = e } i && d(e[n]), Object.defineProperty(e, n, { get: t, set: d }) } function t(e, n, r) { r.addEventListener(n, function () { return e.dispatchEvent(new Event(n)) }) } function d(e, n) { Promise.resolve().then(function () { e.dispatchEvent(new Event(n)) }) } function a(e) { var n = new Audio; return t(e, "play", n), t(e, "playing", n), t(e, "pause", n), n.crossOrigin = e.crossOrigin, n.src = e.src || e.currentSrc || "data:", n } function o(e, n, r) { (m || 0) + 200 < Date.now() && (e[g] = !0, m = Date.now()), r || (e.currentTime = n), A[++k % 3] = 100 * n | 0 } function u(e) { return e.driver.currentTime >= e.video.duration } function s(e) { var n = this; n.video.readyState >= n.video.HAVE_FUTURE_DATA ? (n.hasAudio || (n.driver.currentTime = n.video.currentTime + e * n.video.playbackRate / 1e3, n.video.loop && u(n) && (n.driver.currentTime = 0)), o(n.video, n.driver.currentTime)) : n.video.networkState !== n.video.NETWORK_IDLE || n.video.buffered.length || n.video.load(), n.video.ended && (delete n.video[g], n.video.pause(!0)) } function c() { var e = this, n = e[b]; return e.webkitDisplayingFullscreen ? void e[E]() : ("data:" !== n.driver.src && n.driver.src !== e.src && (o(e, 0, !0), n.driver.src = e.src), void (e.paused && (n.paused = !1, e.buffered.length || e.load(), n.driver.play(), n.updater.start(), n.hasAudio || (d(e, "play"), n.video.readyState >= n.video.HAVE_ENOUGH_DATA && d(e, "playing"))))) } function v(e) { var n = this, r = n[b]; r.driver.pause(), r.updater.stop(), n.webkitDisplayingFullscreen && n[T](), r.paused && !e || (r.paused = !0, r.hasAudio || d(n, "pause"), n.ended && (n[g] = !0, d(n, "ended"))) } function p(e, r) { var i = e[b] = {}; i.paused = !0, i.hasAudio = r, i.video = e, i.updater = n(s.bind(i)), r ? i.driver = a(e) : (e.addEventListener("canplay", function () { e.paused || d(e, "playing") }), i.driver = { src: e.src || e.currentSrc || "data:", muted: !0, paused: !0, pause: function () { i.driver.paused = !0 }, play: function () { i.driver.paused = !1, u(i) && o(e, 0) }, get ended() { return u(i) } }), e.addEventListener("emptied", function () { var n = !i.driver.src || "data:" === i.driver.src; i.driver.src && i.driver.src !== e.src && (o(e, 0, !0), i.driver.src = e.src, n ? i.driver.play() : i.updater.stop()) }, !1), e.addEventListener("webkitbeginfullscreen", function () { e.paused ? r && !i.driver.buffered.length && i.driver.load() : (e.pause(), e[E]()) }), r && (e.addEventListener("webkitendfullscreen", function () { i.driver.currentTime = e.currentTime }), e.addEventListener("seeking", function () { A.indexOf(100 * e.currentTime | 0) < 0 && (i.driver.currentTime = e.currentTime) })) } function l(e) { var n = e[b]; e[E] = e.play, e[T] = e.pause, e.play = c, e.pause = v, i(e, "paused", n.driver), i(e, "muted", n.driver, !0), i(e, "playbackRate", n.driver, !0), i(e, "ended", n.driver), i(e, "loop", n.driver, !0), r(e, "seeking"), r(e, "seeked"), r(e, "timeupdate", g, !1), r(e, "ended", g, !1) } function f(e, n, r) { void 0 === n && (n = !0), void 0 === r && (r = !0), r && !h || e[b] || (p(e, n), l(e), e.classList.add("IIV"), !n && e.autoplay && e.play(), /iPhone|iPod|iPad/.test(navigator.platform) || console.warn("iphone-inline-video is not guaranteed to work in emulated environments")) } var m, y = "undefined" == typeof Symbol ? function (e) { return "@" + (e || "@") + Math.random() } : Symbol, h = "object-fit" in document.head.style && /iPhone|iPod/i.test(navigator.userAgent) && !matchMedia("(-webkit-video-playable-inline)").matches, b = y(), g = y(), E = y("nativeplay"), T = y("nativepause"), A = [], k = 0; return f.isWhitelisted = h, f
|
||||
}();
|
||||
1
www/js/libs/lz-string.js
Normal file
1
www/js/libs/lz-string.js
Normal file
File diff suppressed because one or more lines are too long
428
www/js/libs/pixi-picture.js
Normal file
428
www/js/libs/pixi-picture.js
Normal file
|
|
@ -0,0 +1,428 @@
|
|||
var __extends = (this && this.__extends) || function (d, b) {
|
||||
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var shaderLib = [
|
||||
{
|
||||
vertUniforms: "",
|
||||
vertCode: "vTextureCoord = aTextureCoord;",
|
||||
fragUniforms: "uniform vec4 uTextureClamp;",
|
||||
fragCode: "vec2 textureCoord = clamp(vTextureCoord, uTextureClamp.xy, uTextureClamp.zw);"
|
||||
},
|
||||
{
|
||||
vertUniforms: "uniform mat3 uTransform;",
|
||||
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
|
||||
fragUniforms: "",
|
||||
fragCode: "vec2 textureCoord = vTextureCoord;"
|
||||
},
|
||||
{
|
||||
vertUniforms: "uniform mat3 uTransform;",
|
||||
vertCode: "vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;",
|
||||
fragUniforms: "uniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;",
|
||||
fragCode: "vec2 textureCoord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;" +
|
||||
"\ntextureCoord = (uMapCoord * vec3(textureCoord, 1.0)).xy;" +
|
||||
"\ntextureCoord = clamp(textureCoord, uClampFrame.xy, uClampFrame.zw);"
|
||||
}
|
||||
];
|
||||
var PictureShader = (function (_super) {
|
||||
__extends(PictureShader, _super);
|
||||
function PictureShader(gl, vert, frag, tilingMode) {
|
||||
var lib = shaderLib[tilingMode];
|
||||
_super.call(this, gl, vert.replace(/%SPRITE_UNIFORMS%/gi, lib.vertUniforms)
|
||||
.replace(/%SPRITE_CODE%/gi, lib.vertCode), frag.replace(/%SPRITE_UNIFORMS%/gi, lib.fragUniforms)
|
||||
.replace(/%SPRITE_CODE%/gi, lib.fragCode));
|
||||
this.bind();
|
||||
this.tilingMode = tilingMode;
|
||||
this.tempQuad = new PIXI.Quad(gl);
|
||||
this.tempQuad.initVao(this);
|
||||
this.uniforms.uColor = new Float32Array([1, 1, 1, 1]);
|
||||
this.uniforms.uSampler = [0, 1];
|
||||
}
|
||||
PictureShader.blendVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\nuniform mat3 mapMatrix;\n\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n vMapCoord = (mapMatrix * vec3(aVertexPosition, 1.0)).xy;\n}\n";
|
||||
return PictureShader;
|
||||
}(PIXI.Shader));
|
||||
extras.PictureShader = PictureShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var overlayFrag = "\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cs2 = Cs * 2.0 - 1.0;\n vec3 screen = Cb + Cs2 - Cb * Cs2;\n vec3 B;\n if (Cb.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cb.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cb.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
|
||||
var HardLightShader = (function (_super) {
|
||||
__extends(HardLightShader, _super);
|
||||
function HardLightShader(gl, tilingMode) {
|
||||
_super.call(this, gl, extras.PictureShader.blendVert, overlayFrag, tilingMode);
|
||||
}
|
||||
return HardLightShader;
|
||||
}(extras.PictureShader));
|
||||
extras.HardLightShader = HardLightShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
function mapFilterBlendModesToPixi(gl, array) {
|
||||
if (array === void 0) { array = []; }
|
||||
array[PIXI.BLEND_MODES.OVERLAY] = [new extras.OverlayShader(gl, 0), new extras.OverlayShader(gl, 1), new extras.OverlayShader(gl, 2)];
|
||||
array[PIXI.BLEND_MODES.HARD_LIGHT] = [new extras.HardLightShader(gl, 0), new extras.HardLightShader(gl, 1), new extras.HardLightShader(gl, 2)];
|
||||
return array;
|
||||
}
|
||||
extras.mapFilterBlendModesToPixi = mapFilterBlendModesToPixi;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var normalFrag = "\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n\n vec4 sample = texture2D(uSampler[0], textureCoord);\n gl_FragColor = sample * uColor;\n}\n";
|
||||
var normalVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n %SPRITE_CODE%\n}\n";
|
||||
var NormalShader = (function (_super) {
|
||||
__extends(NormalShader, _super);
|
||||
function NormalShader(gl, tilingMode) {
|
||||
_super.call(this, gl, normalVert, normalFrag, tilingMode);
|
||||
}
|
||||
return NormalShader;
|
||||
}(extras.PictureShader));
|
||||
extras.NormalShader = NormalShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var overlayFrag = "\nvarying vec2 vTextureCoord;\nvarying vec2 vMapCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler[2];\nuniform vec4 uColor;\n%SPRITE_UNIFORMS%\n\nvoid main(void)\n{\n %SPRITE_CODE%\n vec4 source = texture2D(uSampler[0], textureCoord) * uColor;\n vec4 target = texture2D(uSampler[1], vMapCoord);\n\n //reverse hardlight\n if (source.a == 0.0) {\n gl_FragColor = vec4(0, 0, 0, 0);\n return;\n }\n //yeah, premultiplied\n vec3 Cb = source.rgb/source.a, Cs;\n if (target.a > 0.0) {\n Cs = target.rgb / target.a;\n }\n vec3 multiply = Cb * Cs * 2.0;\n vec3 Cb2 = Cb * 2.0 - 1.0;\n vec3 screen = Cb2 + Cs - Cb2 * Cs;\n vec3 B;\n if (Cs.r <= 0.5) {\n B.r = multiply.r;\n } else {\n B.r = screen.r;\n }\n if (Cs.g <= 0.5) {\n B.g = multiply.g;\n } else {\n B.g = screen.g;\n }\n if (Cs.b <= 0.5) {\n B.b = multiply.b;\n } else {\n B.b = screen.b;\n }\n vec4 res;\n res.xyz = (1.0 - source.a) * Cs + source.a * B;\n res.a = source.a + target.a * (1.0-source.a);\n gl_FragColor = vec4(res.xyz * res.a, res.a);\n}\n";
|
||||
var OverlayShader = (function (_super) {
|
||||
__extends(OverlayShader, _super);
|
||||
function OverlayShader(gl, tilingMode) {
|
||||
_super.call(this, gl, extras.PictureShader.blendVert, overlayFrag, tilingMode);
|
||||
}
|
||||
return OverlayShader;
|
||||
}(extras.PictureShader));
|
||||
extras.OverlayShader = OverlayShader;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
function nextPow2(v) {
|
||||
v += (v === 0) ? 1 : 0;
|
||||
--v;
|
||||
v |= v >>> 1;
|
||||
v |= v >>> 2;
|
||||
v |= v >>> 4;
|
||||
v |= v >>> 8;
|
||||
v |= v >>> 16;
|
||||
return v + 1;
|
||||
}
|
||||
var PictureRenderer = (function (_super) {
|
||||
__extends(PictureRenderer, _super);
|
||||
function PictureRenderer(renderer) {
|
||||
_super.call(this, renderer);
|
||||
}
|
||||
PictureRenderer.prototype.onContextChange = function () {
|
||||
var gl = this.renderer.gl;
|
||||
this.drawModes = extras.mapFilterBlendModesToPixi(gl);
|
||||
this.normalShader = [new extras.NormalShader(gl, 0), new extras.NormalShader(gl, 1), new extras.NormalShader(gl, 2)];
|
||||
this._tempClamp = new Float32Array(4);
|
||||
this._tempColor = new Float32Array(4);
|
||||
this._tempRect = new PIXI.Rectangle();
|
||||
this._tempRect2 = new PIXI.Rectangle();
|
||||
this._tempRect3 = new PIXI.Rectangle();
|
||||
this._tempMatrix = new PIXI.Matrix();
|
||||
this._tempMatrix2 = new PIXI.Matrix();
|
||||
this._bigBuf = new Uint8Array(1 << 20);
|
||||
this._renderTexture = new PIXI.BaseRenderTexture(1024, 1024);
|
||||
};
|
||||
PictureRenderer.prototype.start = function () {
|
||||
};
|
||||
PictureRenderer.prototype.flush = function () {
|
||||
};
|
||||
PictureRenderer.prototype._getRenderTexture = function (minWidth, minHeight) {
|
||||
if (this._renderTexture.width < minWidth ||
|
||||
this._renderTexture.height < minHeight) {
|
||||
minHeight = nextPow2(minWidth);
|
||||
minHeight = nextPow2(minHeight);
|
||||
this._renderTexture.resize(minWidth, minHeight);
|
||||
}
|
||||
return this._renderTexture;
|
||||
};
|
||||
PictureRenderer.prototype._getBuf = function (size) {
|
||||
var buf = this._bigBuf;
|
||||
if (buf.length < size) {
|
||||
size = nextPow2(size);
|
||||
buf = new Uint8Array(size);
|
||||
this._bigBuf = buf;
|
||||
}
|
||||
return buf;
|
||||
};
|
||||
PictureRenderer.prototype.render = function (sprite) {
|
||||
if (!sprite.texture.valid) {
|
||||
return;
|
||||
}
|
||||
var tilingMode = 0;
|
||||
if (sprite.tileTransform) {
|
||||
tilingMode = this._isSimpleSprite(sprite) ? 1 : 2;
|
||||
}
|
||||
var blendShader = this.drawModes[sprite.blendMode];
|
||||
if (blendShader) {
|
||||
this._renderBlend(sprite, blendShader[tilingMode]);
|
||||
}
|
||||
else {
|
||||
this._renderNormal(sprite, this.normalShader[tilingMode]);
|
||||
}
|
||||
};
|
||||
PictureRenderer.prototype._renderNormal = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
renderer.bindShader(shader);
|
||||
renderer.state.setBlendMode(sprite.blendMode);
|
||||
this._renderInner(sprite, shader);
|
||||
};
|
||||
PictureRenderer.prototype._renderBlend = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
var spriteBounds = sprite.getBounds();
|
||||
var renderTarget = renderer._activeRenderTarget;
|
||||
var matrix = renderTarget.projectionMatrix;
|
||||
var flipX = matrix.a < 0;
|
||||
var flipY = matrix.d < 0;
|
||||
var resolution = renderTarget.resolution;
|
||||
var screen = this._tempRect;
|
||||
var fr = renderTarget.sourceFrame || renderTarget.destinationFrame;
|
||||
screen.x = 0;
|
||||
screen.y = 0;
|
||||
screen.width = fr.width;
|
||||
screen.height = fr.height;
|
||||
var bounds = this._tempRect2;
|
||||
var fbw = fr.width * resolution, fbh = fr.height * resolution;
|
||||
bounds.x = (spriteBounds.x + matrix.tx / matrix.a) * resolution + fbw / 2;
|
||||
bounds.y = (spriteBounds.y + matrix.ty / matrix.d) * resolution + fbh / 2;
|
||||
bounds.width = spriteBounds.width * resolution;
|
||||
bounds.height = spriteBounds.height * resolution;
|
||||
if (flipX) {
|
||||
bounds.y = fbw - bounds.width - bounds.x;
|
||||
}
|
||||
if (flipY) {
|
||||
bounds.y = fbh - bounds.height - bounds.y;
|
||||
}
|
||||
var screenBounds = this._tempRect3;
|
||||
var x_1 = Math.floor(Math.max(screen.x, bounds.x));
|
||||
var x_2 = Math.ceil(Math.min(screen.x + screen.width, bounds.x + bounds.width));
|
||||
var y_1 = Math.floor(Math.max(screen.y, bounds.y));
|
||||
var y_2 = Math.ceil(Math.min(screen.y + screen.height, bounds.y + bounds.height));
|
||||
var pixelsWidth = x_2 - x_1;
|
||||
var pixelsHeight = y_2 - y_1;
|
||||
if (pixelsWidth <= 0 || pixelsHeight <= 0) {
|
||||
return;
|
||||
}
|
||||
var rt = this._getRenderTexture(pixelsWidth, pixelsHeight);
|
||||
renderer.bindTexture(rt, 1, true);
|
||||
var gl = renderer.gl;
|
||||
if (renderer.renderingToScreen && renderTarget.root) {
|
||||
var buf = this._getBuf(pixelsWidth * pixelsHeight * 4);
|
||||
gl.readPixels(x_1, y_1, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, pixelsWidth, pixelsHeight, gl.RGBA, gl.UNSIGNED_BYTE, this._bigBuf);
|
||||
}
|
||||
else {
|
||||
gl.copyTexSubImage2D(gl.TEXTURE_2D, 0, 0, 0, x_1, y_1, pixelsWidth, pixelsHeight);
|
||||
}
|
||||
renderer.bindShader(shader);
|
||||
renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
|
||||
if (shader.uniforms.mapMatrix) {
|
||||
var mapMatrix = this._tempMatrix;
|
||||
mapMatrix.a = bounds.width / rt.width / spriteBounds.width;
|
||||
if (flipX) {
|
||||
mapMatrix.a = -mapMatrix.a;
|
||||
mapMatrix.tx = (bounds.x - x_1) / rt.width - (spriteBounds.x + spriteBounds.width) * mapMatrix.a;
|
||||
}
|
||||
else {
|
||||
mapMatrix.tx = (bounds.x - x_1) / rt.width - spriteBounds.x * mapMatrix.a;
|
||||
}
|
||||
mapMatrix.d = bounds.height / rt.height / spriteBounds.height;
|
||||
if (flipY) {
|
||||
mapMatrix.d = -mapMatrix.d;
|
||||
mapMatrix.ty = (bounds.y - y_1) / rt.height - (spriteBounds.y + spriteBounds.height) * mapMatrix.d;
|
||||
}
|
||||
else {
|
||||
mapMatrix.ty = (bounds.y - y_1) / rt.height - spriteBounds.y * mapMatrix.d;
|
||||
}
|
||||
shader.uniforms.mapMatrix = mapMatrix.toArray(true);
|
||||
}
|
||||
this._renderInner(sprite, shader);
|
||||
};
|
||||
PictureRenderer.prototype._renderInner = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
if (shader.tilingMode > 0) {
|
||||
this._renderWithShader(sprite, shader.tilingMode === 1, shader);
|
||||
}
|
||||
else {
|
||||
this._renderSprite(sprite, shader);
|
||||
}
|
||||
};
|
||||
PictureRenderer.prototype._renderWithShader = function (ts, isSimple, shader) {
|
||||
var quad = shader.tempQuad;
|
||||
var renderer = this.renderer;
|
||||
renderer.bindVao(quad.vao);
|
||||
var vertices = quad.vertices;
|
||||
var _width = ts._width;
|
||||
var _height = ts._height;
|
||||
var _anchorX = ts._anchor._x;
|
||||
var _anchorY = ts._anchor._y;
|
||||
var w0 = _width * (1 - _anchorX);
|
||||
var w1 = _width * -_anchorX;
|
||||
var h0 = _height * (1 - _anchorY);
|
||||
var h1 = _height * -_anchorY;
|
||||
var wt = ts.transform.worldTransform;
|
||||
var a = wt.a;
|
||||
var b = wt.b;
|
||||
var c = wt.c;
|
||||
var d = wt.d;
|
||||
var tx = wt.tx;
|
||||
var ty = wt.ty;
|
||||
vertices[0] = (a * w1) + (c * h1) + tx;
|
||||
vertices[1] = (d * h1) + (b * w1) + ty;
|
||||
vertices[2] = (a * w0) + (c * h1) + tx;
|
||||
vertices[3] = (d * h1) + (b * w0) + ty;
|
||||
vertices[4] = (a * w0) + (c * h0) + tx;
|
||||
vertices[5] = (d * h0) + (b * w0) + ty;
|
||||
vertices[6] = (a * w1) + (c * h0) + tx;
|
||||
vertices[7] = (d * h0) + (b * w1) + ty;
|
||||
vertices = quad.uvs;
|
||||
vertices[0] = vertices[6] = -ts.anchor.x;
|
||||
vertices[1] = vertices[3] = -ts.anchor.y;
|
||||
vertices[2] = vertices[4] = 1.0 - ts.anchor.x;
|
||||
vertices[5] = vertices[7] = 1.0 - ts.anchor.y;
|
||||
quad.upload();
|
||||
var tex = ts._texture;
|
||||
var lt = ts.tileTransform.localTransform;
|
||||
var uv = ts.uvTransform;
|
||||
var mapCoord = uv.mapCoord;
|
||||
var uClampFrame = uv.uClampFrame;
|
||||
var uClampOffset = uv.uClampOffset;
|
||||
var w = tex.width;
|
||||
var h = tex.height;
|
||||
var W = _width;
|
||||
var H = _height;
|
||||
var tempMat = this._tempMatrix2;
|
||||
tempMat.set(lt.a * w / W, lt.b * w / H, lt.c * h / W, lt.d * h / H, lt.tx / W, lt.ty / H);
|
||||
tempMat.invert();
|
||||
if (isSimple) {
|
||||
tempMat.append(mapCoord);
|
||||
}
|
||||
else {
|
||||
shader.uniforms.uMapCoord = mapCoord.toArray(true);
|
||||
shader.uniforms.uClampFrame = uClampFrame;
|
||||
shader.uniforms.uClampOffset = uClampOffset;
|
||||
}
|
||||
shader.uniforms.uTransform = tempMat.toArray(true);
|
||||
var color = this._tempColor;
|
||||
var alpha = ts.worldAlpha;
|
||||
PIXI.utils.hex2rgb(ts.tint, color);
|
||||
color[0] *= alpha;
|
||||
color[1] *= alpha;
|
||||
color[2] *= alpha;
|
||||
color[3] = alpha;
|
||||
shader.uniforms.uColor = color;
|
||||
renderer.bindTexture(tex, 0, true);
|
||||
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
|
||||
};
|
||||
PictureRenderer.prototype._renderSprite = function (sprite, shader) {
|
||||
var renderer = this.renderer;
|
||||
var quad = shader.tempQuad;
|
||||
renderer.bindVao(quad.vao);
|
||||
var uvs = sprite.texture._uvs;
|
||||
var vertices = quad.vertices;
|
||||
var vd = sprite.vertexData;
|
||||
for (var i = 0; i < 8; i++) {
|
||||
quad.vertices[i] = vd[i];
|
||||
}
|
||||
quad.uvs[0] = uvs.x0;
|
||||
quad.uvs[1] = uvs.y0;
|
||||
quad.uvs[2] = uvs.x1;
|
||||
quad.uvs[3] = uvs.y1;
|
||||
quad.uvs[4] = uvs.x2;
|
||||
quad.uvs[5] = uvs.y2;
|
||||
quad.uvs[6] = uvs.x3;
|
||||
quad.uvs[7] = uvs.y3;
|
||||
quad.upload();
|
||||
var frame = sprite.texture.frame;
|
||||
var base = sprite.texture.baseTexture;
|
||||
var clamp = this._tempClamp;
|
||||
var eps = 0.5 / base.resolution;
|
||||
clamp[0] = (frame.x + eps) / base.width;
|
||||
clamp[1] = (frame.y + eps) / base.height;
|
||||
clamp[2] = (frame.x + frame.width - eps) / base.width;
|
||||
clamp[3] = (frame.y + frame.height - eps) / base.height;
|
||||
shader.uniforms.uTextureClamp = clamp;
|
||||
var color = this._tempColor;
|
||||
PIXI.utils.hex2rgb(sprite.tint, color);
|
||||
var alpha = sprite.worldAlpha;
|
||||
color[0] *= alpha;
|
||||
color[1] *= alpha;
|
||||
color[2] *= alpha;
|
||||
color[3] = alpha;
|
||||
shader.uniforms.uColor = color;
|
||||
renderer.bindTexture(base, 0, true);
|
||||
quad.vao.draw(this.renderer.gl.TRIANGLES, 6, 0);
|
||||
};
|
||||
PictureRenderer.prototype._isSimpleSprite = function (ts) {
|
||||
var renderer = this.renderer;
|
||||
var tex = ts._texture;
|
||||
var baseTex = tex.baseTexture;
|
||||
var isSimple = baseTex.isPowerOfTwo && tex.frame.width === baseTex.width && tex.frame.height === baseTex.height;
|
||||
if (isSimple) {
|
||||
if (!baseTex._glTextures[renderer.CONTEXT_UID]) {
|
||||
if (baseTex.wrapMode === PIXI.WRAP_MODES.CLAMP) {
|
||||
baseTex.wrapMode = PIXI.WRAP_MODES.REPEAT;
|
||||
}
|
||||
}
|
||||
else {
|
||||
isSimple = baseTex.wrapMode !== PIXI.WRAP_MODES.CLAMP;
|
||||
}
|
||||
}
|
||||
return isSimple;
|
||||
};
|
||||
return PictureRenderer;
|
||||
}(PIXI.ObjectRenderer));
|
||||
extras.PictureRenderer = PictureRenderer;
|
||||
PIXI.WebGLRenderer.registerPlugin('picture', PictureRenderer);
|
||||
PIXI.CanvasRenderer.registerPlugin('picture', PIXI.CanvasSpriteRenderer);
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var PictureSprite = (function (_super) {
|
||||
__extends(PictureSprite, _super);
|
||||
function PictureSprite(texture) {
|
||||
_super.call(this, texture);
|
||||
this.pluginName = 'picture';
|
||||
}
|
||||
return PictureSprite;
|
||||
}(PIXI.Sprite));
|
||||
extras.PictureSprite = PictureSprite;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var extras;
|
||||
(function (extras) {
|
||||
var PictureTilingSprite = (function (_super) {
|
||||
__extends(PictureTilingSprite, _super);
|
||||
function PictureTilingSprite(texture) {
|
||||
_super.call(this, texture);
|
||||
this.pluginName = 'picture';
|
||||
}
|
||||
return PictureTilingSprite;
|
||||
}(extras.TilingSprite));
|
||||
extras.PictureTilingSprite = PictureTilingSprite;
|
||||
})(extras = PIXI.extras || (PIXI.extras = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
//# sourceMappingURL=pixi-picture.js.map
|
||||
887
www/js/libs/pixi-tilemap.js
Normal file
887
www/js/libs/pixi-tilemap.js
Normal file
|
|
@ -0,0 +1,887 @@
|
|||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var CanvasTileRenderer = (function () {
|
||||
function CanvasTileRenderer(renderer) {
|
||||
this.tileAnim = [0, 0];
|
||||
this.dontUseTransform = false;
|
||||
this.renderer = renderer;
|
||||
this.tileAnim = [0, 0];
|
||||
}
|
||||
return CanvasTileRenderer;
|
||||
}());
|
||||
tilemap.CanvasTileRenderer = CanvasTileRenderer;
|
||||
PIXI.CanvasRenderer.registerPlugin('tilemap', CanvasTileRenderer);
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var CompositeRectTileLayer = (function (_super) {
|
||||
__extends(CompositeRectTileLayer, _super);
|
||||
function CompositeRectTileLayer(zIndex, bitmaps, useSquare, texPerChild) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.shadowColor = new Float32Array([0.0, 0.0, 0.0, 0.5]);
|
||||
_this.modificationMarker = 0;
|
||||
_this._globalMat = null;
|
||||
_this._tempScale = null;
|
||||
_this.initialize.apply(_this, arguments);
|
||||
return _this;
|
||||
}
|
||||
CompositeRectTileLayer.prototype.updateTransform = function () {
|
||||
_super.prototype.displayObjectUpdateTransform.call(this);
|
||||
};
|
||||
CompositeRectTileLayer.prototype.initialize = function (zIndex, bitmaps, useSquare, texPerChild) {
|
||||
this.z = this.zIndex = zIndex;
|
||||
this.useSquare = useSquare;
|
||||
this.texPerChild = texPerChild || 16;
|
||||
if (bitmaps) {
|
||||
this.setBitmaps(bitmaps);
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.setBitmaps = function (bitmaps) {
|
||||
var texPerChild = this.texPerChild;
|
||||
var len1 = this.children.length;
|
||||
var len2 = Math.ceil(bitmaps.length / texPerChild);
|
||||
var i;
|
||||
for (i = 0; i < len1; i++) {
|
||||
this.children[i].textures = bitmaps.slice(i * texPerChild, (i + 1) * texPerChild);
|
||||
}
|
||||
for (i = len1; i < len2; i++) {
|
||||
this.addChild(new tilemap.RectTileLayer(this.zIndex, bitmaps.slice(i * texPerChild, (i + 1) * texPerChild)));
|
||||
}
|
||||
};
|
||||
CompositeRectTileLayer.prototype.clear = function () {
|
||||
for (var i = 0; i < this.children.length; i++)
|
||||
this.children[i].clear();
|
||||
this.modificationMarker = 0;
|
||||
};
|
||||
CompositeRectTileLayer.prototype.addRect = function (num, u, v, x, y, tileWidth, tileHeight) {
|
||||
if (this.children[num] && this.children[num].textures)
|
||||
this.children[num].addRect(0, u, v, x, y, tileWidth, tileHeight);
|
||||
};
|
||||
CompositeRectTileLayer.prototype.addFrame = function (texture_, x, y, animX, animY) {
|
||||
var texture;
|
||||
var layer = null, ind = 0;
|
||||
var children = this.children;
|
||||
if (typeof texture_ === "number") {
|
||||
var childIndex = texture_ / this.texPerChild >> 0;
|
||||
layer = children[childIndex];
|
||||
if (!layer) {
|
||||
layer = children[0];
|
||||
if (!layer) {
|
||||
return false;
|
||||
}
|
||||
ind = 0;
|
||||
}
|
||||
else {
|
||||
ind = texture_ % this.texPerChild;
|
||||
}
|
||||
texture = layer.textures[ind];
|
||||
}
|
||||
else if (typeof texture_ === "string") {
|
||||
texture = PIXI.Texture.fromImage(texture_);
|
||||
}
|
||||
else {
|
||||
texture = texture_;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
var tex = child.textures;
|
||||
for (var j = 0; j < tex.length; j++) {
|
||||
if (tex[j].baseTexture == texture.baseTexture) {
|
||||
layer = child;
|
||||
ind = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (layer) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
for (i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
if (child.textures.length < this.texPerChild) {
|
||||
layer = child;
|
||||
ind = child.textures.length;
|
||||
child.textures.push(texture);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!layer) {
|
||||
children.push(layer = new tilemap.RectTileLayer(this.zIndex, texture));
|
||||
ind = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
layer.addRect(ind, texture.frame.x, texture.frame.y, x, y, texture.frame.width, texture.frame.height, animX, animY);
|
||||
return true;
|
||||
};
|
||||
;
|
||||
CompositeRectTileLayer.prototype.renderCanvas = function (renderer) {
|
||||
if (!renderer.plugins.tilemap.dontUseTransform) {
|
||||
var wt = this.worldTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
}
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++)
|
||||
layers[i].renderCanvas(renderer);
|
||||
};
|
||||
;
|
||||
CompositeRectTileLayer.prototype.renderWebGL = function (renderer) {
|
||||
var gl = renderer.gl;
|
||||
var shader = renderer.plugins.tilemap.getShader(this.useSquare);
|
||||
renderer.setObjectRenderer(renderer.plugins.tilemap);
|
||||
renderer.bindShader(shader);
|
||||
this._globalMat = this._globalMat || new PIXI.Matrix();
|
||||
renderer._activeRenderTarget.projectionMatrix.copy(this._globalMat).append(this.worldTransform);
|
||||
shader.uniforms.projectionMatrix = this._globalMat.toArray(true);
|
||||
shader.uniforms.shadowColor = this.shadowColor;
|
||||
if (this.useSquare) {
|
||||
var tempScale = this._tempScale = (this._tempScale || [0, 0]);
|
||||
tempScale[0] = this._globalMat.a >= 0 ? 1 : -1;
|
||||
tempScale[1] = this._globalMat.d < 0 ? 1 : -1;
|
||||
var ps = shader.uniforms.pointScale = tempScale;
|
||||
shader.uniforms.projectionScale = Math.abs(this.worldTransform.a) * renderer.resolution;
|
||||
}
|
||||
var af = shader.uniforms.animationFrame = renderer.plugins.tilemap.tileAnim;
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++)
|
||||
layers[i].renderWebGL(renderer, this.useSquare);
|
||||
};
|
||||
CompositeRectTileLayer.prototype.isModified = function (anim) {
|
||||
var layers = this.children;
|
||||
if (this.modificationMarker != layers.length) {
|
||||
return true;
|
||||
}
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
var layer = layers[i];
|
||||
if (layer.modificationMarker != layer.pointsBuf.length ||
|
||||
anim && layer.hasAnim) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
CompositeRectTileLayer.prototype.clearModify = function () {
|
||||
var layers = this.children;
|
||||
this.modificationMarker = layers.length;
|
||||
for (var i = 0; i < layers.length; i++) {
|
||||
var layer = layers[i];
|
||||
layer.modificationMarker = layer.pointsBuf.length;
|
||||
}
|
||||
};
|
||||
return CompositeRectTileLayer;
|
||||
}(PIXI.Container));
|
||||
tilemap.CompositeRectTileLayer = CompositeRectTileLayer;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var GraphicsLayer = (function (_super) {
|
||||
__extends(GraphicsLayer, _super);
|
||||
function GraphicsLayer(zIndex) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.z = _this.zIndex = zIndex;
|
||||
return _this;
|
||||
}
|
||||
GraphicsLayer.prototype.renderCanvas = function (renderer) {
|
||||
var wt = null;
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
wt = this.transform.worldTransform;
|
||||
this.transform.worldTransform = PIXI.Matrix.IDENTITY;
|
||||
}
|
||||
renderer.plugins.graphics.render(this);
|
||||
if (renderer.plugins.tilemap.dontUseTransform) {
|
||||
this.transform.worldTransform = wt;
|
||||
}
|
||||
renderer.context.globalAlpha = 1.0;
|
||||
};
|
||||
GraphicsLayer.prototype.renderWebGL = function (renderer) {
|
||||
if (!this._webGL[renderer.CONTEXT_UID])
|
||||
this.dirty = true;
|
||||
_super.prototype.renderWebGL.call(this, renderer);
|
||||
};
|
||||
GraphicsLayer.prototype.isModified = function (anim) {
|
||||
return false;
|
||||
};
|
||||
GraphicsLayer.prototype.clearModify = function () {
|
||||
};
|
||||
return GraphicsLayer;
|
||||
}(PIXI.Graphics));
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var RectTileLayer = (function (_super) {
|
||||
__extends(RectTileLayer, _super);
|
||||
function RectTileLayer(zIndex, texture) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.z = 0;
|
||||
_this.zIndex = 0;
|
||||
_this.pointsBuf = [];
|
||||
_this._tempSize = new Float32Array([0, 0]);
|
||||
_this._tempTexSize = 1;
|
||||
_this.modificationMarker = 0;
|
||||
_this.hasAnim = false;
|
||||
_this.vbId = 0;
|
||||
_this.vbBuffer = null;
|
||||
_this.vbArray = null;
|
||||
_this.vbInts = null;
|
||||
_this.initialize(zIndex, texture);
|
||||
return _this;
|
||||
}
|
||||
RectTileLayer.prototype.initialize = function (zIndex, textures) {
|
||||
if (!textures) {
|
||||
textures = [];
|
||||
}
|
||||
else if (!(textures instanceof Array) && textures.baseTexture) {
|
||||
textures = [textures];
|
||||
}
|
||||
this.textures = textures;
|
||||
this.z = this.zIndex = zIndex;
|
||||
this.visible = false;
|
||||
};
|
||||
RectTileLayer.prototype.clear = function () {
|
||||
this.pointsBuf.length = 0;
|
||||
this.modificationMarker = 0;
|
||||
this.hasAnim = false;
|
||||
};
|
||||
RectTileLayer.prototype.renderCanvas = function (renderer) {
|
||||
if (this.textures.length === 0)
|
||||
return;
|
||||
var points = this.pointsBuf;
|
||||
renderer.context.fillStyle = '#000000';
|
||||
for (var i = 0, n = points.length; i < n; i += 9) {
|
||||
var x1 = points[i], y1 = points[i + 1];
|
||||
var x2 = points[i + 2], y2 = points[i + 3];
|
||||
var w = points[i + 4];
|
||||
var h = points[i + 5];
|
||||
x1 += points[i + 6] * renderer.plugins.tilemap.tileAnim[0];
|
||||
y1 += points[i + 7] * renderer.plugins.tilemap.tileAnim[1];
|
||||
var textureId = points[i + 8];
|
||||
if (textureId >= 0) {
|
||||
renderer.context.drawImage(this.textures[textureId].baseTexture.source, x1, y1, w, h, x2, y2, w, h);
|
||||
}
|
||||
else {
|
||||
renderer.context.globalAlpha = 0.5;
|
||||
renderer.context.fillRect(x2, y2, w, h);
|
||||
renderer.context.globalAlpha = 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
RectTileLayer.prototype.addRect = function (textureId, u, v, x, y, tileWidth, tileHeight, animX, animY) {
|
||||
if (animX === void 0) { animX = 0; }
|
||||
if (animY === void 0) { animY = 0; }
|
||||
var pb = this.pointsBuf;
|
||||
this.hasAnim = this.hasAnim || animX > 0 || animY > 0;
|
||||
if (tileWidth == tileHeight) {
|
||||
pb.push(u);
|
||||
pb.push(v);
|
||||
pb.push(x);
|
||||
pb.push(y);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
else {
|
||||
var i;
|
||||
if (tileWidth % tileHeight === 0) {
|
||||
for (i = 0; i < tileWidth / tileHeight; i++) {
|
||||
pb.push(u + i * tileHeight);
|
||||
pb.push(v);
|
||||
pb.push(x + i * tileHeight);
|
||||
pb.push(y);
|
||||
pb.push(tileHeight);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
}
|
||||
else if (tileHeight % tileWidth === 0) {
|
||||
for (i = 0; i < tileHeight / tileWidth; i++) {
|
||||
pb.push(u);
|
||||
pb.push(v + i * tileWidth);
|
||||
pb.push(x);
|
||||
pb.push(y + i * tileWidth);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileWidth);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
}
|
||||
else {
|
||||
pb.push(u);
|
||||
pb.push(v);
|
||||
pb.push(x);
|
||||
pb.push(y);
|
||||
pb.push(tileWidth);
|
||||
pb.push(tileHeight);
|
||||
pb.push(animX | 0);
|
||||
pb.push(animY | 0);
|
||||
pb.push(textureId);
|
||||
}
|
||||
}
|
||||
};
|
||||
;
|
||||
RectTileLayer.prototype.renderWebGL = function (renderer, useSquare) {
|
||||
if (useSquare === void 0) { useSquare = false; }
|
||||
var points = this.pointsBuf;
|
||||
if (points.length === 0)
|
||||
return;
|
||||
var rectsCount = points.length / 9;
|
||||
var tile = renderer.plugins.tilemap;
|
||||
var gl = renderer.gl;
|
||||
if (!useSquare) {
|
||||
tile.checkIndexBuffer(rectsCount);
|
||||
}
|
||||
var shader = tile.getShader(useSquare);
|
||||
var textures = this.textures;
|
||||
if (textures.length === 0)
|
||||
return;
|
||||
var len = textures.length;
|
||||
if (this._tempTexSize < shader.maxTextures) {
|
||||
this._tempTexSize = shader.maxTextures;
|
||||
this._tempSize = new Float32Array(2 * shader.maxTextures);
|
||||
}
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (!textures[i] || !textures[i].valid)
|
||||
return;
|
||||
var texture = textures[i].baseTexture;
|
||||
}
|
||||
tile.bindTextures(renderer, shader, textures);
|
||||
var vb = tile.getVb(this.vbId);
|
||||
if (!vb) {
|
||||
vb = tile.createVb(useSquare);
|
||||
this.vbId = vb.id;
|
||||
this.vbBuffer = null;
|
||||
this.modificationMarker = 0;
|
||||
}
|
||||
var vao = vb.vao;
|
||||
renderer.bindVao(vao);
|
||||
var vertexBuf = vb.vb;
|
||||
vertexBuf.bind();
|
||||
var vertices = rectsCount * shader.vertPerQuad;
|
||||
if (vertices === 0)
|
||||
return;
|
||||
if (this.modificationMarker != vertices) {
|
||||
this.modificationMarker = vertices;
|
||||
var vs = shader.stride * vertices;
|
||||
if (!this.vbBuffer || this.vbBuffer.byteLength < vs) {
|
||||
var bk = shader.stride;
|
||||
while (bk < vs) {
|
||||
bk *= 2;
|
||||
}
|
||||
this.vbBuffer = new ArrayBuffer(bk);
|
||||
this.vbArray = new Float32Array(this.vbBuffer);
|
||||
this.vbInts = new Uint32Array(this.vbBuffer);
|
||||
vertexBuf.upload(this.vbBuffer, 0, true);
|
||||
}
|
||||
var arr = this.vbArray, ints = this.vbInts;
|
||||
var sz = 0;
|
||||
var textureId, shiftU, shiftV;
|
||||
if (useSquare) {
|
||||
for (i = 0; i < points.length; i += 9) {
|
||||
textureId = (points[i + 8] >> 2);
|
||||
shiftU = 1024 * (points[i + 8] & 1);
|
||||
shiftV = 1024 * ((points[i + 8] >> 1) & 1);
|
||||
arr[sz++] = points[i + 2];
|
||||
arr[sz++] = points[i + 3];
|
||||
arr[sz++] = points[i + 0] + shiftU;
|
||||
arr[sz++] = points[i + 1] + shiftV;
|
||||
arr[sz++] = points[i + 4];
|
||||
arr[sz++] = points[i + 6];
|
||||
arr[sz++] = points[i + 7];
|
||||
arr[sz++] = textureId;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var tint = -1;
|
||||
for (i = 0; i < points.length; i += 9) {
|
||||
var eps = 0.5;
|
||||
textureId = (points[i + 8] >> 2);
|
||||
shiftU = 1024 * (points[i + 8] & 1);
|
||||
shiftV = 1024 * ((points[i + 8] >> 1) & 1);
|
||||
var x = points[i + 2], y = points[i + 3];
|
||||
var w = points[i + 4], h = points[i + 5];
|
||||
var u = points[i] + shiftU, v = points[i + 1] + shiftV;
|
||||
var animX = points[i + 6], animY = points[i + 7];
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u;
|
||||
arr[sz++] = v;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y;
|
||||
arr[sz++] = u + w;
|
||||
arr[sz++] = v;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x + w;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u + w;
|
||||
arr[sz++] = v + h;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
arr[sz++] = x;
|
||||
arr[sz++] = y + h;
|
||||
arr[sz++] = u;
|
||||
arr[sz++] = v + h;
|
||||
arr[sz++] = u + eps;
|
||||
arr[sz++] = v + eps;
|
||||
arr[sz++] = u + w - eps;
|
||||
arr[sz++] = v + h - eps;
|
||||
arr[sz++] = animX;
|
||||
arr[sz++] = animY;
|
||||
arr[sz++] = textureId;
|
||||
}
|
||||
}
|
||||
vertexBuf.upload(arr, 0, true);
|
||||
}
|
||||
if (useSquare)
|
||||
gl.drawArrays(gl.POINTS, 0, vertices);
|
||||
else
|
||||
gl.drawElements(gl.TRIANGLES, rectsCount * 6, gl.UNSIGNED_SHORT, 0);
|
||||
};
|
||||
return RectTileLayer;
|
||||
}(PIXI.Container));
|
||||
tilemap.RectTileLayer = RectTileLayer;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var rectShaderFrag = "varying vec2 vTextureCoord;\nvarying vec4 vFrame;\nvarying float vTextureId;\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\n\nvoid main(void){\n vec2 textureCoord = clamp(vTextureCoord, vFrame.xy, vFrame.zw);\n float textureId = floor(vTextureId + 0.5);\n\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}";
|
||||
var rectShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aFrame;\nattribute vec2 aAnim;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform vec2 animationFrame;\n\nvarying vec2 vTextureCoord;\nvarying float vTextureId;\nvarying vec4 vFrame;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vec2 anim = aAnim * animationFrame;\n vTextureCoord = aTextureCoord + anim;\n vFrame = aFrame + vec4(anim, anim);\n vTextureId = aTextureId;\n}\n";
|
||||
var TilemapShader = (function (_super) {
|
||||
__extends(TilemapShader, _super);
|
||||
function TilemapShader(gl, maxTextures, shaderVert, shaderFrag) {
|
||||
var _this = _super.call(this, gl, shaderVert, shaderFrag) || this;
|
||||
_this.maxTextures = 0;
|
||||
_this.maxTextures = maxTextures;
|
||||
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
return TilemapShader;
|
||||
}(PIXI.Shader));
|
||||
tilemap.TilemapShader = TilemapShader;
|
||||
var RectTileShader = (function (_super) {
|
||||
__extends(RectTileShader, _super);
|
||||
function RectTileShader(gl, maxTextures) {
|
||||
var _this = _super.call(this, gl, maxTextures, rectShaderVert, tilemap.shaderGenerator.generateFragmentSrc(maxTextures, rectShaderFrag)) || this;
|
||||
_this.vertSize = 11;
|
||||
_this.vertPerQuad = 4;
|
||||
_this.stride = _this.vertSize * 4;
|
||||
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
RectTileShader.prototype.createVao = function (renderer, vb) {
|
||||
var gl = renderer.gl;
|
||||
return renderer.createVao()
|
||||
.addIndex(this.indexBuffer)
|
||||
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
|
||||
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
|
||||
.addAttribute(vb, this.attributes.aFrame, gl.FLOAT, false, this.stride, 4 * 4)
|
||||
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 8 * 4)
|
||||
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 10 * 4);
|
||||
};
|
||||
return RectTileShader;
|
||||
}(TilemapShader));
|
||||
tilemap.RectTileShader = RectTileShader;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var shaderGenerator;
|
||||
(function (shaderGenerator) {
|
||||
function fillSamplers(shader, maxTextures) {
|
||||
var sampleValues = [];
|
||||
for (var i = 0; i < maxTextures; i++) {
|
||||
sampleValues[i] = i;
|
||||
}
|
||||
shader.bind();
|
||||
shader.uniforms.uSamplers = sampleValues;
|
||||
var samplerSize = [];
|
||||
for (i = 0; i < maxTextures; i++) {
|
||||
samplerSize.push(1.0 / 2048);
|
||||
samplerSize.push(1.0 / 2048);
|
||||
}
|
||||
shader.uniforms.uSamplerSize = samplerSize;
|
||||
}
|
||||
shaderGenerator.fillSamplers = fillSamplers;
|
||||
function generateFragmentSrc(maxTextures, fragmentSrc) {
|
||||
return fragmentSrc.replace(/%count%/gi, maxTextures + "")
|
||||
.replace(/%forloop%/gi, this.generateSampleSrc(maxTextures));
|
||||
}
|
||||
shaderGenerator.generateFragmentSrc = generateFragmentSrc;
|
||||
function generateSampleSrc(maxTextures) {
|
||||
var src = '';
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
src += 'if(vTextureId <= -1.0) {';
|
||||
src += '\n\tcolor = shadowColor;';
|
||||
src += '\n}';
|
||||
for (var i = 0; i < maxTextures; i++) {
|
||||
src += '\nelse ';
|
||||
if (i < maxTextures - 1) {
|
||||
src += 'if(textureId == ' + i + '.0)';
|
||||
}
|
||||
src += '\n{';
|
||||
src += '\n\tcolor = texture2D(uSamplers[' + i + '], textureCoord * uSamplerSize[' + i + ']);';
|
||||
src += '\n}';
|
||||
}
|
||||
src += '\n';
|
||||
src += '\n';
|
||||
return src;
|
||||
}
|
||||
shaderGenerator.generateSampleSrc = generateSampleSrc;
|
||||
})(shaderGenerator = tilemap.shaderGenerator || (tilemap.shaderGenerator = {}));
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var squareShaderVert = "\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec2 aAnim;\nattribute float aTextureId;\nattribute float aSize;\n\nuniform mat3 projectionMatrix;\nuniform vec2 samplerSize;\nuniform vec2 animationFrame;\nuniform float projectionScale;\n\nvarying vec2 vTextureCoord;\nvarying float vSize;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition + aSize * 0.5, 1.0)).xy, 0.0, 1.0);\n gl_PointSize = aSize * projectionScale;\n vTextureCoord = aTextureCoord + aAnim * animationFrame;\n vTextureId = aTextureId;\n vSize = aSize;\n}\n";
|
||||
var squareShaderFrag = "\nvarying vec2 vTextureCoord;\nvarying float vSize;\nvarying float vTextureId;\n\nuniform vec4 shadowColor;\nuniform sampler2D uSamplers[%count%];\nuniform vec2 uSamplerSize[%count%];\nuniform vec2 pointScale;\n\nvoid main(void){\n float margin = 0.5 / vSize;\n vec2 pointCoord = (gl_PointCoord - 0.5) * pointScale + 0.5;\n vec2 clamped = vec2(clamp(pointCoord.x, margin, 1.0 - margin), clamp(pointCoord.y, margin, 1.0 - margin));\n vec2 textureCoord = pointCoord * vSize + vTextureCoord;\n float textureId = vTextureId;\n vec4 color;\n %forloop%\n gl_FragColor = color;\n}\n\n";
|
||||
var SquareTileShader = (function (_super) {
|
||||
__extends(SquareTileShader, _super);
|
||||
function SquareTileShader(gl, maxTextures) {
|
||||
var _this = _super.call(this, gl, maxTextures, squareShaderVert, tilemap.shaderGenerator.generateFragmentSrc(maxTextures, squareShaderFrag)) || this;
|
||||
_this.vertSize = 8;
|
||||
_this.vertPerQuad = 1;
|
||||
_this.stride = _this.vertSize * 4;
|
||||
_this.maxTextures = maxTextures;
|
||||
tilemap.shaderGenerator.fillSamplers(_this, _this.maxTextures);
|
||||
return _this;
|
||||
}
|
||||
SquareTileShader.prototype.createVao = function (renderer, vb) {
|
||||
var gl = renderer.gl;
|
||||
return renderer.createVao()
|
||||
.addIndex(this.indexBuffer)
|
||||
.addAttribute(vb, this.attributes.aVertexPosition, gl.FLOAT, false, this.stride, 0)
|
||||
.addAttribute(vb, this.attributes.aTextureCoord, gl.FLOAT, false, this.stride, 2 * 4)
|
||||
.addAttribute(vb, this.attributes.aSize, gl.FLOAT, false, this.stride, 4 * 4)
|
||||
.addAttribute(vb, this.attributes.aAnim, gl.FLOAT, false, this.stride, 5 * 4)
|
||||
.addAttribute(vb, this.attributes.aTextureId, gl.FLOAT, false, this.stride, 7 * 4);
|
||||
};
|
||||
;
|
||||
return SquareTileShader;
|
||||
}(tilemap.TilemapShader));
|
||||
tilemap.SquareTileShader = SquareTileShader;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap) {
|
||||
var glCore = PIXI.glCore;
|
||||
function _hackSubImage(tex, sprite, clearBuffer, clearWidth, clearHeight) {
|
||||
var gl = tex.gl;
|
||||
var baseTex = sprite.texture.baseTexture;
|
||||
if (clearBuffer && clearWidth > 0 && clearHeight > 0) {
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, clearWidth, clearHeight, tex.format, tex.type, clearBuffer);
|
||||
}
|
||||
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
|
||||
gl.texSubImage2D(gl.TEXTURE_2D, 0, sprite.position.x, sprite.position.y, tex.format, tex.type, baseTex.source);
|
||||
}
|
||||
var TileRenderer = (function (_super) {
|
||||
__extends(TileRenderer, _super);
|
||||
function TileRenderer(renderer) {
|
||||
var _this = _super.call(this, renderer) || this;
|
||||
_this.vbs = {};
|
||||
_this.indices = new Uint16Array(0);
|
||||
_this.lastTimeCheck = 0;
|
||||
_this.tileAnim = [0, 0];
|
||||
_this.maxTextures = 4;
|
||||
_this.texLoc = [];
|
||||
return _this;
|
||||
}
|
||||
TileRenderer.prototype.onContextChange = function () {
|
||||
var gl = this.renderer.gl;
|
||||
var maxTextures = this.maxTextures;
|
||||
this.rectShader = new tilemap.RectTileShader(gl, maxTextures);
|
||||
this.squareShader = new tilemap.SquareTileShader(gl, maxTextures);
|
||||
this.checkIndexBuffer(2000);
|
||||
this.rectShader.indexBuffer = this.indexBuffer;
|
||||
this.squareShader.indexBuffer = this.indexBuffer;
|
||||
this.vbs = {};
|
||||
this.glTextures = [];
|
||||
this.boundSprites = [];
|
||||
this.initBounds();
|
||||
};
|
||||
TileRenderer.prototype.initBounds = function () {
|
||||
var gl = this.renderer.gl;
|
||||
var tempCanvas = document.createElement('canvas');
|
||||
tempCanvas.width = 2048;
|
||||
tempCanvas.height = 2048;
|
||||
for (var i = 0; i < this.maxTextures; i++) {
|
||||
var rt = PIXI.RenderTexture.create(2048, 2048);
|
||||
rt.baseTexture.premultipliedAlpha = true;
|
||||
rt.baseTexture.scaleMode = TileRenderer.SCALE_MODE;
|
||||
rt.baseTexture.wrapMode = PIXI.WRAP_MODES.CLAMP;
|
||||
this.renderer.textureManager.updateTexture(rt);
|
||||
this.glTextures.push(rt);
|
||||
var bs = [];
|
||||
for (var j = 0; j < 4; j++) {
|
||||
var spr = new PIXI.Sprite();
|
||||
spr.position.x = 1024 * (j & 1);
|
||||
spr.position.y = 1024 * (j >> 1);
|
||||
bs.push(spr);
|
||||
}
|
||||
this.boundSprites.push(bs);
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.bindTextures = function (renderer, shader, textures) {
|
||||
var bounds = this.boundSprites;
|
||||
var glts = this.glTextures;
|
||||
var len = textures.length;
|
||||
var maxTextures = this.maxTextures;
|
||||
if (len > 4 * maxTextures) {
|
||||
return;
|
||||
}
|
||||
var doClear = TileRenderer.DO_CLEAR;
|
||||
if (doClear && !this._clearBuffer) {
|
||||
this._clearBuffer = new Uint8Array(1024 * 1024 * 4);
|
||||
}
|
||||
var i;
|
||||
for (i = 0; i < len; i++) {
|
||||
var texture = textures[i];
|
||||
if (!texture || !textures[i].valid)
|
||||
continue;
|
||||
var bs = bounds[i >> 2][i & 3];
|
||||
if (!bs.texture ||
|
||||
bs.texture.baseTexture !== texture.baseTexture) {
|
||||
bs.texture = texture;
|
||||
var glt = glts[i >> 2];
|
||||
renderer.bindTexture(glt, 0, true);
|
||||
if (doClear) {
|
||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs, this._clearBuffer, 1024, 1024);
|
||||
}
|
||||
else {
|
||||
_hackSubImage(glt.baseTexture._glTextures[renderer.CONTEXT_UID], bs);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.texLoc.length = 0;
|
||||
for (i = 0; i < maxTextures; i++) {
|
||||
this.texLoc.push(renderer.bindTexture(glts[i], i, true));
|
||||
}
|
||||
shader.uniforms.uSamplers = this.texLoc;
|
||||
};
|
||||
TileRenderer.prototype.checkLeaks = function () {
|
||||
var now = Date.now();
|
||||
var old = now - 10000;
|
||||
if (this.lastTimeCheck < old ||
|
||||
this.lastTimeCheck > now) {
|
||||
this.lastTimeCheck = now;
|
||||
var vbs = this.vbs;
|
||||
for (var key in vbs) {
|
||||
if (vbs[key].lastTimeAccess < old) {
|
||||
this.removeVb(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
;
|
||||
TileRenderer.prototype.start = function () {
|
||||
this.renderer.state.setBlendMode(PIXI.BLEND_MODES.NORMAL);
|
||||
};
|
||||
TileRenderer.prototype.getVb = function (id) {
|
||||
this.checkLeaks();
|
||||
var vb = this.vbs[id];
|
||||
if (vb) {
|
||||
vb.lastAccessTime = Date.now();
|
||||
return vb;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
TileRenderer.prototype.createVb = function (useSquare) {
|
||||
var id = ++TileRenderer.vbAutoincrement;
|
||||
var shader = this.getShader(useSquare);
|
||||
var gl = this.renderer.gl;
|
||||
var vb = PIXI.glCore.GLBuffer.createVertexBuffer(gl, null, gl.STREAM_DRAW);
|
||||
var stuff = {
|
||||
id: id,
|
||||
vb: vb,
|
||||
vao: shader.createVao(this.renderer, vb),
|
||||
lastTimeAccess: Date.now(),
|
||||
useSquare: useSquare,
|
||||
shader: shader
|
||||
};
|
||||
this.vbs[id] = stuff;
|
||||
return stuff;
|
||||
};
|
||||
TileRenderer.prototype.removeVb = function (id) {
|
||||
if (this.vbs[id]) {
|
||||
this.vbs[id].vb.destroy();
|
||||
this.vbs[id].vao.destroy();
|
||||
delete this.vbs[id];
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.checkIndexBuffer = function (size) {
|
||||
var totalIndices = size * 6;
|
||||
var indices = this.indices;
|
||||
if (totalIndices <= indices.length) {
|
||||
return;
|
||||
}
|
||||
var len = indices.length || totalIndices;
|
||||
while (len < totalIndices) {
|
||||
len <<= 1;
|
||||
}
|
||||
indices = new Uint16Array(len);
|
||||
this.indices = indices;
|
||||
for (var i = 0, j = 0; i + 5 < indices.length; i += 6, j += 4) {
|
||||
indices[i + 0] = j + 0;
|
||||
indices[i + 1] = j + 1;
|
||||
indices[i + 2] = j + 2;
|
||||
indices[i + 3] = j + 0;
|
||||
indices[i + 4] = j + 2;
|
||||
indices[i + 5] = j + 3;
|
||||
}
|
||||
if (this.indexBuffer) {
|
||||
this.indexBuffer.upload(indices);
|
||||
}
|
||||
else {
|
||||
var gl = this.renderer.gl;
|
||||
this.indexBuffer = glCore.GLBuffer.createIndexBuffer(gl, this.indices, gl.STATIC_DRAW);
|
||||
}
|
||||
};
|
||||
TileRenderer.prototype.getShader = function (useSquare) {
|
||||
return useSquare ? this.squareShader : this.rectShader;
|
||||
};
|
||||
TileRenderer.prototype.destroy = function () {
|
||||
_super.prototype.destroy.call(this);
|
||||
this.rectShader.destroy();
|
||||
this.squareShader.destroy();
|
||||
this.rectShader = null;
|
||||
this.squareShader = null;
|
||||
};
|
||||
;
|
||||
return TileRenderer;
|
||||
}(PIXI.ObjectRenderer));
|
||||
TileRenderer.vbAutoincrement = 0;
|
||||
TileRenderer.SCALE_MODE = PIXI.SCALE_MODES.LINEAR;
|
||||
TileRenderer.DO_CLEAR = false;
|
||||
tilemap.TileRenderer = TileRenderer;
|
||||
PIXI.WebGLRenderer.registerPlugin('tilemap', TileRenderer);
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
var PIXI;
|
||||
(function (PIXI) {
|
||||
var tilemap;
|
||||
(function (tilemap_1) {
|
||||
var ZLayer = (function (_super) {
|
||||
__extends(ZLayer, _super);
|
||||
function ZLayer(tilemap, zIndex) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this._lastAnimationFrame = -1;
|
||||
_this.tilemap = tilemap;
|
||||
_this.z = zIndex;
|
||||
return _this;
|
||||
}
|
||||
ZLayer.prototype.clear = function () {
|
||||
var layers = this.children;
|
||||
for (var i = 0; i < layers.length; i++)
|
||||
layers[i].clear();
|
||||
this._previousLayers = 0;
|
||||
};
|
||||
ZLayer.prototype.cacheIfDirty = function () {
|
||||
var tilemap = this.tilemap;
|
||||
var layers = this.children;
|
||||
var modified = this._previousLayers != layers.length;
|
||||
this._previousLayers = layers.length;
|
||||
var buf = this.canvasBuffer;
|
||||
var tempRender = this._tempRender;
|
||||
if (!buf) {
|
||||
buf = this.canvasBuffer = document.createElement('canvas');
|
||||
tempRender = this._tempRender = new PIXI.CanvasRenderer(100, 100, { view: buf });
|
||||
tempRender.context = tempRender.rootContext;
|
||||
tempRender.plugins.tilemap.dontUseTransform = true;
|
||||
}
|
||||
if (buf.width != tilemap._layerWidth ||
|
||||
buf.height != tilemap._layerHeight) {
|
||||
buf.width = tilemap._layerWidth;
|
||||
buf.height = tilemap._layerHeight;
|
||||
modified = true;
|
||||
}
|
||||
var i;
|
||||
if (!modified) {
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
if (layers[i].isModified(this._lastAnimationFrame != tilemap.animationFrame)) {
|
||||
modified = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
this._lastAnimationFrame = tilemap.animationFrame;
|
||||
if (modified) {
|
||||
if (tilemap._hackRenderer) {
|
||||
tilemap._hackRenderer(tempRender);
|
||||
}
|
||||
tempRender.context.clearRect(0, 0, buf.width, buf.height);
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
layers[i].clearModify();
|
||||
layers[i].renderCanvas(tempRender);
|
||||
}
|
||||
}
|
||||
this.layerTransform = this.worldTransform;
|
||||
for (i = 0; i < layers.length; i++) {
|
||||
this.layerTransform = layers[i].worldTransform;
|
||||
break;
|
||||
}
|
||||
};
|
||||
;
|
||||
ZLayer.prototype.renderCanvas = function (renderer) {
|
||||
this.cacheIfDirty();
|
||||
var wt = this.layerTransform;
|
||||
renderer.context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * renderer.resolution, wt.ty * renderer.resolution);
|
||||
var tilemap = this.tilemap;
|
||||
renderer.context.drawImage(this.canvasBuffer, 0, 0);
|
||||
};
|
||||
;
|
||||
return ZLayer;
|
||||
}(PIXI.Container));
|
||||
tilemap_1.ZLayer = ZLayer;
|
||||
})(tilemap = PIXI.tilemap || (PIXI.tilemap = {}));
|
||||
})(PIXI || (PIXI = {}));
|
||||
//# sourceMappingURL=pixi-tilemap.js.map
|
||||
40199
www/js/libs/pixi.js
Normal file
40199
www/js/libs/pixi.js
Normal file
File diff suppressed because it is too large
Load diff
9
www/js/main.js
Normal file
9
www/js/main.js
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
//=============================================================================
|
||||
// main.js
|
||||
//=============================================================================
|
||||
|
||||
PluginManager.setup($plugins);
|
||||
|
||||
window.onload = function() {
|
||||
SceneManager.run(Scene_Boot);
|
||||
};
|
||||
25
www/js/plugins.js
Normal file
25
www/js/plugins.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// Generated by RPG Maker.
|
||||
// Do not edit this file directly.
|
||||
var $plugins =
|
||||
[
|
||||
{ "name": "Community_Basic", "status": true, "description": "基本的なパラメーターを設定するプラグインです。", "parameters": { "cacheLimit": "20", "screenWidth": "942", "screenHeight": "720", "changeWindowWidthTo": "", "changeWindowHeightTo": "", "renderingMode": "auto", "alwaysDash": "off" } },
|
||||
{ "name": "MadeWithMv", "status": true, "description": "メイン画面へ進む前に、\"Made with MV\"のスプラッシュ画面もしくはカスタマイズされたスプラッシュ画面を表示します。", "parameters": { "Show Made With MV": "true", "Made with MV Image": "MadeWithMv", "Show Custom Splash": "false", "Custom Image": "", "Fade Out Time": "120", "Fade In Time": "120", "Wait Time": "160" } },
|
||||
{ "name": "TimeLimitedChoice", "status": true, "description": "時間制限付き選択肢プレグイン", "parameters": {} },
|
||||
{ "name": "InfoWindow", "status": false, "description": "情報表示ウィンドウをメニュー画面に追加するプラグイン", "parameters": {} },
|
||||
{ "name": "Foreground", "status": true, "description": "マップに合わせてスクロールする近景の設定", "parameters": {} },
|
||||
{ "name": "SAN_AnalogMove", "status": true, "description": "アナログムーブ 3.1.5\nパーティキャラクターの移動をドット移動に変更します。", "parameters": {} },
|
||||
{ "name": "HzRandomChoice", "status": true, "description": "選択肢の順番をランダムにします。また、タイマーが0になった際に強制的に最後の選択肢を選択させます。", "parameters": {} },
|
||||
{ "name": "FloatVariables", "status": true, "description": "変数の小数演算プラグイン", "parameters": { "小数変数開始位置": "0", "小数変数終了位置": "0" } },
|
||||
{ "name": "DirectlyAttackEffect", "status": true, "description": "直接攻撃演出プラグイン", "parameters": { "フレーム数": "12", "高度": "10", "アクターに適用": "true", "敵キャラに適用": "true", "残像不使用": "false", "常時残像使用": "false", "アクター残像スイッチID": "0", "敵キャラ残像スイッチID": "0" } },
|
||||
{ "name": "SAN_AnalogMove", "status": true, "description": "アナログムーブ 3.1.5\nパーティキャラクターの移動をドット移動に変更します。", "parameters": {} },
|
||||
{ "name": "BattleVoice", "status": false, "description": "アクターの戦闘時の行動にボイスSEを設定します。(ver1.2)", "parameters": { "pitch": "100", "volume": "90", "Battle Voice Name at Option": "バトルボイス", "ON switch ID": "21" } },
|
||||
{ "name": "MOG_BattleHud", "status": true, "description": "(v5.04 *) Permite customizar o layout de batalha.", "parameters": { "-> MAIN <<<<<<<<<<<<<<<<<<<<<<<": "", "Hud X-Axis": "100", "Hud Y-Axis": "400", "Hud Space X": "0", "Hud Space Y": "0", "Hud Slide X": "0", "Hud Slide Y": "0", "Vertical Mode": "false", "Max Battle Members": "4", "": "", "-> LAYOUT OVERLAY <<<<<<<<<<<<<<<<<<<<<<<": "", "Layout2 Visible": "false", "Layout2 X-Axis": "-300", "Layout2 Y-Axis": "-100", "-> TURN <<<<<<<<<<<<<<<<<<<<<<<": "", "Turn Visible": "true", "Turn X-Axis": "50", "Turn Y-Axis": "0", "Turn Rotation Speed": "0", "Turn Zoom Animation": "false", "-> FACE <<<<<<<<<<<<<<<<<<<<<<<": "", "Face Visible": "true", "Face X-Axis": "210", "Face Y-Axis": "16", "Face Shake Animation": "true", "Face Zoom Animation": "true", "Face Frame Animation": "false", "Face Priority": "1", "-> NAME <<<<<<<<<<<<<<<<<<<<<<<": "", "Name Visible": "true", "Name X-Axis": "70", "Name Y-Axis": "-7", "Name Align": "0", "Name Font Size": "20", "Name Bold Size": "4", "Name Font Italic": "false", "-> HP <<<<<<<<<<<<<<<<<<<<<<<": "", "HP Meter Visible": "true", "HP Meter X-Axis": "292", "HP Meter Y-Axis": "21", "HP Meter Angle": "0", "HP Meter Flow Anime": "true", "HP Number Visible": "true", "HP Number Align type": "0", "HP Number X-Axis": "400", "HP Number Y-Axis": "0", "MaxHP Number Visible": "false", "MaxHP Number X-Axis": "185", "MaxHP Number Y-Axis": "40", "-> MP <<<<<<<<<<<<<<<<<<<<<<<": "", "MP Meter Visible": "true", "MP Meter X-Axis": "430", "MP Meter Y-Axis": "21", "MP Meter Angle": "0", "MP Meter Flow Anime": "true", "MP Number Visible": "true", "MP Number Align type": "0", "MP Number X-Axis": "540", "MP Number Y-Axis": "0", "MaxMP Number Visible": "false", "MaxMP Number X-Axis": "150", "MaxMP Number Y-Axis": "78", "-> TP <<<<<<<<<<<<<<<<<<<<<<<": "", "TP Meter Visible": "true", "TP Meter X-Axis": "558", "TP Meter Y-Axis": "21", "TP Meter Angle": "0", "TP Meter Flow Anime": "true", "TP Number Visible": "true", "TP Number Align type": "0", "TP Number X-Axis": "665", "TP Number Y-Axis": "0", "MaxTP Number Visible": "false", "MaxTP Number X-Axis": "220", "MaxTP Number Y-Axis": "99", "-> ATB <<<<<<<<<<<<<<<<<<<<<<<": "", "ATB Meter Visible": "true", "ATB Meter X-Axis": "0", "ATB Meter Y-Axis": "32", "ATB Meter Angle": "0", "ATB Meter Flow Anime": "false", "-> STATES <<<<<<<<<<<<<<<<<<<<<<<": "", "States Visible": "true", "States X-Axis": "675", "States Y-Axis": "0", "States Mode": "0", "States Max": "4", "States Align": "0", "-> W COMMAND <<<<<<<<<<<<<<<<<<<<<<<": "", "Command Auto Adjust": "1", "W Command X-Axis": "15", "W Command Y-Axis": "440", "W Command Width": "192", "W Command Height": "180", "W Command Slide X": "0", "W Command Slide Y": "0", "Layout Command": "true", "L Command X-Axis": "-25", "L Command Y-Axis": "-35", "-> W PARTY <<<<<<<<<<<<<<<<<<<<<<<": "", "W Party X-Axis": "335", "W Party Y-Axis": "300", "W Party Width": "192", "W Party Height": "110", "W Party Slide X": "0", "W Party Slide Y": "0", "Layout Party": "true", "L Party X-Axis": "-325", "L Party Y-Axis": "-42", "-> W HELP <<<<<<<<<<<<<<<<<<<<<<<": "", "W Help X-Axis": "0", "W Help Y-Axis": "0", "W Help Width": "942", "W Help Height": "108", "W Help Slide X": "0", "W Help Slide Y": "0", "Layout Help": "true", "L Help X-Axis": "0", "L Help Y-Axis": "0", "-> W SKILL <<<<<<<<<<<<<<<<<<<<<<<": "", "W Skill X-Axis": "0", "W Skill Y-Axis": "444", "W Skill Width": "942", "W Skill Height": "180", "W Skill maxCols": "2", "W Skill Slide X": "0", "W Skill Slide Y": "0", "Layout Skill": "true", "L Skill X-Axis": "0", "L Skill Y-Axis": "-67", "-> W ITEM <<<<<<<<<<<<<<<<<<<<<<<": "", "W Item X-Axis": "0", "W Item Y-Axis": "444", "W Item Width": "942", "W Item Height": "180", "W Item maxCols": "2", "W Item Slide X": "0", "W Item Slide Y": "0", "Layout Item": "true", "L Item X-Axis": "0", "L Item Y-Axis": "-67", "-> W ACTOR <<<<<<<<<<<<<<<<<<<<<<<": "", "W Actor X-Axis": "0", "W Actor Y-Axis": "444", "W Actor Width": "942", "W Actor Height": "180", "W Actor maxCols": "1", "W Actor Slide X": "0", "W Actor Slide Y": "0", "Layout Actor": "true", "L Actor X-Axis": "0", "L Actor Y-Axis": "-67", "-> W ENEMY <<<<<<<<<<<<<<<<<<<<<<<": "", "W Enemy X-Axis": "0", "W Enemy Y-Axis": "444", "W Enemy Width": "942", "W Enemy Height": "180", "W Enemy maxCols": "2", "W Enemy Slide X": "0", "W Enemy Slide Y": "0", "Layout Enemy": "true", "L Enemy X-Axis": "0", "L Enemy Y-Axis": "-67", "-> SCREEN LAYOUT <<<<<<<<<<<<<<<<<<<<<<<": "", "Screen Layout": "true", "Screen X-Axis": "0", "Screen Y-Axis": "0", "-> CUSTOM POSITION <<<<<<<<<<<<<<<<<<<<<<<": "", "Custom Position 1": "220,450", "Custom Position 2": "220,495", "Custom Position 3": "220,540", "Custom Position 4": "220,585", "Custom Position 5": "220,630", "Custom Position 6": "220,675", "Custom Position 7": "", "Custom Position 8": "" } },
|
||||
{ "name": "EnemyAnimetion", "status": true, "description": "", "parameters": {} },
|
||||
{ "name": "SSEP_BattleSpeedUp_v2", "status": true, "description": "[ver2.01] 戦闘速度を上げるプラグインです。YanflyEngine対応。\n利用時は、必ずYanflyEngineの後に読み込んでください。", "parameters": { "---General Setting---": "", "BattleSpeed (Default)": "1", "BattleSpeed (Boost)": "2", "OkayKeyBoost": "true", "VisibleSwitch": "true", "BoostToggleSwitch": "shift", "---Detail Setting---": "", "StateIcon": "40", "StateOverlay": "8", "Weapon": "12", "Motion": "12", "Balloon": "12", "Damage": "90", "DamageMin": "60", "--BattleLog Setting--": "", "LogAnime BaseDelay": "8", "LogAnime NextDelay": "12", "LogWaitCount Default": "1", "LogWaitCount Boost": "2", "---Switch Setting---": "", "SE BoostON": "Decision2", "SE BoostOFF": "Decision2", "SE Volume": "50", "SwitchImage": "Balloon", "SwitchX": "10", "SwitchY": "10", "SwitchWidth": "48", "SwitchHeight": "48", "SwitchTop": "2", "SwitchLeft": "1", "SwitchAnimePattern": "8", "SwitchAnimeSpeed": "5", "---YEP BattleCore---": "", "YEP Battle MotionWait": "20", "---YEP ATB---": "", "YEP ATB BoostSwitch": "true", "---ATB Speed---": "", "ATB Speed(Default)": "1", "ATB Speed(Boost)": "2", "---YEP Victory AM---": "", "YEP Victory Wait": "true" } },
|
||||
{ "name": "SRD_TimedAttackCore", "status": true, "description": "Adds a system which forces the user to time certain inputs to preform actions during battle.", "parameters": { "Enable Touch?": "true", "Default Source": "None", "== Window Options ==": "", "X Alignment": "Center", "Y Alignment": "Top", "X Offset": "0", "Y Offset": "0", "Window Width": "Graphics.width", "Window Height": "this.fittingHeight(3)", "== Default Props. ==": "", "Sound Effect": "Sword2", "Cursor Image": "", "Background Image": "DefaultBackground", "Window Opacity": "255", "Target Location": "Graphics.width / 2", "Repeat Type": "None", "Speed": "10", "Main Color": "#FFFFFF", "Shape": "Rectangle", "Width": "24", "Outline Color": "#000000", "Outline Size": "3", "Direction": "Right", "Flash Rate": "8" } },
|
||||
{ "name": "EnemySlideIn", "status": true, "description": "プレイヤーだけでなく敵もスライドインするようになります。", "parameters": { "slideinSpeed": "40" } },
|
||||
{ "name": "Lunatlazur_ActorNameWindow", "status": true, "description": "名前ウィンドウ表示プラグイン", "parameters": { "テキストカラー": "0" } },
|
||||
{ "name": "SlotMachine", "status": true, "description": "Slot Machine scene", "parameters": { "Variable ID": "11", "Help Text": "カーソルキーの上でベット、カーソルキーの下でスタート", "Won Text": "おめでとうございます!Win Coin枚獲得です!", "Lost Text": "残念でした。", "Replay Text": "もう一度やりますか?", "Coin Full Text": "コイン枚数が制限に達しました。", "Bet Text": "ベット", "Spin Text": "スピン", "Yes Text": "はい", "No Text": "いいえ" } },
|
||||
{ "name": "Mano_CoinShop", "status": true, "description": "変数やアイテムを消費して購入できるショップが作れます。\n競合率・中ぐらい", "parameters": {} },
|
||||
{ "name": "TMOmitShopCommand", "status": true, "description": "購入または売却のみの場合にショップコマンドを省略します。", "parameters": {} }
|
||||
];
|
||||
92
www/js/plugins/AltMenuScreen.js
Normal file
92
www/js/plugins/AltMenuScreen.js
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
//=============================================================================
|
||||
// AltMenuScreen.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Alternative menu screen layout.
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc メニュー画面のレイアウトを変更します。
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
(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;
|
||||
};
|
||||
|
||||
Window_MenuCommand.prototype.windowWidth = function () {
|
||||
return Graphics.boxWidth;
|
||||
};
|
||||
|
||||
Window_MenuCommand.prototype.maxCols = function () {
|
||||
return 4;
|
||||
};
|
||||
|
||||
Window_MenuCommand.prototype.numVisibleRows = function () {
|
||||
return 2;
|
||||
};
|
||||
|
||||
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.maxCols = function () {
|
||||
return 4;
|
||||
};
|
||||
|
||||
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.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);
|
||||
};
|
||||
|
||||
})();
|
||||
134
www/js/plugins/AltSaveScreen.js
Normal file
134
www/js/plugins/AltSaveScreen.js
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
//=============================================================================
|
||||
// AltSaveScreen.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Alternative save/load screen layout.
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc セーブ/ロード画面のレイアウトを変更します。
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
(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_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.maxCols = function () {
|
||||
return 4;
|
||||
};
|
||||
|
||||
Window_SavefileList.prototype.numVisibleRows = function () {
|
||||
return 5;
|
||||
};
|
||||
|
||||
Window_SavefileList.prototype.spacing = function () {
|
||||
return 8;
|
||||
};
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
Window_SavefileStatus.prototype = Object.create(Window_Base.prototype);
|
||||
Window_SavefileStatus.prototype.constructor = Window_SavefileStatus;
|
||||
|
||||
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.setMode = function (mode) {
|
||||
this._mode = mode;
|
||||
};
|
||||
|
||||
Window_SavefileStatus.prototype.setId = function (id) {
|
||||
this._id = id;
|
||||
this.refresh();
|
||||
};
|
||||
|
||||
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.drawFileId = function (id, x, y) {
|
||||
this.drawText(TextManager.file + ' ' + id, x, y, 180);
|
||||
};
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
353
www/js/plugins/BattleVoice.js
Normal file
353
www/js/plugins/BattleVoice.js
Normal file
|
|
@ -0,0 +1,353 @@
|
|||
//=============================================================================
|
||||
// BattleVoice.js (Ver 1.2.0)
|
||||
//=============================================================================
|
||||
// [Update History]
|
||||
// 2015.Nov Ver1.0.0 First Release
|
||||
// 2016.Aug Ver1.1.0 Strict Option Input
|
||||
// 2019.Feb.27 Ver1.2.0 Random Play
|
||||
|
||||
/*:
|
||||
* @plugindesc play voice SE at battle when actor does spcified action(ver1.2)
|
||||
* @author Sasuke KANNAZUKI
|
||||
*
|
||||
* @param pitch
|
||||
* @desc pitch of SEs. this setting is common among all voice SEs.
|
||||
* @default 100
|
||||
*
|
||||
* @param volume
|
||||
* @desc volume of SEs. this setting is common among all voice SEs.
|
||||
* @default 90
|
||||
*
|
||||
* @param Battle Voice Name at Option
|
||||
* @desc display name at option
|
||||
* @deault Battle Voice
|
||||
*
|
||||
* @param ON switch ID
|
||||
* @desc play se only when the switch is ON. This setting interlocks with option Battle Voice.
|
||||
* @default 21
|
||||
*
|
||||
* @noteParam attackVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam recoverVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam friendMagicVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam magicVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam skillVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam damageVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam defeatedVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam victoryVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* note specification:
|
||||
* write down each actor's note at following format to set SE filename.
|
||||
* <attackVoice:filename> plays when actor does normal attack.
|
||||
* <recoverVoice:filename> plays when actor uses HP recovering magic.
|
||||
* <friendMagicVoice:filename> plays when actor spells magic for friend
|
||||
* except HP recovering. if this is not set but <skillVoice:filename> is set,
|
||||
* it plays <magicVoice:filename> setting file.
|
||||
* <magicVoice:filename> plays when actor spells magic(except for friend).
|
||||
* <skillVoice:filename> plays when actor uses special skill except magic.
|
||||
* <damageVoice:filename> plays when actor takes damage.
|
||||
* <defeatedVoice:filename> plays when actor is died.
|
||||
* <victoryVoice:filename> plays when battle finishes.
|
||||
* if plural actors attend the battle, randomly selected actor's SE is adopted.
|
||||
*
|
||||
* [Advanced option]
|
||||
* If you want to play one of several voices randomly,
|
||||
* write filenames with colon as follows:
|
||||
* <attackVoice:atk1,atk2,atk3>
|
||||
* in this case, at attack, plays atk1 atk2, or atk3 randomly.
|
||||
*
|
||||
|
||||
* [License]
|
||||
* this plugin is released under MIT license.
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc アクターの戦闘時の行動にボイスSEを設定します。(ver1.2)
|
||||
* @author 神無月サスケ
|
||||
*
|
||||
* @param pitch
|
||||
* @desc ボイスSEのピッチです。この設定が全てのボイスSEの共通となります。
|
||||
* @default 100
|
||||
*
|
||||
* @param volume
|
||||
* @desc ボイスSEのボリュームです。この設定が全てのボイスSEの共通となります。
|
||||
* @default 90
|
||||
*
|
||||
* @param Battle Voice Name at Option
|
||||
* @desc オプション画面での表示名です。
|
||||
* @default バトルボイス
|
||||
*
|
||||
* @param ON switch ID
|
||||
* @desc このスイッチが ON の時のみ、ボイスSEを演奏します。オプション「バトルボイス」と連動します。
|
||||
* @default 21
|
||||
*
|
||||
* @noteParam attackVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam recoverVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam friendMagicVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam magicVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam skillVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam damageVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam defeatedVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @noteParam victoryVoice
|
||||
* @noteRequire 1
|
||||
* @noteDir audio/se/
|
||||
* @noteType file
|
||||
* @noteData actors
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*
|
||||
* バトルボイスを戦闘中に演奏できます。
|
||||
* ゲーム中のオプション画面でON/OFFが可能です。
|
||||
*
|
||||
* ■メモ設定方法:
|
||||
* それぞれのアクターのメモに以下の書式で書いてください。
|
||||
* filename はボイスSEのファイル名にしてください。
|
||||
*
|
||||
* <attackVoice:filename> 通常攻撃の時に再生されるボイスです。
|
||||
* <recoverVoice:filename> HP回復魔法を使用した時に再生されるボイスです。
|
||||
* <friendMagicVoice:filename> HP回復以外の味方向け魔法を使用した時に
|
||||
* 再生されるボイスです。省略された場合で<magicVoice:filename>が
|
||||
* 設定されている場合は、そちらが再生されます。
|
||||
* <magicVoice:filename> 味方向け以外の魔法を使用した時に再生されるボイスです。
|
||||
* <skillVoice:filename> 必殺技を使用した時に再生されるボイスです。
|
||||
* <damageVoice:filename> ダメージを受けた時に再生されるボイスです。
|
||||
* <defeatedVoice:filename> 戦闘不能になった時に再生されるボイスです。
|
||||
* <victoryVoice:filename> 戦闘勝利時に再生されるボイスです。
|
||||
* アクターが複数いる場合は、生きているアクターの中からランダムで再生されます。
|
||||
*
|
||||
* ■拡張機能
|
||||
* 上記のメモのfilename を、コロンで複数指定すると、その中からランダムで
|
||||
* 再生されます。例えば、以下のように指定した場合、
|
||||
* <attackVoice:atk1,atk2,atk3>
|
||||
* atk1 atk2 atk3 のいずれかのボイスがランダムで再生されます。
|
||||
*
|
||||
* ■ライセンス表記
|
||||
* このプラグインは MIT ライセンスで配布されます。
|
||||
* ご自由にお使いください。
|
||||
* http://opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
(function () {
|
||||
|
||||
//
|
||||
// process parameters
|
||||
//
|
||||
var parameters = PluginManager.parameters('BattleVoice');
|
||||
var pitch = Number(parameters['pitch']) || 100;
|
||||
var volume = Number(parameters['volume']) || 90;
|
||||
var playSwitchId = Number(parameters['ON switch ID']) || 21;
|
||||
var strBattleVoice = parameters['Battle Voice Name at Option'] || 'バトルボイス';
|
||||
|
||||
AudioManager.createAudioByFileame = function (name) {
|
||||
var audio = {};
|
||||
audio.name = name;
|
||||
audio.pitch = pitch;
|
||||
audio.volume = volume;
|
||||
return audio;
|
||||
};
|
||||
|
||||
//
|
||||
// set play options (interlock with switch)
|
||||
//
|
||||
var doesDisplaySpecialOptions = function () {
|
||||
return !SceneManager.isPreviousScene(Scene_Title);
|
||||
};
|
||||
|
||||
var _Window_Options_makeCommandList =
|
||||
Window_Options.prototype.makeCommandList;
|
||||
Window_Options.prototype.makeCommandList = function () {
|
||||
if (doesDisplaySpecialOptions()) {
|
||||
this.addCommand(strBattleVoice, 'battleVoice');
|
||||
}
|
||||
_Window_Options_makeCommandList.call(this);
|
||||
};
|
||||
|
||||
var _Window_Options_getConfigValue = Window_Options.prototype.getConfigValue;
|
||||
Window_Options.prototype.getConfigValue = function (symbol) {
|
||||
switch (symbol) {
|
||||
case 'battleVoice':
|
||||
return $gameSwitches.value(playSwitchId);
|
||||
default:
|
||||
return _Window_Options_getConfigValue.call(this, symbol);
|
||||
}
|
||||
};
|
||||
|
||||
var _Window_Options_setConfigValue = Window_Options.prototype.setConfigValue;
|
||||
Window_Options.prototype.setConfigValue = function (symbol, volume) {
|
||||
switch (symbol) {
|
||||
case 'battleVoice':
|
||||
return $gameSwitches.setValue(playSwitchId, volume);
|
||||
default:
|
||||
return _Window_Options_setConfigValue.call(this, symbol, volume);
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// play actor voice
|
||||
//
|
||||
var canPlayActorVoice = function () {
|
||||
return $gameSwitches.value(playSwitchId);
|
||||
};
|
||||
|
||||
var split = function (name) {
|
||||
if (!name) {
|
||||
return name;
|
||||
}
|
||||
var names = name.split(',');
|
||||
return names[Math.randomInt(names.length)];
|
||||
};
|
||||
|
||||
|
||||
SoundManager.playActorVoice = function (actor, type) {
|
||||
if (!canPlayActorVoice()) {
|
||||
return;
|
||||
}
|
||||
var name = '';
|
||||
switch (type) {
|
||||
case 'attack':
|
||||
name = split(actor.meta.attackVoice);
|
||||
break;
|
||||
case 'recover':
|
||||
name = split(actor.meta.recoverVoice);
|
||||
break;
|
||||
case 'friendmagic':
|
||||
name = split(actor.meta.friendMagicVoice || actor.meta.magicVoice);
|
||||
break;
|
||||
case 'magic':
|
||||
name = split(actor.meta.magicVoice);
|
||||
break;
|
||||
case 'skill':
|
||||
name = split(actor.meta.skillVoice);
|
||||
break;
|
||||
case 'damage':
|
||||
name = split(actor.meta.damageVoice);
|
||||
break;
|
||||
case 'dead':
|
||||
name = split(actor.meta.defeatedVoice);
|
||||
break;
|
||||
case 'victory':
|
||||
name = split(actor.meta.victoryVoice);
|
||||
break;
|
||||
}
|
||||
if (name) {
|
||||
var audio = AudioManager.createAudioByFileame(name);
|
||||
AudioManager.playSe(audio);
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// functions for call actor voice.
|
||||
//
|
||||
var _Game_Actor_performAction = Game_Actor.prototype.performAction;
|
||||
Game_Actor.prototype.performAction = function (action) {
|
||||
_Game_Actor_performAction.call(this, action);
|
||||
if (action.isAttack()) {
|
||||
SoundManager.playActorVoice(this.actor(), 'attack');
|
||||
} else if (action.isMagicSkill() && action.isHpRecover()) {
|
||||
SoundManager.playActorVoice(this.actor(), 'recover');
|
||||
} else if (action.isMagicSkill() && action.isForFriend()) {
|
||||
SoundManager.playActorVoice(this.actor(), 'friendmagic');
|
||||
} else if (action.isMagicSkill()) {
|
||||
SoundManager.playActorVoice(this.actor(), 'magic');
|
||||
} else if (action.isSkill() && !action.isGuard()) {
|
||||
SoundManager.playActorVoice(this.actor(), 'skill');
|
||||
}
|
||||
};
|
||||
|
||||
var _Game_Actor_performDamage = Game_Actor.prototype.performDamage;
|
||||
Game_Actor.prototype.performDamage = function () {
|
||||
_Game_Actor_performDamage.call(this);
|
||||
SoundManager.playActorVoice(this.actor(), 'damage');
|
||||
};
|
||||
|
||||
var _Game_Actor_performCollapse = Game_Actor.prototype.performCollapse;
|
||||
Game_Actor.prototype.performCollapse = function () {
|
||||
_Game_Actor_performCollapse.call(this);
|
||||
if ($gameParty.inBattle()) {
|
||||
SoundManager.playActorVoice(this.actor(), 'dead');
|
||||
}
|
||||
};
|
||||
|
||||
var _BattleManager_processVictory = BattleManager.processVictory;
|
||||
BattleManager.processVictory = function () {
|
||||
var index = Math.randomInt($gameParty.aliveMembers().length);
|
||||
var actor = $gameParty.aliveMembers()[index].actor();
|
||||
SoundManager.playActorVoice(actor, 'victory');
|
||||
_BattleManager_processVictory.call(this);
|
||||
};
|
||||
|
||||
})();
|
||||
137
www/js/plugins/Community_Basic.js
Normal file
137
www/js/plugins/Community_Basic.js
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
/*:
|
||||
* @plugindesc Plugin used to set basic parameters.
|
||||
* @author RM CoreScript team
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* @param cacheLimit
|
||||
* @desc For setting the upper limit of image memory cache. (MPix)
|
||||
* @default 10
|
||||
*
|
||||
* @param screenWidth
|
||||
* @desc For setting the screen width.
|
||||
* @default 816
|
||||
*
|
||||
* @param screenHeight
|
||||
* @desc For setting the screen height.
|
||||
* @default 624
|
||||
*
|
||||
* @param changeWindowWidthTo
|
||||
* @desc If set, change window width to this value
|
||||
*
|
||||
* @param changeWindowHeightTo
|
||||
* @desc If set, change window height to this value
|
||||
*
|
||||
* @param renderingMode
|
||||
* @desc Rendering mode (canvas/webgl/auto)
|
||||
* @default auto
|
||||
*
|
||||
* @param alwaysDash
|
||||
* @desc To set initial value as to whether the player always dashes. (on/off)
|
||||
* @default off
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc 基本的なパラメーターを設定するプラグインです。
|
||||
* @author RM CoreScript team
|
||||
*
|
||||
* @help このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* @param cacheLimit
|
||||
* @desc 画像のメモリへのキャッシュの上限値 (MPix)
|
||||
* @default 10
|
||||
*
|
||||
* @param screenWidth
|
||||
* @desc 画面サイズの幅
|
||||
* @default 816
|
||||
*
|
||||
* @param screenHeight
|
||||
* @desc 画面サイズの高さ
|
||||
* @default 624
|
||||
*
|
||||
* @param changeWindowWidthTo
|
||||
* @desc 値が設定された場合、ウインドウの幅を指定した値に変更
|
||||
*
|
||||
* @param changeWindowHeightTo
|
||||
* @desc 値が設定された場合、ウインドウの高さを指定した値に変更
|
||||
*
|
||||
* @param renderingMode
|
||||
* @desc レンダリングモード (canvas/webgl/auto)
|
||||
* @default auto
|
||||
*
|
||||
* @param alwaysDash
|
||||
* @desc プレイヤーが常時ダッシュするかどうかの初期値 (on/off)
|
||||
* @default off
|
||||
*/
|
||||
|
||||
(function () {
|
||||
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 _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);
|
||||
}
|
||||
};
|
||||
})();
|
||||
1373
www/js/plugins/DirectlyAttackEffect.js
Normal file
1373
www/js/plugins/DirectlyAttackEffect.js
Normal file
File diff suppressed because it is too large
Load diff
59
www/js/plugins/EnemyAnimetion.js
Normal file
59
www/js/plugins/EnemyAnimetion.js
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
//=============================================================================
|
||||
// Sprite_Enemy メソッド拡張
|
||||
//=============================================================================
|
||||
Sprite_Enemy.prototype.initMembers = function () {
|
||||
Sprite_Battler.prototype.initMembers.call(this);
|
||||
this._enemy = null;
|
||||
this._appeared = false;
|
||||
this._battlerName = '';
|
||||
this._battlerHue = 0;
|
||||
this._effectType = null;
|
||||
this._effectDuration = 0;
|
||||
this._shake = 0;
|
||||
this._spriteCnt = 1;
|
||||
this._sleepCnt = 0;
|
||||
this.createStateIconSprite();
|
||||
};
|
||||
|
||||
Sprite_Enemy.prototype.updateBitmap = function () {
|
||||
Sprite_Battler.prototype.updateBitmap.call(this);
|
||||
var enemy = $dataEnemies[this._enemy._enemyId];
|
||||
var name = this._enemy.battlerName();
|
||||
var hue = this._enemy.battlerHue();
|
||||
if (this._battlerName !== name || this._battlerHue !== hue || (enemy.meta.animetion && enemy.meta.baseName)) {
|
||||
if (enemy.meta.animetion && enemy.meta.baseName) {
|
||||
if (this._sleepCnt > 5) {
|
||||
this._spriteCnt = enemy.meta.animetion > this._spriteCnt ? ++this._spriteCnt : 1;
|
||||
this._sleepCnt = 0;
|
||||
} else {
|
||||
this._sleepCnt++;
|
||||
}
|
||||
var baseNm = enemy.meta.baseName;
|
||||
name = baseNm + this._spriteCnt;
|
||||
}
|
||||
this._battlerName = name;
|
||||
this._battlerHue = hue;
|
||||
this.loadBitmap(name, hue);
|
||||
/* ここをコメントアウトでアニメーションしながら消えるアニメーションが行われるようになったけどなぜかよくわかってない← */
|
||||
//this.initVisibility();
|
||||
}
|
||||
};
|
||||
|
||||
Sprite_Enemy.prototype.setBattler = function (battler) {
|
||||
Sprite_Battler.prototype.setBattler.call(this, battler);
|
||||
this._enemy = battler;
|
||||
this.initLoadPictures();
|
||||
this.setHome(battler.screenX(), battler.screenY());
|
||||
this._stateIconSprite.setup(battler);
|
||||
};
|
||||
|
||||
Sprite_Enemy.prototype.initLoadPictures = function () {
|
||||
var enemy = $dataEnemies[this._enemy._enemyId];
|
||||
if (enemy.meta.animetion && enemy.meta.baseName) {
|
||||
for (var i = 1; i <= enemy.meta.animetion; i++) {
|
||||
var baseNm = enemy.meta.baseName;
|
||||
var name = baseNm + i;
|
||||
this.loadBitmap(name, this._enemy.battlerHue());
|
||||
}
|
||||
}
|
||||
};
|
||||
347
www/js/plugins/EnemyBook.js
Normal file
347
www/js/plugins/EnemyBook.js
Normal file
|
|
@ -0,0 +1,347 @@
|
|||
//=============================================================================
|
||||
// EnemyBook.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Displays detailed statuses of enemies.
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Unknown Data
|
||||
* @desc The index name for an unknown enemy.
|
||||
* @default ??????
|
||||
*
|
||||
* @help
|
||||
*
|
||||
* Plugin Command:
|
||||
* EnemyBook open # Open the enemy book screen
|
||||
* EnemyBook add 3 # Add enemy #3 to the enemy book
|
||||
* EnemyBook remove 4 # Remove enemy #4 from the enemy book
|
||||
* EnemyBook complete # Complete the enemy book
|
||||
* EnemyBook clear # Clear the enemy book
|
||||
*
|
||||
* Enemy Note:
|
||||
* <desc1:foobar> # Description text in the enemy book, line 1
|
||||
* <desc2:blahblah> # Description text in the enemy book, line 2
|
||||
* <book:no> # This enemy does not appear in the enemy book
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc モンスター図鑑です。敵キャラの詳細なステータスを表示します。
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Unknown Data
|
||||
* @desc 未確認の敵キャラの索引名です。
|
||||
* @default ??????
|
||||
*
|
||||
* @help
|
||||
*
|
||||
* プラグインコマンド:
|
||||
* EnemyBook open # 図鑑画面を開く
|
||||
* EnemyBook add 3 # 敵キャラ3番を図鑑に追加
|
||||
* EnemyBook remove 4 # 敵キャラ4番を図鑑から削除
|
||||
* EnemyBook complete # 図鑑を完成させる
|
||||
* EnemyBook clear # 図鑑をクリアする
|
||||
*
|
||||
* 敵キャラのメモ:
|
||||
* <desc1:なんとか> # 説明1行目
|
||||
* <desc2:かんとか> # 説明2行目
|
||||
* <book:no> # 図鑑に載せない場合
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
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.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.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_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);
|
||||
};
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
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);
|
||||
};
|
||||
|
||||
})();
|
||||
41
www/js/plugins/EnemySlideIn.js
Normal file
41
www/js/plugins/EnemySlideIn.js
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*:
|
||||
* @plugindesc プレイヤーだけでなく敵もスライドインするようになります。
|
||||
* @author Lib
|
||||
*
|
||||
* @param slideinSpeed
|
||||
* @desc スライドインする速度(数値が大きいほど遅い)
|
||||
* 初期値: 16
|
||||
* @default 16
|
||||
*
|
||||
* @help
|
||||
* プラグインコマンドはありません。
|
||||
* キャラの登場移動が少しだけ早くなります。
|
||||
*
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
var parameters = PluginManager.parameters('EnemySlideIn');
|
||||
Sprite_Actor.slideinSpeed = eval(String(parameters['slideinSpeed']));
|
||||
Sprite_Enemy.slideinSpeed = eval(String(parameters['slideinSpeed']));
|
||||
|
||||
Sprite_Actor.prototype.startEntryMotion = function () {
|
||||
if (this._actor && this._actor.canMove()) {
|
||||
this.startMotion('walk');
|
||||
this.startMove(0, 0, Sprite_Actor.slideinSpeed);
|
||||
} else if (!this.isMoving()) {
|
||||
this.refreshMotion();
|
||||
this.startMove(0, 0, 0);
|
||||
};
|
||||
};
|
||||
|
||||
var _Sprite_Enemy_prototype_setBattler = Sprite_Enemy.prototype.setBattler
|
||||
Sprite_Enemy.prototype.setBattler = function (battler) {
|
||||
_Sprite_Enemy_prototype_setBattler.call(this, battler);
|
||||
if ($gameSystem.isSideView()) {
|
||||
this._offsetX = -Graphics.boxWidth; //スクリーンサイズによって差が出るのはよくない?
|
||||
this.startMove(0, 0, Sprite_Enemy.slideinSpeed); //差分動く
|
||||
};
|
||||
};
|
||||
|
||||
})();
|
||||
997
www/js/plugins/ExtendsExp.js
Normal file
997
www/js/plugins/ExtendsExp.js
Normal file
|
|
@ -0,0 +1,997 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
< !DOCTYPE html >
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link rel="dns-prefetch" href="https://github.githubassets.com">
|
||||
<link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
|
||||
<link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
|
||||
<link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
|
||||
<link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
|
||||
<link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
|
||||
<link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
|
||||
|
||||
|
||||
|
||||
<link crossorigin="anonymous" media="all" integrity="sha512-hddDYPWR0gBbqLRmIZP242WMEiYsVkYI2UCYCVUHB4h5DhD2cbtFJYG+HPh21dZGb+sbgDHxQBNJCBq7YbmlBQ==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-02a3eaa24db2bd1ed9b64450595fc2cf.css" />
|
||||
<link crossorigin="anonymous" media="all" integrity="sha512-8BxpFTogSyEi7yQb7rCnH1J/gTxVdHNk1Rrg92rh2zMf++XM8Us8Pcp+5GzjxqRxkax0Ckz52LufuEGch2uE7w==" rel="stylesheet" href="https://github.githubassets.com/assets/site-1faffb77dc8b20778aa60ecb5998972e.css" />
|
||||
<link crossorigin="anonymous" media="all" integrity="sha512-Fr8GYcjC9Pwm6dQmefd4vXX2fXl7gylXrhSo2aMCxM0Ilrme82PXVtfHOzcnvR9vUmfvO8t8XVmNxW1FRnoYSg==" rel="stylesheet" href="https://github.githubassets.com/assets/github-8f8f40cebc9aea61f6dac776b58ccad9.css" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width">
|
||||
|
||||
<title>RpgMakerMvScripts/ExtendsExp.js at master · jiro4989/RpgMakerMvScripts · GitHub</title>
|
||||
<meta name="description" content="RPGツクールMVのプラグインやスクリプトなど。(Javascript). Contribute to jiro4989/RpgMakerMvScripts development by creating an account on GitHub.">
|
||||
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
|
||||
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
|
||||
<meta property="fb:app_id" content="1401488693436528">
|
||||
|
||||
<meta name="twitter:image:src" content="https://avatars2.githubusercontent.com/u/13825004?s=400&v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="jiro4989/RpgMakerMvScripts" /><meta name="twitter:description" content="RPGツクールMVのプラグインやスクリプトなど。(Javascript). Contribute to jiro4989/RpgMakerMvScripts development by creating an account on GitHub." />
|
||||
<meta property="og:image" content="https://avatars2.githubusercontent.com/u/13825004?s=400&v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="jiro4989/RpgMakerMvScripts" /><meta property="og:url" content="https://github.com/jiro4989/RpgMakerMvScripts" /><meta property="og:description" content="RPGツクールMVのプラグインやスクリプトなど。(Javascript). Contribute to jiro4989/RpgMakerMvScripts development by creating an account on GitHub." />
|
||||
|
||||
<link rel="assets" href="https://github.githubassets.com/">
|
||||
|
||||
|
||||
|
||||
<meta name="request-id" content="CDFA:2FED:1F8593D:2DEF2EB:5E10D772" data-pjax-transient>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="selected-link" value="repo_source" data-pjax-transient>
|
||||
|
||||
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
|
||||
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
|
||||
<meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
|
||||
|
||||
<meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="CDFA:2FED:1F8593D:2DEF2EB:5E10D772" /><meta name="octolytics-dimension-region_edge" content="ap-northeast-1" /><meta name="octolytics-dimension-region_render" content="iad" /><meta name="octolytics-dimension-ga_id" content="" class="js-octo-ga-id" /><meta name="octolytics-dimension-visitor_id" content="5748006672851961788" />
|
||||
|
||||
<meta name="analytics-location" content="/<user-name>/<repo-name>/blob/show" data-pjax-transient="true" />
|
||||
|
||||
|
||||
|
||||
<meta name="google-analytics" content="UA-3769691-2">
|
||||
|
||||
|
||||
<meta class="js-ga-set" name="dimension1" content="Logged Out">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="hostname" content="github.com">
|
||||
<meta name="user-login" content="">
|
||||
|
||||
<meta name="expected-hostname" content="github.com">
|
||||
|
||||
<meta name="js-proxy-site-detection-payload" content="YTFmMGQ3ODE4ODEzOTQ2M2I1ZWFkMTdiMTFkYzA2Nzk4N2QzOTgwMzYzNTVhMmM4MTkyY2FiNzMxNDQxZGQ1Znx7InJlbW90ZV9hZGRyZXNzIjoiNjAuMTI3LjE0Ni44MyIsInJlcXVlc3RfaWQiOiJDREZBOjJGRUQ6MUY4NTkzRDoyREVGMkVCOjVFMTBENzcyIiwidGltZXN0YW1wIjoxNTc4MTYyMDM1LCJob3N0IjoiZ2l0aHViLmNvbSJ9">
|
||||
|
||||
<meta name="enabled-features" content="MARKETPLACE_FEATURED_BLOG_POSTS,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS,MARKETPLACE_PENDING_INSTALLATIONS">
|
||||
|
||||
<meta name="html-safe-nonce" content="b1264eec672f166598745b920fb56964be24dbb5">
|
||||
|
||||
<meta http-equiv="x-pjax-version" content="f603fb087583c1a6811f39fc57b1f446">
|
||||
|
||||
|
||||
<link href="https://github.com/jiro4989/RpgMakerMvScripts/commits/master.atom" rel="alternate" title="Recent Commits to RpgMakerMvScripts:master" type="application/atom+xml">
|
||||
|
||||
<meta name="go-import" content="github.com/jiro4989/RpgMakerMvScripts git https://github.com/jiro4989/RpgMakerMvScripts.git">
|
||||
|
||||
<meta name="octolytics-dimension-user_id" content="13825004" /><meta name="octolytics-dimension-user_login" content="jiro4989" /><meta name="octolytics-dimension-repository_id" content="55820253" /><meta name="octolytics-dimension-repository_nwo" content="jiro4989/RpgMakerMvScripts" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="55820253" /><meta name="octolytics-dimension-repository_network_root_nwo" content="jiro4989/RpgMakerMvScripts" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
|
||||
|
||||
|
||||
<link rel="canonical" href="https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js" data-pjax-transient>
|
||||
|
||||
|
||||
<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
|
||||
|
||||
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
|
||||
|
||||
<link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
|
||||
<link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://github.githubassets.com/favicon.ico">
|
||||
|
||||
<meta name="theme-color" content="#1e2327">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
|
||||
|
||||
</head>
|
||||
|
||||
<body class="logged-out env-production page-responsive page-blob">
|
||||
|
||||
|
||||
<div class="position-relative js-header-wrapper ">
|
||||
<a href="#start-of-content" tabindex="1" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
|
||||
<span class="Progress progress-pjax-loader position-fixed width-full js-pjax-loader-bar">
|
||||
<span class="progress-pjax-loader-bar top-0 left-0" style="width: 0%;"></span>
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="Header-old header-logged-out js-details-container Details position-relative f4 py-2" role="banner">
|
||||
<div class="container-lg d-lg-flex flex-items-center p-responsive">
|
||||
<div class="d-flex flex-justify-between flex-items-center">
|
||||
<a class="mr-4" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
|
||||
<svg height="32" class="octicon octicon-mark-github text-white" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" /></svg>
|
||||
</a>
|
||||
|
||||
<div class="d-lg-none css-truncate css-truncate-target width-fit p-2">
|
||||
|
||||
<svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z" /></svg>
|
||||
<a class="Header-link" href="/jiro4989">jiro4989</a>
|
||||
/
|
||||
<a class="Header-link" href="/jiro4989/RpgMakerMvScripts">RpgMakerMvScripts</a>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-items-center">
|
||||
<a href="/join?source=header-repo"
|
||||
class="d-inline-block d-lg-none f5 text-white no-underline border border-gray-dark rounded-2 px-2 py-1 mr-3 mr-sm-5"
|
||||
data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header","repository_id":null,"auth_type":"SIGN_UP","client_id":"1338312093.1575651260","originating_request_id":"CDFA:2FED:1F8593D:2DEF2EB:5E10D772","originating_url":"https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js","referrer":"http://ashelter.blog.fc2.com/","user_id":null}}" data-hydro-click-hmac="8ed654d9a8c8a92b6af1dbc4a41714c3c1dcd127c253de7e1e2ae42dcf91dae8"
|
||||
data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">
|
||||
Sign up
|
||||
</a>
|
||||
|
||||
<button class="btn-link d-lg-none mt-1 js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
|
||||
<svg height="24" class="octicon octicon-three-bars text-white" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z" /></svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="HeaderMenu HeaderMenu--logged-out position-fixed top-0 right-0 bottom-0 height-fit position-lg-relative d-lg-flex flex-justify-between flex-items-center flex-auto">
|
||||
<div class="d-flex d-lg-none flex-justify-end border-bottom bg-gray-light p-3">
|
||||
<button class="btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
|
||||
<svg height="24" class="octicon octicon-x text-gray" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z" /></svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<nav class="mt-0 px-3 px-lg-0 mb-5 mb-lg-0" aria-label="Global">
|
||||
<ul class="d-lg-flex list-style-none">
|
||||
<li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
|
||||
<details class="HeaderMenu-details details-overlay details-reset width-full">
|
||||
<summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
|
||||
Why GitHub?
|
||||
<svg x="0px" y="0px" viewBox="0 0 14 8" xml: space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
|
||||
<path d="M1,1l6.2,6L13,1"></path>
|
||||
</svg>
|
||||
</summary>
|
||||
<div class="dropdown-menu flex-auto rounded-1 bg-white px-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
|
||||
<a href="/features" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a>
|
||||
<ul class="list-style-none f5 pb-3">
|
||||
<li class="edge-item-fix"><a href="/features/code-review/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code review">Code review</a></li>
|
||||
<li class="edge-item-fix"><a href="/features/project-management/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Project management">Project management</a></li>
|
||||
<li class="edge-item-fix"><a href="/features/integrations" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Integrations">Integrations</a></li>
|
||||
<li class="edge-item-fix"><a href="/features/actions" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Actions">Actions</a></li>
|
||||
<li class="edge-item-fix"><a href="/features/packages" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Packages">Packages</a></li>
|
||||
<li class="edge-item-fix"><a href="/features/security" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Security">Security</a></li>
|
||||
<li class="edge-item-fix"><a href="/features#team-management" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Team management">Team management</a></li>
|
||||
<li class="edge-item-fix"><a href="/features#hosting" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code hosting">Hosting</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class="list-style-none mb-0 border-lg-top pt-lg-3">
|
||||
<li class="edge-item-fix"><a href="/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
|
||||
<li class="edge-item-fix"><a href="/security" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
</li>
|
||||
<li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3">
|
||||
<a href="/enterprise" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Enterprise">Enterprise</a>
|
||||
</li>
|
||||
|
||||
<li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
|
||||
<details class="HeaderMenu-details details-overlay details-reset width-full">
|
||||
<summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
|
||||
Explore
|
||||
<svg x="0px" y="0px" viewBox="0 0 14 8" xml: space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
|
||||
<path d="M1,1l6.2,6L13,1"></path>
|
||||
</svg>
|
||||
</summary>
|
||||
|
||||
<div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
|
||||
<ul class="list-style-none mb-3">
|
||||
<li class="edge-item-fix"><a href="/explore" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
|
||||
</ul>
|
||||
|
||||
<h4 class="text-gray-light text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Learn & contribute</h4>
|
||||
<ul class="list-style-none mb-3">
|
||||
<li class="edge-item-fix"><a href="/topics" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Topics">Topics</a></li>
|
||||
<li class="edge-item-fix"><a href="/collections" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Collections">Collections</a></li>
|
||||
<li class="edge-item-fix"><a href="/trending" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Trending">Trending</a></li>
|
||||
<li class="edge-item-fix"><a href="https://lab.github.com/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Learning lab">Learning Lab</a></li>
|
||||
<li class="edge-item-fix"><a href="https://opensource.guide" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Open source guides">Open source guides</a></li>
|
||||
</ul>
|
||||
|
||||
<h4 class="text-gray-light text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Connect with others</h4>
|
||||
<ul class="list-style-none mb-0">
|
||||
<li class="edge-item-fix"><a href="https://github.com/events" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Events">Events</a></li>
|
||||
<li class="edge-item-fix"><a href="https://github.community" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Community forum">Community forum</a></li>
|
||||
<li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Education">GitHub Education</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
</li>
|
||||
|
||||
<li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3">
|
||||
<a href="/marketplace" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Marketplace">Marketplace</a>
|
||||
</li>
|
||||
|
||||
<li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
|
||||
<details class="HeaderMenu-details details-overlay details-reset width-full">
|
||||
<summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
|
||||
Pricing
|
||||
<svg x="0px" y="0px" viewBox="0 0 14 8" xml: space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
|
||||
<path d="M1,1l6.2,6L13,1"></path>
|
||||
</svg>
|
||||
</summary>
|
||||
|
||||
<div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-4 mt-0 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
|
||||
<a href="/pricing" class="pb-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a>
|
||||
|
||||
<ul class="list-style-none mb-3">
|
||||
<li class="edge-item-fix"><a href="/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Compare plans">Compare plans</a></li>
|
||||
<li class="edge-item-fix"><a href="https://enterprise.github.com/contact" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Contact Sales">Contact Sales</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class="list-style-none mb-0 border-lg-top pt-lg-3">
|
||||
<li class="edge-item-fix"><a href="/nonprofit" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
|
||||
<li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal text-gray-light">→</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div class="d-lg-flex flex-items-center px-3 px-lg-0 text-center text-lg-left">
|
||||
<div class="d-lg-flex mb-3 mb-lg-0">
|
||||
<div class="header-search flex-self-stretch flex-lg-self-auto mr-0 mr-lg-3 mb-3 mb-lg-0 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
|
||||
role="combobox"
|
||||
aria-owns="jump-to-results"
|
||||
aria-label="Search or jump to"
|
||||
aria-haspopup="listbox"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<div class="position-relative">
|
||||
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="55820253" data-scoped-search-url="/jiro4989/RpgMakerMvScripts/search" data-unscoped-search-url="/search" action="/jiro4989/RpgMakerMvScripts/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
|
||||
<label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
|
||||
<input type="text"
|
||||
class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
|
||||
data-hotkey="s,/"
|
||||
name="q"
|
||||
value=""
|
||||
placeholder="Search"
|
||||
data-unscoped-placeholder="Search GitHub"
|
||||
data-scoped-placeholder="Search"
|
||||
autocapitalize="off"
|
||||
aria-autocomplete="list"
|
||||
aria-controls="jump-to-results"
|
||||
aria-label="Search"
|
||||
data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=5m6DeDzJhaVAQWYuFELEWgJ/8O9gXZWr69DBKGRJPzH1TmSjzCZD4CVDRVdrg98FvalJJGVNt3iVFmI3Zkn0dw=="
|
||||
spellcheck="false"
|
||||
autocomplete="off"
|
||||
>
|
||||
<input type="hidden" class="js-site-search-type-field" name="type" >
|
||||
<img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">
|
||||
|
||||
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
|
||||
|
||||
<ul class="d-none js-jump-to-suggestions-template-container">
|
||||
|
||||
|
||||
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
|
||||
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
|
||||
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
|
||||
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z" /></svg>
|
||||
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z" /></svg>
|
||||
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z" /></svg>
|
||||
</div>
|
||||
|
||||
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
|
||||
|
||||
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
|
||||
</div>
|
||||
|
||||
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
|
||||
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
|
||||
In this repository
|
||||
</span>
|
||||
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
|
||||
All GitHub
|
||||
</span>
|
||||
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
|
||||
</div>
|
||||
|
||||
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
|
||||
Jump to
|
||||
<span class="d-inline-block ml-1 v-align-middle">↵</span>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<ul class="d-none js-jump-to-no-results-template-container">
|
||||
<li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
|
||||
<span class="text-gray">No suggested jump to results</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
|
||||
|
||||
|
||||
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
|
||||
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
|
||||
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
|
||||
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z" /></svg>
|
||||
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z" /></svg>
|
||||
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z" /></svg>
|
||||
</div>
|
||||
|
||||
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
|
||||
|
||||
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
|
||||
</div>
|
||||
|
||||
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
|
||||
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
|
||||
In this repository
|
||||
</span>
|
||||
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
|
||||
All GitHub
|
||||
</span>
|
||||
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
|
||||
</div>
|
||||
|
||||
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
|
||||
Jump to
|
||||
<span class="d-inline-block ml-1 v-align-middle">↵</span>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
|
||||
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
|
||||
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
|
||||
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z" /></svg>
|
||||
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z" /></svg>
|
||||
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z" /></svg>
|
||||
</div>
|
||||
|
||||
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
|
||||
|
||||
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
|
||||
</div>
|
||||
|
||||
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
|
||||
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
|
||||
In this repository
|
||||
</span>
|
||||
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
|
||||
All GitHub
|
||||
</span>
|
||||
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
|
||||
</div>
|
||||
|
||||
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
|
||||
Jump to
|
||||
<span class="d-inline-block ml-1 v-align-middle">↵</span>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</label>
|
||||
</form> </div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<a href="/login?return_to=%2Fjiro4989%2FRpgMakerMvScripts%2Fblob%2Fmaster%2FPlugin%2FExtendsExp.js"
|
||||
class="HeaderMenu-link no-underline mr-3"
|
||||
data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","client_id":"1338312093.1575651260","originating_request_id":"CDFA:2FED:1F8593D:2DEF2EB:5E10D772","originating_url":"https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js","referrer":"http://ashelter.blog.fc2.com/","user_id":null}}" data-hydro-click-hmac="f42cbd915e302a8b05689bfd28b6f7c759e41cccb1c4c0d3db75f7ad4fc19906"
|
||||
data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">
|
||||
Sign in
|
||||
</a>
|
||||
<a href="/join?source=header-repo&source_repo=jiro4989%2FRpgMakerMvScripts"
|
||||
class="HeaderMenu-link d-inline-block no-underline border border-gray-dark rounded-1 px-2 py-1"
|
||||
data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"site header menu","repository_id":null,"auth_type":"SIGN_UP","client_id":"1338312093.1575651260","originating_request_id":"CDFA:2FED:1F8593D:2DEF2EB:5E10D772","originating_url":"https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js","referrer":"http://ashelter.blog.fc2.com/","user_id":null}}" data-hydro-click-hmac="f42cbd915e302a8b05689bfd28b6f7c759e41cccb1c4c0d3db75f7ad4fc19906"
|
||||
data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">
|
||||
Sign up
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="start-of-content" class="show-on-focus"></div>
|
||||
|
||||
|
||||
<div id="js-flash-container">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="application-main " data-commit-hovercards-enabled>
|
||||
<div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
|
||||
<main >
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" pagehead repohead readability-menu experiment-repo-nav pt-0 pt-lg-4 ">
|
||||
<div class="repohead-details-container clearfix container-lg p-responsive d-none d-lg-block">
|
||||
|
||||
<ul class="pagehead-actions">
|
||||
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
|
||||
<a class="tooltipped tooltipped-s btn btn-sm btn-with-count" aria-label="You must be signed in to watch a repository" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"notification subscription menu watch","repository_id":null,"auth_type":"LOG_IN","client_id":"1338312093.1575651260","originating_request_id":"CDFA:2FED:1F8593D:2DEF2EB:5E10D772","originating_url":"https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js","referrer":"http://ashelter.blog.fc2.com/","user_id":null}}" data-hydro-click-hmac="94c201af58e243112c9e3270ca472c180cb0dae82b10bbf328fc8e83bcd9f877" href="/login?return_to=%2Fjiro4989%2FRpgMakerMvScripts">
|
||||
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z" /></svg>
|
||||
Watch
|
||||
</a> <a class="social-count" href="/jiro4989/RpgMakerMvScripts/watchers"
|
||||
aria-label="1 user is watching this repository">
|
||||
1
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"star button","repository_id":55820253,"auth_type":"LOG_IN","client_id":"1338312093.1575651260","originating_request_id":"CDFA:2FED:1F8593D:2DEF2EB:5E10D772","originating_url":"https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js","referrer":"http://ashelter.blog.fc2.com/","user_id":null}}" data-hydro-click-hmac="256f9883bd73217b1dba484be19ee8a19cf4163b7e6a15d8dbe48b7e353997a3" href="/login?return_to=%2Fjiro4989%2FRpgMakerMvScripts">
|
||||
<svg aria-label="star" height="16" class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" role="img"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z" /></svg>
|
||||
|
||||
Star
|
||||
</a>
|
||||
<a class="social-count js-social-count" href="/jiro4989/RpgMakerMvScripts/stargazers"
|
||||
aria-label="0 users starred this repository">
|
||||
0
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to fork a repository" rel="nofollow" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"repo details fork button","repository_id":55820253,"auth_type":"LOG_IN","client_id":"1338312093.1575651260","originating_request_id":"CDFA:2FED:1F8593D:2DEF2EB:5E10D772","originating_url":"https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js","referrer":"http://ashelter.blog.fc2.com/","user_id":null}}" data-hydro-click-hmac="30bcf368ec290d633de4d1e4827e9a3dad762202b408e2d384bd1c2d33ad7e7a" href="/login?return_to=%2Fjiro4989%2FRpgMakerMvScripts">
|
||||
<svg class="octicon octicon-repo-forked v-align-text-bottom" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 00-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 002 1a1.993 1.993 0 00-1 3.72V6.5l3 3v1.78A1.993 1.993 0 005 15a1.993 1.993 0 001-3.72V9.5l3-3V4.72A1.993 1.993 0 008 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z" /></svg>
|
||||
Fork
|
||||
</a>
|
||||
<a href="/jiro4989/RpgMakerMvScripts/network/members" class="social-count"
|
||||
aria-label="1 user forked this repository">
|
||||
1
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h1 class="public ">
|
||||
<svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z" /></svg>
|
||||
<span class="author" itemprop="author"><a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/jiro4989/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/jiro4989">jiro4989</a></span><!--
|
||||
--><span class="path-divider">/</span><!--
|
||||
--><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/jiro4989/RpgMakerMvScripts">RpgMakerMvScripts</a></strong>
|
||||
|
||||
|
||||
</h1>
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="hx_reponav reponav js-repo-nav js-sidenav-container-pjax container-lg p-responsive d-none d-lg-block"
|
||||
itemscope
|
||||
itemtype="http://schema.org/BreadcrumbList"
|
||||
aria-label="Repository"
|
||||
data-pjax="#js-repo-pjax-container">
|
||||
|
||||
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||
<a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /jiro4989/RpgMakerMvScripts" href="/jiro4989/RpgMakerMvScripts">
|
||||
<div class="d-inline"><svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z" /></svg></div>
|
||||
<span itemprop="name">Code</span>
|
||||
<meta itemprop="position" content="1">
|
||||
</a> </span>
|
||||
|
||||
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||
<a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /jiro4989/RpgMakerMvScripts/issues" href="/jiro4989/RpgMakerMvScripts/issues">
|
||||
<div class="d-inline"><svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z" /></svg></div>
|
||||
<span itemprop="name">Issues</span>
|
||||
<span class="Counter">0</span>
|
||||
<meta itemprop="position" content="2">
|
||||
</a> </span>
|
||||
|
||||
|
||||
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||
<a data-hotkey="g p" data-skip-pjax="true" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /jiro4989/RpgMakerMvScripts/pulls" href="/jiro4989/RpgMakerMvScripts/pulls">
|
||||
<div class="d-inline"><svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0010 15a1.993 1.993 0 001-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v6.56A1.993 1.993 0 002 15a1.993 1.993 0 001-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z" /></svg></div>
|
||||
<span itemprop="name">Pull requests</span>
|
||||
<span class="Counter">0</span>
|
||||
<meta itemprop="position" content="4">
|
||||
</a> </span>
|
||||
|
||||
|
||||
<a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /jiro4989/RpgMakerMvScripts/projects" href="/jiro4989/RpgMakerMvScripts/projects">
|
||||
<div class="d-inline"><svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z" /></svg></div>
|
||||
Projects
|
||||
<span class="Counter" >0</span>
|
||||
</a>
|
||||
|
||||
|
||||
<a data-skip-pjax="true" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy code_scanning /jiro4989/RpgMakerMvScripts/security/advisories" href="/jiro4989/RpgMakerMvScripts/security/advisories">
|
||||
<div class="d-inline"><svg class="octicon octicon-shield" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 2l7-2 7 2v6.02C14 12.69 8.69 16 7 16c-1.69 0-7-3.31-7-7.98V2zm1 .75L7 1l6 1.75v5.268C13 12.104 8.449 15 7 15c-1.449 0-6-2.896-6-6.982V2.75zm1 .75L7 2v12c-1.207 0-5-2.482-5-5.985V3.5z" /></svg></div>
|
||||
Security
|
||||
</a>
|
||||
<a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse people /jiro4989/RpgMakerMvScripts/pulse" href="/jiro4989/RpgMakerMvScripts/pulse">
|
||||
<div class="d-inline"><svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z" /></svg></div>
|
||||
Insights
|
||||
</a>
|
||||
|
||||
</nav>
|
||||
|
||||
<div class="reponav-wrapper reponav-small d-lg-none">
|
||||
<nav class="reponav js-reponav text-center no-wrap"
|
||||
itemscope
|
||||
itemtype="http://schema.org/BreadcrumbList">
|
||||
|
||||
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||
<a class="js-selected-navigation-item selected reponav-item" itemprop="url" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /jiro4989/RpgMakerMvScripts" href="/jiro4989/RpgMakerMvScripts">
|
||||
<span itemprop="name">Code</span>
|
||||
<meta itemprop="position" content="1">
|
||||
</a> </span>
|
||||
|
||||
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /jiro4989/RpgMakerMvScripts/issues" href="/jiro4989/RpgMakerMvScripts/issues">
|
||||
<span itemprop="name">Issues</span>
|
||||
<span class="Counter">0</span>
|
||||
<meta itemprop="position" content="2">
|
||||
</a> </span>
|
||||
|
||||
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /jiro4989/RpgMakerMvScripts/pulls" href="/jiro4989/RpgMakerMvScripts/pulls">
|
||||
<span itemprop="name">Pull requests</span>
|
||||
<span class="Counter">0</span>
|
||||
<meta itemprop="position" content="3">
|
||||
</a> </span>
|
||||
|
||||
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /jiro4989/RpgMakerMvScripts/projects" href="/jiro4989/RpgMakerMvScripts/projects">
|
||||
<span itemprop="name">Projects</span>
|
||||
<span class="Counter">0</span>
|
||||
<meta itemprop="position" content="4">
|
||||
</a> </span>
|
||||
|
||||
|
||||
<a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy code_scanning /jiro4989/RpgMakerMvScripts/security/advisories" href="/jiro4989/RpgMakerMvScripts/security/advisories">
|
||||
<span itemprop="name">Security</span>
|
||||
<meta itemprop="position" content="6">
|
||||
</a>
|
||||
<a class="js-selected-navigation-item reponav-item" data-selected-links="pulse /jiro4989/RpgMakerMvScripts/pulse" href="/jiro4989/RpgMakerMvScripts/pulse">
|
||||
Pulse
|
||||
</a>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="container-lg clearfix new-discussion-timeline experiment-repo-nav p-responsive">
|
||||
<div class="repository-content ">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="d-none js-permalink-shortcut" data-hotkey="y" href="/jiro4989/RpgMakerMvScripts/blob/b76efd4d2391bed1b9168aca81cb7422eb3b61df/Plugin/ExtendsExp.js">Permalink</a>
|
||||
|
||||
<!-- blob contrib key: blob_contributors:v21:4055ba0a3a8d791bcc7d757256f094e1 -->
|
||||
<div class="signup-prompt-bg rounded-1">
|
||||
<div class="signup-prompt p-4 text-center mb-4 rounded-1">
|
||||
<div class="position-relative">
|
||||
<!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/prompt_dismissals/signup" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="DJrL/SVM8hNeoNad+bV/e+aVQbBPdoDUJec5KokM0vPCQDL2vr8kwVHFYW3dir1sTrDdgyp5lVfxOkDLf8ZXfA==" />
|
||||
<button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss">
|
||||
Dismiss
|
||||
</button>
|
||||
</form> <h3 class="pt-2">Join GitHub today</h3>
|
||||
<p class="col-6 mx-auto">GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.</p>
|
||||
<a class="btn btn-primary" data-hydro-click="{"event_type":"authentication.click","payload":{"location_in_page":"files signup prompt","repository_id":null,"auth_type":"SIGN_UP","client_id":"1338312093.1575651260","originating_request_id":"CDFA:2FED:1F8593D:2DEF2EB:5E10D772","originating_url":"https://github.com/jiro4989/RpgMakerMvScripts/blob/master/Plugin/ExtendsExp.js","referrer":"http://ashelter.blog.fc2.com/","user_id":null}}" data-hydro-click-hmac="c53b2458a0a9a9337dc4d544face2dc591c42d7db46b19093abddef8637cfd09" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up" href="/join?source=prompt-blob-show&source_repo=jiro4989%2FRpgMakerMvScripts">Sign up</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="d-flex flex-items-start flex-shrink-0 pb-3 flex-column flex-md-row">
|
||||
<span class="d-flex flex-justify-between width-full width-md-auto">
|
||||
|
||||
<details class="details-reset details-overlay select-menu branch-select-menu hx_rsm" id="branch-select-menu">
|
||||
<summary class="btn btn-sm select-menu-button css-truncate"
|
||||
data-hotkey="w"
|
||||
title="Switch branches or tags">
|
||||
<i>Branch:</i>
|
||||
<span class="css-truncate-target" data-menu-button>master</span>
|
||||
</summary>
|
||||
|
||||
<details-menu class="select-menu-modal hx_rsm-modal position-absolute" style="z-index: 99;" src="/jiro4989/RpgMakerMvScripts/refs/master/Plugin/ExtendsExp.js?source_action=show&source_controller=blob" preload>
|
||||
<include-fragment class="select-menu-loading-overlay anim-pulse">
|
||||
<svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z" /></svg>
|
||||
</include-fragment>
|
||||
</details-menu>
|
||||
</details>
|
||||
|
||||
<div class="BtnGroup flex-shrink-0 d-md-none">
|
||||
<a href="/jiro4989/RpgMakerMvScripts/find/master"
|
||||
class="js-pjax-capture-input btn btn-sm BtnGroup-item"
|
||||
data-pjax
|
||||
data-hotkey="t">
|
||||
Find file
|
||||
</a>
|
||||
<clipboard-copy value="Plugin/ExtendsExp.js" class="btn btn-sm BtnGroup-item">
|
||||
Copy path
|
||||
</clipboard-copy>
|
||||
</div>
|
||||
</span>
|
||||
<h2 id="blob-path" class="breadcrumb flex-auto min-width-0 text-normal flex-md-self-center ml-md-2 mr-md-3 my-2 my-md-0">
|
||||
<span class="js-repo-root text-bold"><span class="js-path-segment"><a data-pjax="true" href="/jiro4989/RpgMakerMvScripts"><span>RpgMakerMvScripts</span></a></span></span><span class="separator">/</span><span class="js-path-segment"><a data-pjax="true" href="/jiro4989/RpgMakerMvScripts/tree/master/Plugin"><span>Plugin</span></a></span><span class="separator">/</span><strong class="final-path">ExtendsExp.js</strong>
|
||||
</h2>
|
||||
|
||||
<div class="BtnGroup flex-shrink-0 d-none d-md-inline-block">
|
||||
<a href="/jiro4989/RpgMakerMvScripts/find/master"
|
||||
class="js-pjax-capture-input btn btn-sm BtnGroup-item"
|
||||
data-pjax
|
||||
data-hotkey="t">
|
||||
Find file
|
||||
</a>
|
||||
<clipboard-copy value="Plugin/ExtendsExp.js" class="btn btn-sm BtnGroup-item">
|
||||
Copy path
|
||||
</clipboard-copy>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="Box Box--condensed d-flex flex-column flex-shrink-0">
|
||||
<div class="Box-body d-flex flex-justify-between bg-blue-light flex-column flex-md-row flex-items-start flex-md-items-center">
|
||||
<span class="pr-md-4 f6">
|
||||
<a rel="author" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/jiro4989/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/jiro4989"><img class="avatar" src="https://avatars3.githubusercontent.com/u/13825004?s=40&v=4" width="20" height="20" alt="@jiro4989" /></a>
|
||||
<a class="text-bold link-gray-dark lh-default v-align-middle" rel="author" data-hovercard-type="user" data-hovercard-url="/users/jiro4989/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/jiro4989">jiro4989</a>
|
||||
<span class="lh-default v-align-middle">
|
||||
<a data-pjax="true" title="バージョンナンバーを更新しわすれていたで更新。" class="link-gray" href="/jiro4989/RpgMakerMvScripts/commit/1dbe607e293f8f77d0da38f3204c027f9f10c8f9">バージョンナンバーを更新しわすれていたで更新。</a>
|
||||
</span>
|
||||
</span>
|
||||
<span class="d-inline-block flex-shrink-0 v-align-bottom f6 mt-2 mt-md-0">
|
||||
<a class="pr-2 text-mono link-gray" href="/jiro4989/RpgMakerMvScripts/commit/1dbe607e293f8f77d0da38f3204c027f9f10c8f9" data-pjax>1dbe607</a>
|
||||
<relative-time datetime="2016-04-17T08:46:09Z" class="no-wrap">Apr 17, 2016</relative-time>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="Box-body d-flex flex-items-center flex-auto f6 border-bottom-0 flex-wrap" >
|
||||
<details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark float-left mr-2" id="blob_contributors_box">
|
||||
<summary class="btn-link">
|
||||
<span><strong>1</strong> contributor</span>
|
||||
</summary>
|
||||
<details-dialog
|
||||
class="Box Box--overlay d-flex flex-column anim-fade-in fast"
|
||||
aria-label="Users who have contributed to this file"
|
||||
src="/jiro4989/RpgMakerMvScripts/contributors-list/master/Plugin/ExtendsExp.js" preload>
|
||||
<div class="Box-header">
|
||||
<button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
|
||||
<svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z" /></svg>
|
||||
</button>
|
||||
<h3 class="Box-title">
|
||||
Users who have contributed to this file
|
||||
</h3>
|
||||
</div>
|
||||
<include-fragment class="octocat-spinner my-3" aria-label="Loading..."></include-fragment>
|
||||
</details-dialog>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="Box mt-3 position-relative">
|
||||
|
||||
<div class="Box-header py-2 d-flex flex-column flex-shrink-0 flex-md-row flex-md-items-center">
|
||||
<div class="text-mono f6 flex-auto pr-3 flex-order-2 flex-md-order-1 mt-2 mt-md-0">
|
||||
|
||||
23 lines (20 sloc)
|
||||
<span class="file-info-divider"></span>
|
||||
714 Bytes
|
||||
</div>
|
||||
|
||||
<div class="d-flex py-1 py-md-0 flex-auto flex-order-1 flex-md-order-2 flex-sm-grow-0 flex-justify-between">
|
||||
|
||||
<div class="BtnGroup">
|
||||
<a id="raw-url" class="btn btn-sm BtnGroup-item" href="/jiro4989/RpgMakerMvScripts/raw/master/Plugin/ExtendsExp.js">Raw</a>
|
||||
<a class="btn btn-sm js-update-url-with-hash BtnGroup-item" data-hotkey="b" href="/jiro4989/RpgMakerMvScripts/blame/master/Plugin/ExtendsExp.js">Blame</a>
|
||||
<a rel="nofollow" class="btn btn-sm BtnGroup-item" href="/jiro4989/RpgMakerMvScripts/commits/master/Plugin/ExtendsExp.js">History</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<a class="btn-octicon tooltipped tooltipped-nw hide-sm"
|
||||
href="https://desktop.github.com"
|
||||
aria-label="Open this file in GitHub Desktop"
|
||||
data-ga-click="Repository, open with desktop, type:windows">
|
||||
<svg class="octicon octicon-device-desktop" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z" /></svg>
|
||||
</a>
|
||||
|
||||
<button type="button" class="btn-octicon disabled tooltipped tooltipped-nw"
|
||||
aria-label="You must be signed in to make or propose changes">
|
||||
<svg class="octicon octicon-pencil" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 011.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z" /></svg>
|
||||
</button>
|
||||
<button type="button" class="btn-octicon btn-octicon-danger disabled tooltipped tooltipped-nw"
|
||||
aria-label="You must be signed in to make or propose changes">
|
||||
<svg class="octicon octicon-trashcan" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z" /></svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div itemprop="text" class="Box-body p-0 blob-wrapper data type-javascript ">
|
||||
|
||||
<table class="highlight tab-size js-file-line-container" data-tab-size="8">
|
||||
<tr>
|
||||
<td id="L1" class="blob-num js-line-number" data-line-number="1"></td>
|
||||
<td id="LC1" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">//</span>=============================================================================</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L2" class="blob-num js-line-number" data-line-number="2"></td>
|
||||
<td id="LC2" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">//</span> ExtendsExp.js</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L3" class="blob-num js-line-number" data-line-number="3"></td>
|
||||
<td id="LC3" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">//</span> Copyright (c) 2017 Jiro</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L4" class="blob-num js-line-number" data-line-number="4"></td>
|
||||
<td id="LC4" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">//</span> http://ashelter.blog.fc2.com</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L5" class="blob-num js-line-number" data-line-number="5"></td>
|
||||
<td id="LC5" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">//</span>=============================================================================</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L6" class="blob-num js-line-number" data-line-number="6"></td>
|
||||
<td id="LC6" class="blob-code blob-code-inner js-file-line">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L7" class="blob-num js-line-number" data-line-number="7"></td>
|
||||
<td id="LC7" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">/*</span>:ja</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L8" class="blob-num js-line-number" data-line-number="8"></td>
|
||||
<td id="LC8" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * @plugindesc レベル99以上のレベルアップに必要な経験値の計算をするプラグイン ver1.1</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L9" class="blob-num js-line-number" data-line-number="9"></td>
|
||||
<td id="LC9" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * @author 次郎</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L10" class="blob-num js-line-number" data-line-number="10"></td>
|
||||
<td id="LC10" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> *</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L11" class="blob-num js-line-number" data-line-number="11"></td>
|
||||
<td id="LC11" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * @help このプラグインには、プラグインコマンドはありません。</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L12" class="blob-num js-line-number" data-line-number="12"></td>
|
||||
<td id="LC12" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> *</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L13" class="blob-num js-line-number" data-line-number="13"></td>
|
||||
<td id="LC13" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> <span class="pl-c">*/</span></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L14" class="blob-num js-line-number" data-line-number="14"></td>
|
||||
<td id="LC14" class="blob-code blob-code-inner js-file-line">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L15" class="blob-num js-line-number" data-line-number="15"></td>
|
||||
<td id="LC15" class="blob-code blob-code-inner js-file-line">(<span class="pl-k">function</span>() {</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L16" class="blob-num js-line-number" data-line-number="16"></td>
|
||||
<td id="LC16" class="blob-code blob-code-inner js-file-line"> <span class="pl-smi">Game_Actor</span>.<span class="pl-c1">prototype</span>.<span class="pl-en">nextRequiredExp</span> <span class="pl-k">=</span> <span class="pl-k">function</span>() {</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L17" class="blob-num js-line-number" data-line-number="17"></td>
|
||||
<td id="LC17" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">var</span> expConstant <span class="pl-k">=</span> <span class="pl-c1">500</span>;</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L18" class="blob-num js-line-number" data-line-number="18"></td>
|
||||
<td id="LC18" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">var</span> expPlus <span class="pl-k">=</span> <span class="pl-c1">1.0</span> <span class="pl-k">+</span> <span class="pl-c1">this</span>.<span class="pl-smi">_level</span> <span class="pl-k">/</span> <span class="pl-c1">100</span>;</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L19" class="blob-num js-line-number" data-line-number="19"></td>
|
||||
<td id="LC19" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">var</span> expFinal <span class="pl-k">=</span> expConstant <span class="pl-k">*</span> expPlus;</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L20" class="blob-num js-line-number" data-line-number="20"></td>
|
||||
<td id="LC20" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">return</span> <span class="pl-c1">Math</span>.<span class="pl-c1">ceil</span>(<span class="pl-c1">this</span>.<span class="pl-smi">_level</span> <span class="pl-k">*</span> expFinal <span class="pl-k">+</span> expFinal);</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L21" class="blob-num js-line-number" data-line-number="21"></td>
|
||||
<td id="LC21" class="blob-code blob-code-inner js-file-line"> };</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L22" class="blob-num js-line-number" data-line-number="22"></td>
|
||||
<td id="LC22" class="blob-code blob-code-inner js-file-line">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="L23" class="blob-num js-line-number" data-line-number="23"></td>
|
||||
<td id="LC23" class="blob-code blob-code-inner js-file-line">})();</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<details class="details-reset details-overlay BlobToolbar position-absolute js-file-line-actions dropdown d-none" aria-hidden="true">
|
||||
<summary class="btn-octicon ml-0 px-2 p-0 bg-white border border-gray-dark rounded-1" aria-label="Inline file action toolbar">
|
||||
<svg class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm5 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM13 7.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z" /></svg>
|
||||
</summary>
|
||||
<details-menu>
|
||||
<ul class="BlobToolbar-dropdown dropdown-menu dropdown-menu-se mt-2" style="width:185px">
|
||||
<li>
|
||||
<clipboard-copy role="menuitem" class="dropdown-item" id="js-copy-lines" style="cursor:pointer;">
|
||||
Copy lines
|
||||
</clipboard-copy>
|
||||
</li>
|
||||
<li>
|
||||
<clipboard-copy role="menuitem" class="dropdown-item" id="js-copy-permalink" style="cursor:pointer;">
|
||||
Copy permalink
|
||||
</clipboard-copy>
|
||||
</li>
|
||||
<li><a class="dropdown-item js-update-url-with-hash" id="js-view-git-blame" role="menuitem" href="/jiro4989/RpgMakerMvScripts/blame/b76efd4d2391bed1b9168aca81cb7422eb3b61df/Plugin/ExtendsExp.js">View git blame</a></li>
|
||||
<li><a class="dropdown-item" id="js-new-issue" role="menuitem" href="/jiro4989/RpgMakerMvScripts/issues/new">Reference in new issue</a></li>
|
||||
</ul>
|
||||
</details-menu>
|
||||
</details>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<details class="details-reset details-overlay details-overlay-dark">
|
||||
<summary data-hotkey="l" aria-label="Jump to line"></summary>
|
||||
<details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast linejump" aria-label="Jump to line">
|
||||
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-jump-to-line-form Box-body d-flex" action="" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
|
||||
<input class="form-control flex-auto mr-3 linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" aria-label="Jump to line" autofocus>
|
||||
<button type="submit" class="btn" data-close-dialog>Go</button>
|
||||
</form> </details-dialog>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer container-lg width-full p-responsive" role="contentinfo">
|
||||
<div class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
|
||||
<ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
|
||||
<li class="mr-3 mr-lg-0">© 2020 GitHub, Inc.</li>
|
||||
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
|
||||
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
|
||||
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
|
||||
<li class="mr-3 mr-lg-0"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
|
||||
<li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
|
||||
</ul>
|
||||
|
||||
<a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com">
|
||||
<svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" /></svg>
|
||||
</a>
|
||||
<ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
|
||||
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
|
||||
<li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
|
||||
<li class="mr-3 mr-lg-0"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
|
||||
<li class="mr-3 mr-lg-0"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
|
||||
<li class="mr-3 mr-lg-0"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
|
||||
<li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<div class="d-flex flex-justify-center pb-6">
|
||||
<span class="f6 text-gray-light"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="ajax-error-message" class="ajax-error-message flash flash-error">
|
||||
<svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z" /></svg>
|
||||
<button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
|
||||
<svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z" /></svg>
|
||||
</button>
|
||||
You can’t perform that action at this time.
|
||||
</div>
|
||||
|
||||
|
||||
<script crossorigin="anonymous" integrity="sha512-mdrBasYG+QjgS391PSyVkPr06io3gWplCVbPscguetNEHxIEt+mZwCeCxPR9eMNfda6qNuibNFqBo5ak2+O/hg==" type="application/javascript" src="https://github.githubassets.com/assets/compat-bootstrap-99dac16a.js"></script>
|
||||
<script crossorigin="anonymous" integrity="sha512-/VSJJF96vCzSgC6y09Z4FqzjjuXRWOKIq2twF0Nb5/v8xy4qzngnH6Au6TFwbmNN/lborYJsojEpgIbYjoGvHQ==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-fd548924.js"></script>
|
||||
|
||||
<script crossorigin="anonymous" async="async" integrity="sha512-aUcSUDDMVQbMXGBGlygbA8oeVTFRl8m70SDZzdcFRfkwJuJy3Yjwk03CWjVBb27hZ2C1HRpynxM8BLqxGSwZYA==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-69471250.js"></script>
|
||||
|
||||
|
||||
|
||||
<div class="js-stale-session-flash flash flash-warn flash-banner" hidden
|
||||
>
|
||||
<svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z" /></svg>
|
||||
<span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
|
||||
<span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
|
||||
</div>
|
||||
<template id="site-details-dialog">
|
||||
<details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm" open>
|
||||
<summary role="button" aria-label="Close dialog"></summary>
|
||||
<details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
|
||||
<button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
|
||||
<svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z" /></svg>
|
||||
</button>
|
||||
<div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
|
||||
</details-dialog>
|
||||
</details>
|
||||
</template>
|
||||
|
||||
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
|
||||
<div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div aria-live="polite" class="js-global-screen-reader-notice sr-only"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
130
www/js/plugins/FloatVariables.js
Normal file
130
www/js/plugins/FloatVariables.js
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
//=============================================================================
|
||||
// FloatVariables.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2015-2016 Triacontane
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.1.0 2017/09/15 型指定機能に対応
|
||||
// 1.0.0 2016/07/30 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Blog] : https://triacontane.blogspot.jp/
|
||||
// [Twitter]: https://twitter.com/triacontane/
|
||||
// [GitHub] : https://github.com/triacontane/
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc FloatVariablesPlugin
|
||||
* @author triacontane
|
||||
*
|
||||
* @param FloatVariableStart
|
||||
* @desc 小数演算を行う変数の開始位置です。
|
||||
* @default 0
|
||||
* @type variable
|
||||
*
|
||||
* @param FloatVariableEnd
|
||||
* @desc 小数演算を行う変数の終了位置です。
|
||||
* @default 0
|
||||
* @type variable
|
||||
*
|
||||
* @help FloatVariables.js
|
||||
*
|
||||
* 指定した範囲内の変数を小数演算可能にします。
|
||||
*
|
||||
* ・通常(整数演算)の場合
|
||||
* 3 / 2 = 1
|
||||
*
|
||||
* ・小数演算の場合
|
||||
* 3 / 2 = 1.5
|
||||
*
|
||||
* 小数が代入されている変数をイベントコマンドのオペランドとして
|
||||
* 使用すると予期しない問題が発生する可能性があります。
|
||||
* (HPに0.5を加算するなど)
|
||||
*
|
||||
* 注意して利用してください。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
/*:
|
||||
* @plugindesc 変数の小数演算プラグイン
|
||||
* @author トリアコンタン
|
||||
*
|
||||
* @param 小数変数開始位置
|
||||
* @desc 小数演算を行う変数の開始位置です。
|
||||
* @default 0
|
||||
* @type variable
|
||||
*
|
||||
* @param 小数変数終了位置
|
||||
* @desc 小数演算を行う変数の終了位置です。
|
||||
* @default 0
|
||||
* @type variable
|
||||
*
|
||||
* @help FloatVariables.js
|
||||
*
|
||||
* 指定した範囲内の変数を小数演算可能にします。
|
||||
*
|
||||
* ・通常(整数演算)の場合
|
||||
* 3 / 2 = 1
|
||||
*
|
||||
* ・小数演算の場合
|
||||
* 3 / 2 = 1.5
|
||||
*
|
||||
* 小数が代入されている変数をイベントコマンドのオペランドとして
|
||||
* 使用すると予期しない問題が発生する可能性があります。
|
||||
* (HPに0.5を加算するなど)
|
||||
*
|
||||
* 注意して利用してください。
|
||||
*
|
||||
* このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 利用規約:
|
||||
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
|
||||
* についても制限はありません。
|
||||
* このプラグインはもうあなたのものです。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
'use strict';
|
||||
var pluginName = 'FloatVariables';
|
||||
|
||||
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 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 paramFloatVariableStart = getParamNumber(['FloatVariableStart', '小数変数開始位置']);
|
||||
var paramFloatVariableEnd = getParamNumber(['FloatVariableEnd', '小数変数終了位置']);
|
||||
|
||||
var _Game_Variables_setValue = Game_Variables.prototype.setValue;
|
||||
Game_Variables.prototype.setValue = function (variableId, value) {
|
||||
if (variableId >= paramFloatVariableStart && variableId <= paramFloatVariableEnd) {
|
||||
if (variableId > 0 && variableId < $dataSystem.variables.length) {
|
||||
this._data[variableId] = value;
|
||||
this.onChange();
|
||||
}
|
||||
} else {
|
||||
_Game_Variables_setValue.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
295
www/js/plugins/Foreground.js
Normal file
295
www/js/plugins/Foreground.js
Normal file
|
|
@ -0,0 +1,295 @@
|
|||
//=============================================================================
|
||||
// Foreground.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc display foreground tiling sprite
|
||||
* @author Sasuke KANNAZUKI (thanks to Yoji Ojima)
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* 'foreground' is like a parallax that displays over the map.
|
||||
* put bitmap file at img/parallaxes.
|
||||
*
|
||||
* Map Note:
|
||||
* write down following 5 settings at map's note.
|
||||
* <fgName:name> name is the string, file name of tiling sprite.
|
||||
* if the name starts '!', it is regarded as "foreground zero".
|
||||
* the filename is searched from img/parallaxes.
|
||||
* <fgLoopX:number> number is the flag of loop x. 0:no 1:yes
|
||||
* if this is not written on the note, it'll be 0(=no).
|
||||
* <fgLoopY:number> number is the flag of loop y. 0:no 1:yes
|
||||
* if this is not written on the note, it'll be 0(=no).
|
||||
* <fgSx:number> number is x scroll speed.
|
||||
* when it doesn't loop x, this is ignored.
|
||||
* if this is not written on the note, it'll be 0.
|
||||
* <fgSy:number> number is y scroll speed.
|
||||
* when it doesn't loop y, this is ignored.
|
||||
* if this is not written on the note, it'll be 0.
|
||||
*
|
||||
* Ex.
|
||||
* <fgName:sample1><fgLoopX:1><fgLoopY:1>
|
||||
*
|
||||
* <fgName:!sample1>
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc マップに合わせてスクロールする近景の設定
|
||||
* @author 神無月サスケ (thanks to Yoji Ojima)
|
||||
*
|
||||
* @help このプラグインにプラグインコマンドはありません。
|
||||
* 近景(foreground)は、マップの上に表示される遠景のようなものです。
|
||||
* 使用する画像ファイルは、img/parallaxes に置いてください。
|
||||
*
|
||||
* マップのメモ:
|
||||
* 以下の5項目を書いてください(設定項目は、遠景と似ています)。
|
||||
* <fgName:ファイル名> 前景として使うファイル名です(拡張子なし)
|
||||
* 名前が '!'で始まる場合、遠景同様視差ゼロとなります。
|
||||
* ファイルは img/parallaxes に置いてください
|
||||
* <fgLoopX:数字> X座標にループするかどうか (0:no 1:yes)。
|
||||
* 省略時は0(=no)になります。
|
||||
* <fgLoopY:number> Y座標にループするかどうか (0:no 1:yes)。
|
||||
* 省略時は0(=no)になります。
|
||||
* <fgSx:数字> X座標のスクロール速度です
|
||||
* X座標にループしない場合は無視されます。
|
||||
* 省略時は0になります。
|
||||
* <fgSy:数字> Y座標のスクロール速度です
|
||||
* Y座標にループしない場合は無視されます。
|
||||
* 省略時は0になります。
|
||||
*
|
||||
* 例:
|
||||
* <fgName:sample1><fgLoopX:1><fgLoopY:1>
|
||||
* sample1.png が前景になり、斜め上にループします。
|
||||
*
|
||||
* <fgName:!sample1>
|
||||
* 視差ゼロで!sample1.png が表示されます。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
//
|
||||
// check zero foreground or not.
|
||||
//
|
||||
ImageManager.isZeroForeground = function (filename) {
|
||||
return filename.charAt(0) === '!';
|
||||
};
|
||||
|
||||
//
|
||||
// map initialization
|
||||
//
|
||||
var _Game_Map_initialize = Game_Map.prototype.initialize;
|
||||
Game_Map.prototype.initialize = function () {
|
||||
_Game_Map_initialize.call(this);
|
||||
this.initForeground();
|
||||
};
|
||||
|
||||
Game_Map.prototype.initForeground = function () {
|
||||
this._foregroundDefined = true;
|
||||
this._foregroundName = '';
|
||||
this._foregroundZero = false;
|
||||
this._foregroundLoopX = false;
|
||||
this._foregroundLoopY = false;
|
||||
this._foregroundSx = 0;
|
||||
this._foregroundSy = 0;
|
||||
this._foregroundX = 0;
|
||||
this._foregroundY = 0;
|
||||
};
|
||||
|
||||
//
|
||||
// if foreground is undefined, initialize it.
|
||||
//
|
||||
Game_Map.prototype.guardForeground = function () {
|
||||
if (!this._foregroundDefined) {
|
||||
this.initForeground();
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// an accessor
|
||||
//
|
||||
Game_Map.prototype.foregroundName = function () {
|
||||
this.guardForeground();
|
||||
return this._foregroundName;
|
||||
};
|
||||
|
||||
//
|
||||
// set foreground by reading map's note.
|
||||
//
|
||||
var _Game_Map_setup = Game_Map.prototype.setup;
|
||||
Game_Map.prototype.setup = function (mapId) {
|
||||
_Game_Map_setup.call(this, mapId);
|
||||
this.setupForeground();
|
||||
};
|
||||
|
||||
Game_Map.prototype.setupForeground = function () {
|
||||
this._foregroundName = $dataMap.meta.fgName || '';
|
||||
this._foregroundZero = ImageManager.isZeroForeground(this._foregroundName);
|
||||
this._foregroundLoopX = !!$dataMap.meta.fgLoopX;
|
||||
this._foregroundLoopY = !!$dataMap.meta.fgLoopY;
|
||||
this._foregroundSx = Number($dataMap.meta.fgSx) || 0;
|
||||
this._foregroundSy = Number($dataMap.meta.fgSy) || 0;
|
||||
this._foregroundX = 0;
|
||||
this._foregroundY = 0;
|
||||
};
|
||||
|
||||
//
|
||||
// to display foreground
|
||||
//
|
||||
var _Game_Map_setDisplayPos = Game_Map.prototype.setDisplayPos;
|
||||
Game_Map.prototype.setDisplayPos = function (x, y) {
|
||||
_Game_Map_setDisplayPos.call(this, x, y);
|
||||
this.guardForeground();
|
||||
if (this.isLoopHorizontal()) {
|
||||
this._foregroundX = x;
|
||||
} else {
|
||||
this._foregroundX = this._displayX;
|
||||
}
|
||||
if (this.isLoopVertical()) {
|
||||
this._foregroundY = y;
|
||||
} else {
|
||||
this._foregroundY = this._displayY;
|
||||
}
|
||||
};
|
||||
|
||||
Game_Map.prototype.foregroundOx = function () {
|
||||
this.guardForeground();
|
||||
if (this._foregroundZero) {
|
||||
return this._foregroundX * this.tileWidth();
|
||||
} else if (this._foregroundLoopX) {
|
||||
return this._foregroundX * this.tileWidth() / 2;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
Game_Map.prototype.foregroundOy = function () {
|
||||
this.guardForeground();
|
||||
if (this._foregroundZero) {
|
||||
return this._foregroundY * this.tileHeight();
|
||||
} else if (this._foregroundLoopY) {
|
||||
return this._foregroundY * this.tileHeight() / 2;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// to scroll foreground
|
||||
//
|
||||
var _Game_Map_scrollDown = Game_Map.prototype.scrollDown;
|
||||
Game_Map.prototype.scrollDown = function (distance) {
|
||||
var lastY = this._displayY;
|
||||
_Game_Map_scrollDown.call(this, distance);
|
||||
this.guardForeground();
|
||||
if (this.isLoopVertical()) {
|
||||
if (this._foregroundLoopY) {
|
||||
this._foregroundY += distance;
|
||||
}
|
||||
} else if (this.height() >= this.screenTileY()) {
|
||||
var displayY = Math.min(lastY + distance,
|
||||
this.height() - this.screenTileY());
|
||||
this._foregroundY += displayY - lastY;
|
||||
}
|
||||
};
|
||||
|
||||
var _Game_Map_scrollLeft = Game_Map.prototype.scrollLeft;
|
||||
Game_Map.prototype.scrollLeft = function (distance) {
|
||||
var lastX = this._displayX;
|
||||
_Game_Map_scrollLeft.call(this, distance);
|
||||
this.guardForeground();
|
||||
if (this.isLoopHorizontal()) {
|
||||
if (this._foregroundLoopX) {
|
||||
this._foregroundX -= distance;
|
||||
}
|
||||
} else if (this.width() >= this.screenTileX()) {
|
||||
var displayX = Math.max(lastX - distance, 0);
|
||||
this._foregroundX += displayX - lastX;
|
||||
}
|
||||
};
|
||||
|
||||
var _Game_Map_scrollRight = Game_Map.prototype.scrollRight;
|
||||
Game_Map.prototype.scrollRight = function (distance) {
|
||||
var lastX = this._displayX;
|
||||
_Game_Map_scrollRight.call(this, distance);
|
||||
this.guardForeground();
|
||||
if (this.isLoopHorizontal()) {
|
||||
if (this._foregroundLoopX) {
|
||||
this._foregroundX += distance;
|
||||
}
|
||||
} else if (this.width() >= this.screenTileX()) {
|
||||
var displayX = Math.min(lastX + distance,
|
||||
this.width() - this.screenTileX());
|
||||
this._foregroundX += displayX - lastX;
|
||||
}
|
||||
};
|
||||
|
||||
var _Game_Map_scrollUp = Game_Map.prototype.scrollUp;
|
||||
Game_Map.prototype.scrollUp = function (distance) {
|
||||
var lastY = this._displayY;
|
||||
_Game_Map_scrollUp.call(this, distance);
|
||||
this.guardForeground();
|
||||
if (this.isLoopVertical()) {
|
||||
if (this._foregroundLoopY) {
|
||||
this._foregroundY -= distance;
|
||||
}
|
||||
} else if (this.height() >= this.screenTileY()) {
|
||||
var displayY = Math.max(lastY - distance, 0);
|
||||
this._foregroundY += displayY - lastY;
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// update foreground
|
||||
//
|
||||
var _Game_Map_update = Game_Map.prototype.update;
|
||||
Game_Map.prototype.update = function (sceneActive) {
|
||||
_Game_Map_update.call(this, sceneActive);
|
||||
this.updateForeground();
|
||||
};
|
||||
|
||||
Game_Map.prototype.updateForeground = function () {
|
||||
this.guardForeground();
|
||||
if (this._foregroundLoopX) {
|
||||
this._foregroundX += this._foregroundSx / this.tileWidth() / 2;
|
||||
}
|
||||
if (this._foregroundLoopY) {
|
||||
this._foregroundY += this._foregroundSy / this.tileHeight() / 2;
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// sprites
|
||||
//
|
||||
var _Spriteset_Map_createLowerLayer =
|
||||
Spriteset_Map.prototype.createLowerLayer;
|
||||
Spriteset_Map.prototype.createLowerLayer = function () {
|
||||
_Spriteset_Map_createLowerLayer.call(this);
|
||||
this.createForeground();
|
||||
};
|
||||
|
||||
var _Spriteset_Map_update = Spriteset_Map.prototype.update;
|
||||
Spriteset_Map.prototype.update = function () {
|
||||
_Spriteset_Map_update.call(this);
|
||||
this.updateForeground();
|
||||
};
|
||||
|
||||
Spriteset_Map.prototype.createForeground = function () {
|
||||
this._foreground = new TilingSprite();
|
||||
this._foreground.move(0, 0, Graphics.width, Graphics.height);
|
||||
// in order to display under the weather sprites:
|
||||
this._baseSprite.removeChild(this._weather);
|
||||
this._baseSprite.addChild(this._foreground);
|
||||
this._baseSprite.addChild(this._weather);
|
||||
};
|
||||
|
||||
Spriteset_Map.prototype.updateForeground = function () {
|
||||
if (this._foregroundName !== $gameMap.foregroundName()) {
|
||||
this._foregroundName = $gameMap.foregroundName();
|
||||
this._foreground.bitmap = ImageManager.loadParallax(this._foregroundName);
|
||||
}
|
||||
if (this._foreground.bitmap) {
|
||||
this._foreground.origin.x = $gameMap.foregroundOx();
|
||||
this._foreground.origin.y = $gameMap.foregroundOy();
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
127
www/js/plugins/HzRandomChoice.js
Normal file
127
www/js/plugins/HzRandomChoice.js
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
//=============================================================================
|
||||
// HzRandomChoice.js
|
||||
//=============================================================================
|
||||
|
||||
/*:ja
|
||||
* @plugindesc 選択肢の順番をランダムにします。また、タイマーが0になった際に強制的に最後の選択肢を選択させます。
|
||||
* @author hiz
|
||||
*
|
||||
* @help
|
||||
* ■ランダムな選択肢の順番
|
||||
* 順番をランダムにしたい選択肢の「一番最後の選択文」に、以下のように記述します。
|
||||
*
|
||||
* <random>
|
||||
*
|
||||
* ■タイマー0で最後の選択肢に強制分岐
|
||||
* タイマーが0になった際に強制分岐したい選択肢の「一番最後の選択文」に、以下のように記述します。
|
||||
* 選択肢の実行前にタイマーを起動しておいてください。
|
||||
*
|
||||
* <timer>
|
||||
*
|
||||
* *このプラグインには、プラグインコマンドはありません。
|
||||
|
||||
*/
|
||||
/*:en
|
||||
* @plugindesc Shuffle choices order.
|
||||
* @author hiz
|
||||
*
|
||||
* @help
|
||||
* * Shuffled choices
|
||||
* Put the forrowing on the end of option.
|
||||
*
|
||||
* <random>
|
||||
*
|
||||
* * Force choice the end of option when the timer is expired.
|
||||
* Put the forrowing on the end of option.
|
||||
* Please start the timer before show choices.
|
||||
*
|
||||
* <timer>
|
||||
*
|
||||
* * This plugin has no plugin command.
|
||||
*/
|
||||
|
||||
(function () {
|
||||
// 配列のシャッフル
|
||||
function shuffle(array) {
|
||||
var n = array.length, t, i;
|
||||
while (n) {
|
||||
i = Math.floor(Math.random() * n--);
|
||||
t = array[n];
|
||||
array[n] = array[i];
|
||||
array[i] = t;
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
var _Window_ChoiceList_start = Window_ChoiceList.prototype.start;
|
||||
Window_ChoiceList.prototype.start = function () {
|
||||
// <random>:シャッフル
|
||||
this._shuffledIndexes = null;
|
||||
if (/<random>/.test($gameMessage._choices[$gameMessage._choices.length - 1])) {
|
||||
var lastChoice = $gameMessage._choices.pop();
|
||||
var choiceNum = $gameMessage._choices.length;
|
||||
// 選択肢のインデックスのシャッフル
|
||||
this._shuffledIndexes = new Array(choiceNum);
|
||||
for (var i = 0; i < choiceNum; i++) {
|
||||
this._shuffledIndexes[i] = i;
|
||||
}
|
||||
shuffle(this._shuffledIndexes);
|
||||
// 選択肢のシャッフル
|
||||
var shuffledChoices = new Array(choiceNum);
|
||||
for (var i = 0; i < choiceNum; i++) {
|
||||
shuffledChoices[i] = $gameMessage._choices[this._shuffledIndexes[i]];
|
||||
}
|
||||
$gameMessage._choices = shuffledChoices;
|
||||
$gameMessage._choices.push(lastChoice);
|
||||
}
|
||||
// <timer>:タイマーが0になった際に強制的に最後の選択肢に分岐
|
||||
this._timer_idx = -1;
|
||||
if (/<timer>/.test($gameMessage._choices[$gameMessage._choices.length - 1])) {
|
||||
this._timer_idx = $gameMessage._choices.length - 1;
|
||||
}
|
||||
|
||||
// 一番最後の選択文を削除
|
||||
if (/<.*>/.test($gameMessage._choices[$gameMessage._choices.length - 1])) {
|
||||
$gameMessage._choices.pop();
|
||||
}
|
||||
|
||||
_Window_ChoiceList_start.call(this);
|
||||
};
|
||||
|
||||
var _Window_ChoiceList_update = Window_ChoiceList.prototype.update;
|
||||
Window_ChoiceList.prototype.update = function () {
|
||||
if (this.isOpen() && this._timer_idx >= 0) {
|
||||
if ($gameTimer.isWorking() && $gameTimer._frames === 0) {
|
||||
// タイマーが0になった際、強制的に一番最後の選択肢を選択。
|
||||
this._index = this._timer_idx;
|
||||
this._timer_idx = -1;
|
||||
this.updateInputData();
|
||||
this.deactivate();
|
||||
this.callOkHandler();
|
||||
return;
|
||||
}
|
||||
}
|
||||
_Window_ChoiceList_update.call(this);
|
||||
};
|
||||
|
||||
Window_ChoiceList.prototype.callOkHandler = function () {
|
||||
$gameMessage.onChoice(this.resultIndex(this.index()));
|
||||
this._messageWindow.terminateMessage();
|
||||
this.close();
|
||||
};
|
||||
|
||||
Window_ChoiceList.prototype.callCancelHandler = function () {
|
||||
$gameMessage.onChoice(this.resultIndex($gameMessage.choiceCancelType()));
|
||||
this._messageWindow.terminateMessage();
|
||||
this.close();
|
||||
};
|
||||
|
||||
// シャッフル後のインデックスに変換
|
||||
Window_ChoiceList.prototype.resultIndex = function (idx) {
|
||||
if (this._shuffledIndexes === null) return idx;
|
||||
if (this._shuffledIndexes.length <= idx) return idx;
|
||||
return this._shuffledIndexes[idx];
|
||||
};
|
||||
|
||||
})();
|
||||
75
www/js/plugins/InfoWindow.js
Normal file
75
www/js/plugins/InfoWindow.js
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
//=============================================================================
|
||||
// InfoWindow.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc 情報表示ウィンドウをメニュー画面に追加するプラグイン
|
||||
* @author Me
|
||||
*
|
||||
* @help 情報表示ウィンドウをメニュー画面上に追加します。
|
||||
*
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
// マップ上にウィンドウ表示するよ宣言
|
||||
var Scene_map_start = Scene_Map.prototype.start;
|
||||
Scene_Map.prototype.start = function () {
|
||||
Scene_map_start.call(this);
|
||||
this._InfoWindow = new Window_Info();
|
||||
this.addWindow(this._InfoWindow);
|
||||
};
|
||||
var _Scene_Map_update = Scene_Map.prototype.update;
|
||||
Scene_Map.prototype.update = function () {
|
||||
_Scene_Map_update.call(this);
|
||||
this._InfoWindow.setText();
|
||||
};
|
||||
|
||||
// ここからメニューウィンドウ作り始まります。
|
||||
function Window_Info() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Window_Info.prototype = Object.create(Window_Base.prototype);
|
||||
Window_Info.prototype.constructor = Window_Info;
|
||||
Window_Info.prototype.initialize = function () {
|
||||
var x = 20;
|
||||
var y = 20;
|
||||
var width = 180;
|
||||
var height = 108;
|
||||
Window_Base.prototype.initialize.call(this, x, y, width, height);
|
||||
};
|
||||
|
||||
Window_Info.prototype.setText = function (str) {
|
||||
this._text = str;
|
||||
this.refresh();
|
||||
};
|
||||
|
||||
// ウィンドウに載せる内容
|
||||
Window_Info.prototype.refresh = function () {
|
||||
this.contents.clear();
|
||||
this.changeTextColor(this.textColor(16));
|
||||
this.drawIcon(210, 1, 1);
|
||||
this.drawText("拾った宝箱", 40, 1);
|
||||
this.resetTextColor();
|
||||
this.drawText($gameVariables.value(2) + " 個", 0, this.lineHeight());
|
||||
};
|
||||
|
||||
// フォントサイズ
|
||||
Window_Info.prototype.standardFontSize = function () {
|
||||
return 20;
|
||||
};
|
||||
// ウィンドウの透明度
|
||||
Window_Info.prototype.standardBackOpacity = function () {
|
||||
return 255;
|
||||
};
|
||||
// ウィンドウの余白
|
||||
Window_Info.prototype.standardPadding = function () {
|
||||
return 18;
|
||||
};
|
||||
// ウィンドウの色調
|
||||
Window_Info.prototype.updateTone = function () {
|
||||
this.setTone(64, 0, 128);
|
||||
};
|
||||
|
||||
})();
|
||||
383
www/js/plugins/ItemBook.js
Normal file
383
www/js/plugins/ItemBook.js
Normal file
|
|
@ -0,0 +1,383 @@
|
|||
//=============================================================================
|
||||
// ItemBook.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Displays detailed statuses of items.
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Unknown Data
|
||||
* @desc The index name for an unknown item.
|
||||
* @default ??????
|
||||
*
|
||||
* @param Price Text
|
||||
* @desc The text for "Price".
|
||||
* @default Price
|
||||
*
|
||||
* @param Equip Text
|
||||
* @desc The text for "Equip".
|
||||
* @default Equip
|
||||
*
|
||||
* @param Type Text
|
||||
* @desc The text for "Type".
|
||||
* @default Type
|
||||
*
|
||||
* @help
|
||||
*
|
||||
* Plugin Command:
|
||||
* ItemBook open # Open the item book screen
|
||||
* ItemBook add weapon 3 # Add weapon #3 to the item book
|
||||
* ItemBook add armor 4 # Add armor #4 to the item book
|
||||
* ItemBook remove armor 5 # Remove armor #5 from the item book
|
||||
* ItemBook remove item 6 # Remove item #6 from the item book
|
||||
* ItemBook complete # Complete the item book
|
||||
* ItemBook clear # Clear the item book
|
||||
*
|
||||
* Item (Weapon, Armor) Note:
|
||||
* <book:no> # This item does not appear in the item book
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc アイテム図鑑です。アイテムの詳細なステータスを表示します。
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Unknown Data
|
||||
* @desc 未確認のアイテムの索引名です。
|
||||
* @default ??????
|
||||
*
|
||||
* @param Price Text
|
||||
* @desc 「価格」の文字列です。
|
||||
* @default 価格
|
||||
*
|
||||
* @param Equip Text
|
||||
* @desc 「装備」の文字列です。
|
||||
* @default 装備
|
||||
*
|
||||
* @param Type Text
|
||||
* @desc 「タイプ」の文字列です。
|
||||
* @default タイプ
|
||||
*
|
||||
* @help
|
||||
*
|
||||
* プラグインコマンド:
|
||||
* ItemBook open # 図鑑画面を開く
|
||||
* ItemBook add weapon 3 # 武器3番を図鑑に追加
|
||||
* ItemBook add armor 4 # 防具4番を図鑑に追加
|
||||
* ItemBook remove armor 5 # 防具5番を図鑑から削除
|
||||
* ItemBook remove item 6 # アイテム6番を図鑑から削除
|
||||
* ItemBook complete # 図鑑を完成させる
|
||||
* ItemBook clear # 図鑑をクリアする
|
||||
*
|
||||
* アイテム(武器、防具)のメモ:
|
||||
* <book:no> # 図鑑に載せない場合
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
var parameters = PluginManager.parameters('ItemBook');
|
||||
var unknownData = String(parameters['Unknown Data'] || '??????');
|
||||
var priceText = String(parameters['Price Text'] || 'Price');
|
||||
var equipText = String(parameters['Equip Text'] || 'Equip');
|
||||
var typeText = String(parameters['Type Text'] || 'Type');
|
||||
|
||||
var _Game_Interpreter_pluginCommand =
|
||||
Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
if (command === 'ItemBook') {
|
||||
switch (args[0]) {
|
||||
case 'open':
|
||||
SceneManager.push(Scene_ItemBook);
|
||||
break;
|
||||
case 'add':
|
||||
$gameSystem.addToItemBook(args[1], Number(args[2]));
|
||||
break;
|
||||
case 'remove':
|
||||
$gameSystem.removeFromItemBook(args[1], Number(args[2]));
|
||||
break;
|
||||
case 'complete':
|
||||
$gameSystem.completeItemBook();
|
||||
break;
|
||||
case 'clear':
|
||||
$gameSystem.clearItemBook();
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Game_System.prototype.addToItemBook = function (type, dataId) {
|
||||
if (!this._ItemBookFlags) {
|
||||
this.clearItemBook();
|
||||
}
|
||||
var typeIndex = this.itemBookTypeToIndex(type);
|
||||
if (typeIndex >= 0) {
|
||||
this._ItemBookFlags[typeIndex][dataId] = true;
|
||||
}
|
||||
};
|
||||
|
||||
Game_System.prototype.removeFromItemBook = function (type, dataId) {
|
||||
if (this._ItemBookFlags) {
|
||||
var typeIndex = this.itemBookTypeToIndex(type);
|
||||
if (typeIndex >= 0) {
|
||||
this._ItemBookFlags[typeIndex][dataId] = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Game_System.prototype.itemBookTypeToIndex = function (type) {
|
||||
switch (type) {
|
||||
case 'item':
|
||||
return 0;
|
||||
case 'weapon':
|
||||
return 1;
|
||||
case 'armor':
|
||||
return 2;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
|
||||
Game_System.prototype.completeItemBook = function () {
|
||||
var i;
|
||||
this.clearItemBook();
|
||||
for (i = 1; i < $dataItems.length; i++) {
|
||||
this._ItemBookFlags[0][i] = true;
|
||||
}
|
||||
for (i = 1; i < $dataWeapons.length; i++) {
|
||||
this._ItemBookFlags[1][i] = true;
|
||||
}
|
||||
for (i = 1; i < $dataArmors.length; i++) {
|
||||
this._ItemBookFlags[2][i] = true;
|
||||
}
|
||||
};
|
||||
|
||||
Game_System.prototype.clearItemBook = function () {
|
||||
this._ItemBookFlags = [[], [], []];
|
||||
};
|
||||
|
||||
Game_System.prototype.isInItemBook = function (item) {
|
||||
if (this._ItemBookFlags && item) {
|
||||
var typeIndex = -1;
|
||||
if (DataManager.isItem(item)) {
|
||||
typeIndex = 0;
|
||||
} else if (DataManager.isWeapon(item)) {
|
||||
typeIndex = 1;
|
||||
} else if (DataManager.isArmor(item)) {
|
||||
typeIndex = 2;
|
||||
}
|
||||
if (typeIndex >= 0) {
|
||||
return !!this._ItemBookFlags[typeIndex][item.id];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
var _Game_Party_gainItem = Game_Party.prototype.gainItem;
|
||||
Game_Party.prototype.gainItem = function (item, amount, includeEquip) {
|
||||
_Game_Party_gainItem.call(this, item, amount, includeEquip);
|
||||
if (item && amount > 0) {
|
||||
var type;
|
||||
if (DataManager.isItem(item)) {
|
||||
type = 'item';
|
||||
} else if (DataManager.isWeapon(item)) {
|
||||
type = 'weapon';
|
||||
} else if (DataManager.isArmor(item)) {
|
||||
type = 'armor';
|
||||
}
|
||||
$gameSystem.addToItemBook(type, item.id);
|
||||
}
|
||||
};
|
||||
|
||||
function Scene_ItemBook() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Scene_ItemBook.prototype = Object.create(Scene_MenuBase.prototype);
|
||||
Scene_ItemBook.prototype.constructor = Scene_ItemBook;
|
||||
|
||||
Scene_ItemBook.prototype.initialize = function () {
|
||||
Scene_MenuBase.prototype.initialize.call(this);
|
||||
};
|
||||
|
||||
Scene_ItemBook.prototype.create = function () {
|
||||
Scene_MenuBase.prototype.create.call(this);
|
||||
this._indexWindow = new Window_ItemBookIndex(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_ItemBookStatus(0, wy, ww, wh);
|
||||
this.addWindow(this._indexWindow);
|
||||
this.addWindow(this._statusWindow);
|
||||
this._indexWindow.setStatusWindow(this._statusWindow);
|
||||
};
|
||||
|
||||
function Window_ItemBookIndex() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Window_ItemBookIndex.prototype = Object.create(Window_Selectable.prototype);
|
||||
Window_ItemBookIndex.prototype.constructor = Window_ItemBookIndex;
|
||||
|
||||
Window_ItemBookIndex.lastTopRow = 0;
|
||||
Window_ItemBookIndex.lastIndex = 0;
|
||||
|
||||
Window_ItemBookIndex.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_ItemBookIndex.lastTopRow);
|
||||
this.select(Window_ItemBookIndex.lastIndex);
|
||||
this.activate();
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.maxCols = function () {
|
||||
return 3;
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.maxItems = function () {
|
||||
return this._list ? this._list.length : 0;
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.setStatusWindow = function (statusWindow) {
|
||||
this._statusWindow = statusWindow;
|
||||
this.updateStatus();
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.update = function () {
|
||||
Window_Selectable.prototype.update.call(this);
|
||||
this.updateStatus();
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.updateStatus = function () {
|
||||
if (this._statusWindow) {
|
||||
var item = this._list[this.index()];
|
||||
this._statusWindow.setItem(item);
|
||||
}
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.refresh = function () {
|
||||
var i, item;
|
||||
this._list = [];
|
||||
for (i = 1; i < $dataItems.length; i++) {
|
||||
item = $dataItems[i];
|
||||
if (item.name && item.itypeId === 1 && item.meta.book !== 'no') {
|
||||
this._list.push(item);
|
||||
}
|
||||
}
|
||||
for (i = 1; i < $dataWeapons.length; i++) {
|
||||
item = $dataWeapons[i];
|
||||
if (item.name && item.meta.book !== 'no') {
|
||||
this._list.push(item);
|
||||
}
|
||||
}
|
||||
for (i = 1; i < $dataArmors.length; i++) {
|
||||
item = $dataArmors[i];
|
||||
if (item.name && item.meta.book !== 'no') {
|
||||
this._list.push(item);
|
||||
}
|
||||
}
|
||||
this.createContents();
|
||||
this.drawAllItems();
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.drawItem = function (index) {
|
||||
var item = this._list[index];
|
||||
var rect = this.itemRect(index);
|
||||
var width = rect.width - this.textPadding();
|
||||
if ($gameSystem.isInItemBook(item)) {
|
||||
this.drawItemName(item, rect.x, rect.y, width);
|
||||
} else {
|
||||
var iw = Window_Base._iconWidth + 4;
|
||||
this.drawText(unknownData, rect.x + iw, rect.y, width - iw);
|
||||
}
|
||||
};
|
||||
|
||||
Window_ItemBookIndex.prototype.processCancel = function () {
|
||||
Window_Selectable.prototype.processCancel.call(this);
|
||||
Window_ItemBookIndex.lastTopRow = this.topRow();
|
||||
Window_ItemBookIndex.lastIndex = this.index();
|
||||
};
|
||||
|
||||
function Window_ItemBookStatus() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
Window_ItemBookStatus.prototype = Object.create(Window_Base.prototype);
|
||||
Window_ItemBookStatus.prototype.constructor = Window_ItemBookStatus;
|
||||
|
||||
Window_ItemBookStatus.prototype.initialize = function (x, y, width, height) {
|
||||
Window_Base.prototype.initialize.call(this, x, y, width, height);
|
||||
};
|
||||
|
||||
Window_ItemBookStatus.prototype.setItem = function (item) {
|
||||
if (this._item !== item) {
|
||||
this._item = item;
|
||||
this.refresh();
|
||||
}
|
||||
};
|
||||
|
||||
Window_ItemBookStatus.prototype.refresh = function () {
|
||||
var item = this._item;
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
var lineHeight = this.lineHeight();
|
||||
|
||||
this.contents.clear();
|
||||
|
||||
if (!item || !$gameSystem.isInItemBook(item)) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.drawItemName(item, x, y);
|
||||
|
||||
x = this.textPadding();
|
||||
y = lineHeight + this.textPadding();
|
||||
|
||||
var price = item.price > 0 ? item.price : '-';
|
||||
this.changeTextColor(this.systemColor());
|
||||
this.drawText(priceText, x, y, 120);
|
||||
this.resetTextColor();
|
||||
this.drawText(price, x + 120, y, 120, 'right');
|
||||
y += lineHeight;
|
||||
|
||||
if (DataManager.isWeapon(item) || DataManager.isArmor(item)) {
|
||||
var etype = $dataSystem.equipTypes[item.etypeId];
|
||||
this.changeTextColor(this.systemColor());
|
||||
this.drawText(equipText, x, y, 120);
|
||||
this.resetTextColor();
|
||||
this.drawText(etype, x + 120, y, 120, 'right');
|
||||
y += lineHeight;
|
||||
|
||||
var type;
|
||||
if (DataManager.isWeapon(item)) {
|
||||
type = $dataSystem.weaponTypes[item.wtypeId];
|
||||
} else {
|
||||
type = $dataSystem.armorTypes[item.atypeId];
|
||||
}
|
||||
this.changeTextColor(this.systemColor());
|
||||
this.drawText(typeText, x, y, 120);
|
||||
this.resetTextColor();
|
||||
this.drawText(type, x + 120, y, 120, 'right');
|
||||
|
||||
x = this.textPadding() + 300;
|
||||
y = lineHeight + this.textPadding();
|
||||
for (var i = 2; i < 8; i++) {
|
||||
this.changeTextColor(this.systemColor());
|
||||
this.drawText(TextManager.param(i), x, y, 160);
|
||||
this.resetTextColor();
|
||||
this.drawText(item.params[i], x + 160, y, 60, 'right');
|
||||
y += lineHeight;
|
||||
}
|
||||
}
|
||||
|
||||
x = 0;
|
||||
y = this.textPadding() * 2 + lineHeight * 7;
|
||||
this.drawTextEx(item.description, x, y);
|
||||
};
|
||||
|
||||
})();
|
||||
91
www/js/plugins/KMS_SomStyleDamage.js
Normal file
91
www/js/plugins/KMS_SomStyleDamage.js
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
//=============================================================================
|
||||
// KMS_SomStyleDamage.js
|
||||
// Last update: 2015/12/06
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc
|
||||
* [v0.1.0] Display damages like Secret of Mana 2.
|
||||
*
|
||||
* @author TOMY (Kamesoft)
|
||||
*
|
||||
* @param MaxSpeed X
|
||||
* @default 0.7
|
||||
* @desc The maximum speed for horizontal direction.
|
||||
*
|
||||
* @param InitialSpeed Y
|
||||
* @default -6
|
||||
* @desc The initial speed for vertical direction.
|
||||
*
|
||||
* @param Delay Y
|
||||
* @default 0.2
|
||||
* @desc Revise falling speed of damage.
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc
|
||||
* [v0.1.0] ダメージ表示を聖剣 3 スタイルにします。
|
||||
*
|
||||
* @author TOMY (Kamesoft)
|
||||
*
|
||||
* @param MaxSpeed X
|
||||
* @default 0.7
|
||||
* @desc ダメージ数値を横に飛ばす最大速度です。
|
||||
*
|
||||
* @param InitialSpeed Y
|
||||
* @default -6
|
||||
* @desc ダメージの上下方向への初速です。
|
||||
*
|
||||
* @param Delay Y
|
||||
* @default -0.2
|
||||
* @desc ダメージの落下速度補正です。
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
var KMS = KMS || {};
|
||||
|
||||
(function () {
|
||||
|
||||
KMS.imported = KMS.imported || {};
|
||||
KMS.imported['SomStyleDamage'] = true;
|
||||
|
||||
var pluginParams = PluginManager.parameters('KMS_SomStyleDamage');
|
||||
var Params = {};
|
||||
Params.maxSpeedX = Number(pluginParams['MaxSpeed X'] || 0.7);
|
||||
Params.initialSpeedY = Number(pluginParams['InitialSpeed Y'] || -6);
|
||||
Params.delayY = Number(pluginParams['Delay Y'] || 0.2);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Sprite_Damage
|
||||
|
||||
var _KMS_SomStyleDamage_Sprite_Damage_setup = Sprite_Damage.prototype.setup;
|
||||
Sprite_Damage.prototype.setup = function (target) {
|
||||
_KMS_SomStyleDamage_Sprite_Damage_setup.call(this, target);
|
||||
this.setupSomStyleDamageParameter();
|
||||
};
|
||||
|
||||
Sprite_Damage.prototype.setupSomStyleDamageParameter = function () {
|
||||
var stepX = (Math.random() - 0.5) * 2 * Params.maxSpeedX;
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
var sprite = this.children[i];
|
||||
sprite.dy = Params.initialSpeedY;
|
||||
sprite._stepX = stepX;
|
||||
sprite._stepScaleY = 0.02;
|
||||
sprite.scale.y = 0.1;
|
||||
}
|
||||
};
|
||||
|
||||
var _KMS_SomStyleDamage_Sprite_Damage_updateChild = Sprite_Damage.prototype.updateChild;
|
||||
Sprite_Damage.prototype.updateChild = function (sprite) {
|
||||
sprite.dy -= Params.delayY;
|
||||
|
||||
_KMS_SomStyleDamage_Sprite_Damage_updateChild.call(this, sprite);
|
||||
|
||||
sprite.x += sprite._stepX;
|
||||
sprite.scale.y = Math.min(sprite.scale.y + sprite._stepScaleY, 1.0);
|
||||
};
|
||||
|
||||
})();
|
||||
201
www/js/plugins/Lunatlazur_ActorNameWindow.js
Normal file
201
www/js/plugins/Lunatlazur_ActorNameWindow.js
Normal file
|
|
@ -0,0 +1,201 @@
|
|||
//=============================================================================
|
||||
// Lunatlazur_ActorNameWindow.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2018 Taku Aoi
|
||||
// This plugin is released under the zlib License.
|
||||
// http://zlib.net/zlib_license.html
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 1.0.0 2018/04/01
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Web] : https://lunatlazur.com/
|
||||
// [Twitter]: https://twitter.com/lunatlazur/
|
||||
// [GitHub] : https://github.com/Lunatlazur/
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc Show actor name window
|
||||
* @author Taku Aoi
|
||||
* @help This plugin shows speaker's name window.
|
||||
*
|
||||
* Input the character name with \N<Character name> format
|
||||
* to display the speaker's name window.
|
||||
*
|
||||
* The same font as the message window is used for this window.
|
||||
*/
|
||||
/*:ja
|
||||
* @plugindesc 名前ウィンドウ表示プラグイン
|
||||
* @author あおいたく
|
||||
* @help このプラグインは名前ウィンドウを表示できるようにします。
|
||||
*
|
||||
* \N<キャラクター名> 形式でメッセージ内にキャラクターの名前を記述することで
|
||||
* メッセージウィンドウの上部に名前ウィンドウを表示するようになります。
|
||||
*
|
||||
* 名前ウィンドウのフォントはメッセージウィンドウのものが使われます。
|
||||
*
|
||||
* @param テキストカラー
|
||||
* @desc 名前を表示するテキストの色番号を指定します。
|
||||
* @default 1
|
||||
* @type number
|
||||
*
|
||||
*/
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
(function () {
|
||||
var pluginName = 'Lunatlazur_ActorNameWindow';
|
||||
function getValue(params) {
|
||||
var names = [];
|
||||
for (var _i = 1; _i < arguments.length; _i++) {
|
||||
names[_i - 1] = arguments[_i];
|
||||
}
|
||||
var found = null;
|
||||
names.forEach(function (name) {
|
||||
if (!!params[name]) {
|
||||
found = params[name];
|
||||
}
|
||||
});
|
||||
return found;
|
||||
}
|
||||
function asNumber(params) {
|
||||
var names = [];
|
||||
for (var _i = 1; _i < arguments.length; _i++) {
|
||||
names[_i - 1] = arguments[_i];
|
||||
}
|
||||
return parseInt(getValue.apply(void 0, [params].concat(names)), 10);
|
||||
}
|
||||
var parameters = PluginManager.parameters(pluginName);
|
||||
var params = {
|
||||
textColor: asNumber(parameters, 'テキストカラー'),
|
||||
};
|
||||
var Window_ActorName = /** @class */ (function (_super) {
|
||||
__extends(Window_ActorName, _super);
|
||||
function Window_ActorName(_) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this.initialize.apply(_this, arguments);
|
||||
return _this;
|
||||
}
|
||||
Window_ActorName.prototype.initialize = function (parentWindow) {
|
||||
this._parentWindow = parentWindow;
|
||||
_super.prototype.initialize.call(this, 0, 0, 240, this.windowHeight());
|
||||
this._padding = 4;
|
||||
this._text = '';
|
||||
this._openness = 0;
|
||||
this.deactivate();
|
||||
this.hide();
|
||||
};
|
||||
Window_ActorName.prototype.standardFontFace = function () {
|
||||
if (this._parentWindow) {
|
||||
return this._parentWindow.standardFontFace();
|
||||
}
|
||||
else {
|
||||
return _super.prototype.standardFontFace.call(this);
|
||||
}
|
||||
};
|
||||
Window_ActorName.prototype.windowWidth = function () {
|
||||
this.resetFontSettings();
|
||||
return Math.ceil(this.textWidth(this._text) + this.padding * 2 + this.standardPadding() * 4);
|
||||
};
|
||||
Window_ActorName.prototype.windowHeight = function () {
|
||||
return this.lineHeight() + this.padding * 2;
|
||||
};
|
||||
Window_ActorName.prototype.contentsWidth = function () {
|
||||
return this.width - this.padding * 2;
|
||||
};
|
||||
Window_ActorName.prototype.contentsHeight = function () {
|
||||
return this.lineHeight();
|
||||
};
|
||||
Window_ActorName.prototype.update = function () {
|
||||
_super.prototype.update.call(this);
|
||||
if (this.active || this.isClosed() || this.isClosing()) {
|
||||
return;
|
||||
}
|
||||
if (this._parentWindow.isClosing()) {
|
||||
this._openness = this._parentWindow.openness;
|
||||
}
|
||||
this.close();
|
||||
};
|
||||
Window_ActorName.prototype.setText = function (text) {
|
||||
this._text = text;
|
||||
this.refresh();
|
||||
};
|
||||
Window_ActorName.prototype.refresh = function () {
|
||||
this.width = this.windowWidth();
|
||||
this.createContents();
|
||||
this.contents.clear();
|
||||
this.resetFontSettings();
|
||||
this.changeTextColor(this.textColor(params.textColor));
|
||||
this.drawText(this._text, this.standardPadding() * 2, 0, this.contents.width);
|
||||
};
|
||||
Window_ActorName.prototype.updatePlacement = function () {
|
||||
if (this._parentWindow.y === 0) {
|
||||
this.y = this._parentWindow.y + this._parentWindow.windowHeight();
|
||||
}
|
||||
else {
|
||||
this.y = this._parentWindow.y - this.windowHeight();
|
||||
}
|
||||
};
|
||||
Window_ActorName.prototype.updateBackground = function () {
|
||||
this.setBackgroundType(this._parentWindow._background);
|
||||
};
|
||||
Window_ActorName.prototype.processActorName = function (text) {
|
||||
var _this = this;
|
||||
return text.replace(/\x1bN\<(.*?)\>/gi, function (whole) {
|
||||
var args = [];
|
||||
for (var _i = 1; _i < arguments.length; _i++) {
|
||||
args[_i - 1] = arguments[_i];
|
||||
}
|
||||
_this.setText(args[0]);
|
||||
_this.show();
|
||||
_this.open();
|
||||
_this.activate();
|
||||
return '';
|
||||
});
|
||||
};
|
||||
return Window_ActorName;
|
||||
}(Window_Base));
|
||||
var Window_Message_createSubWindows = Window_Message.prototype.createSubWindows;
|
||||
Window_Message.prototype.createSubWindows = function () {
|
||||
Window_Message_createSubWindows.call(this);
|
||||
this._nameWindow = new Window_ActorName(this);
|
||||
};
|
||||
var Window_Message_subWindows = Window_Message.prototype.subWindows;
|
||||
Window_Message.prototype.subWindows = function () {
|
||||
return Window_Message_subWindows.call(this).concat([this._nameWindow]);
|
||||
};
|
||||
var Window_Message_startMessage = Window_Message.prototype.startMessage;
|
||||
Window_Message.prototype.startMessage = function () {
|
||||
this._nameWindow.deactivate();
|
||||
Window_Message_startMessage.call(this);
|
||||
};
|
||||
var Window_Message_terminateMessage = Window_Message.prototype.terminateMessage;
|
||||
Window_Message.prototype.terminateMessage = function () {
|
||||
this._nameWindow.deactivate();
|
||||
Window_Message_terminateMessage.call(this);
|
||||
};
|
||||
Window_Message.prototype.convertEscapeCharacters = function (text) {
|
||||
text = Window_Base.prototype.convertEscapeCharacters.call(this, text);
|
||||
text = this._nameWindow.processActorName(text);
|
||||
return text;
|
||||
};
|
||||
var Window_Message_updatePlacement = Window_Message.prototype.updatePlacement;
|
||||
Window_Message.prototype.updatePlacement = function () {
|
||||
Window_Message_updatePlacement.call(this);
|
||||
if (this._nameWindow.active) {
|
||||
this._nameWindow.updatePlacement();
|
||||
}
|
||||
};
|
||||
var Window_Message_updateBackground = Window_Message.prototype.updateBackground;
|
||||
Window_Message.prototype.updateBackground = function () {
|
||||
Window_Message_updateBackground.call(this);
|
||||
if (this._nameWindow.active) {
|
||||
this._nameWindow.updateBackground();
|
||||
}
|
||||
};
|
||||
})();
|
||||
3590
www/js/plugins/MKR_PlayerSensor.js
Normal file
3590
www/js/plugins/MKR_PlayerSensor.js
Normal file
File diff suppressed because it is too large
Load diff
995
www/js/plugins/MOG_BattleCommands.js
Normal file
995
www/js/plugins/MOG_BattleCommands.js
Normal file
|
|
@ -0,0 +1,995 @@
|
|||
//=============================================================================
|
||||
// MOG_BattleCommands.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc (v1.2) Comandos de batalhas animados por imagens.
|
||||
* @author Moghunter
|
||||
*
|
||||
* @param Mode
|
||||
* @desc Definição do tipo de comando.
|
||||
* 0 - Normal 1 - Ring Menu
|
||||
* @default 1
|
||||
*
|
||||
* @param Layout X-axis
|
||||
* @desc Definição X-Axis da imagem.
|
||||
* @default 22
|
||||
*
|
||||
* @param Layout Y-axis
|
||||
* @desc Definição Y-Axis da imagem.
|
||||
* @default 15
|
||||
*
|
||||
* @param Com X-axis
|
||||
* @desc Definição X-Axis da imagem.
|
||||
* @default 0
|
||||
*
|
||||
* @param Com Y-axis
|
||||
* @desc Definição Y-Axis da imagem.
|
||||
* @default 0
|
||||
*
|
||||
* @param Arrow
|
||||
* @desc Ativar a imagem das flechas.
|
||||
* @default false
|
||||
*
|
||||
* @param Arrow X-axis
|
||||
* @desc Definição X-Axis da imagem.
|
||||
* @default 5
|
||||
*
|
||||
* @param Arrow Y-axis
|
||||
* @desc Definição Y-Axis da imagem.
|
||||
* @default 0
|
||||
*
|
||||
* @param Zoom Animation
|
||||
* @desc Ativar o efeito de zoom.
|
||||
* @default true
|
||||
*
|
||||
* @param Zoom Rate
|
||||
* @desc Poder do zoom.
|
||||
* @default 1.30
|
||||
*
|
||||
* @param Zoom Speed
|
||||
* @desc Velocidade do zoom.
|
||||
* @default 0.015
|
||||
*
|
||||
* @param Zoom Loop
|
||||
* @desc Ativar loop na animação do zoom.
|
||||
* @default true
|
||||
*
|
||||
* @param Slide Animation
|
||||
* @desc Ativar animação de deslize.
|
||||
* @default false
|
||||
*
|
||||
* @param Slide X
|
||||
* @desc Definição da distância X.
|
||||
* @default 0
|
||||
*
|
||||
* @param Slide Y
|
||||
* @desc Definição da distância Y.
|
||||
* @default 0
|
||||
*
|
||||
* @param Com Name
|
||||
* @desc Ativar o nome do comando.
|
||||
* @default true
|
||||
*
|
||||
* @param Com Name X-axis
|
||||
* @desc Definição X-Axis do nome.
|
||||
* @default 55
|
||||
*
|
||||
* @param Com Name Y-axis
|
||||
* @desc Definição Y-Axis do nome.
|
||||
* @default 75
|
||||
*
|
||||
* @param Com Font Size
|
||||
* @desc Definição do tamanho da fonte.
|
||||
* @default 22
|
||||
*
|
||||
* @param Cursor
|
||||
* @desc Ativar cursor.
|
||||
* @default false
|
||||
*
|
||||
* @param Cursor X-axis
|
||||
* @desc Definição X-Axis do cursor.
|
||||
* @default 0
|
||||
*
|
||||
* @param Cursor Y-axis
|
||||
* @desc Definição X-Axis do cursor.
|
||||
* @default 0
|
||||
*
|
||||
* @param Cursor Slide
|
||||
* @desc Ativar a animação de deslize.
|
||||
* @default false
|
||||
*
|
||||
* @param Row Max
|
||||
* @desc Definição da quantidade comandos visíveis.
|
||||
* @default 4
|
||||
*
|
||||
* @param Ring Range
|
||||
* @desc Definição da circunferência do circulo.
|
||||
* @default 70
|
||||
*
|
||||
* @param Ring Motion
|
||||
* @desc Ativar animação de movimento.
|
||||
* @default true
|
||||
*
|
||||
* @param Pi Range
|
||||
* @desc Definição do valor do PI.
|
||||
* @default 2.0
|
||||
*
|
||||
* @param Side Input
|
||||
* @desc Ativar Input para o lado direito e esquerdo.
|
||||
* @default true
|
||||
*
|
||||
* @param Face
|
||||
* @desc Ativar face do personagem.
|
||||
* @default true
|
||||
*
|
||||
* @param Face X-axis
|
||||
* @desc Definição X-Axis da face do personagem.
|
||||
* @default 0
|
||||
*
|
||||
* @param Face Y-axis
|
||||
* @desc Definição Y-Axis da face do personagem.
|
||||
* @default -50
|
||||
*
|
||||
* @help
|
||||
* =============================================================================
|
||||
* +++ MOG - Battle Commands (v1.2) +++
|
||||
* By Moghunter
|
||||
* https://atelierrgss.wordpress.com/
|
||||
* =============================================================================
|
||||
* Comandos de batalhas animados por imagens.
|
||||
* Este plugin requer o MOG_BattleHud para funcionar.
|
||||
*
|
||||
* =============================================================================
|
||||
* As imagens dos comandos deverão ser gravados na pasta /img/battlecommands/
|
||||
* O nomes das imagens deverão seguir a seguinte nomeação.
|
||||
*
|
||||
* Com_ + COMMAND NAME.png
|
||||
*
|
||||
* Exemplo
|
||||
*
|
||||
* Com_Attack.png
|
||||
* Com_Guard.png
|
||||
* Com_Magic.png
|
||||
* ...
|
||||
*
|
||||
* =============================================================================
|
||||
* FACES
|
||||
* =============================================================================
|
||||
* Para definir as faces dos personagens nomeie da seguinte forma.
|
||||
*
|
||||
* Face_ + Actor ID.png
|
||||
*
|
||||
* EG
|
||||
*
|
||||
* Face_1.png
|
||||
* Face_2.png
|
||||
* Face_3.png
|
||||
* ...
|
||||
*
|
||||
* =============================================================================
|
||||
* HISTÓRICO
|
||||
* =============================================================================
|
||||
* (v1.2) - Correção do crash ao desativar a função Arrow no modo Zero.
|
||||
* - Melhoria na compatibilidade de third party plugins.
|
||||
*/
|
||||
|
||||
//=============================================================================
|
||||
// ** PLUGIN PARAMETERS
|
||||
//=============================================================================
|
||||
var Imported = Imported || {};
|
||||
Imported.MOG_BattleCommands = true;
|
||||
var Moghunter = Moghunter || {};
|
||||
|
||||
Moghunter.parameters = PluginManager.parameters('MOG_BattleCommands');
|
||||
Moghunter.bcom_mode = Number(Moghunter.parameters['Mode'] || 0);
|
||||
Moghunter.bcom_lay_x = Number(Moghunter.parameters['Layout X-axis'] || -45);
|
||||
Moghunter.bcom_lay_y = Number(Moghunter.parameters['Layout Y-axis'] || -25);
|
||||
Moghunter.bcom_com_x = Number(Moghunter.parameters['Com X-axis'] || -10);
|
||||
Moghunter.bcom_com_y = Number(Moghunter.parameters['Com Y-axis'] || 0);
|
||||
Moghunter.bcom_arrow = String(Moghunter.parameters['Arrow'] || true);
|
||||
Moghunter.bcom_arrow_x = Number(Moghunter.parameters['Arrow X-axis'] || 5);
|
||||
Moghunter.bcom_arrow_y = Number(Moghunter.parameters['Arrow Y-axis'] || 0);
|
||||
Moghunter.bcom_row_max = Number(Moghunter.parameters['Row Max'] || 4);
|
||||
Moghunter.bcom_zoom_effect = String(Moghunter.parameters['Zoom Animation'] || true);
|
||||
Moghunter.bcom_zoom_rate = Number(Moghunter.parameters['Zoom Rate'] || 1.30);
|
||||
Moghunter.bcom_zoom_speed = Number(Moghunter.parameters['Zoom Speed'] || 0.015);
|
||||
Moghunter.bcom_zoom_loop = String(Moghunter.parameters['Zoom Loop'] || true);
|
||||
Moghunter.bcom_slide_effect = String(Moghunter.parameters['Slide Animation'] || true);
|
||||
Moghunter.bcom_slide_x = Number(Moghunter.parameters['Slide X'] || 30);
|
||||
Moghunter.bcom_slide_y = Number(Moghunter.parameters['Slide Y'] || 0);
|
||||
Moghunter.bcom_com_name = String(Moghunter.parameters['Com Name'] || false);
|
||||
Moghunter.bcom_com_name_x = Number(Moghunter.parameters['Com Name X-axis'] || 55);
|
||||
Moghunter.bcom_com_name_y = Number(Moghunter.parameters['Com Name Y-axis'] || 75);
|
||||
Moghunter.bcom_com_font_size = Number(Moghunter.parameters['Com Font Size'] || 22);
|
||||
Moghunter.bcom_ring_range = Number(Moghunter.parameters['Ring Range'] || 70);
|
||||
Moghunter.bcom_pi_range = Number(Moghunter.parameters['Pi Range'] || 2.0);
|
||||
Moghunter.bcom_ring_anime = String(Moghunter.parameters['Ring Motion'] || true);
|
||||
Moghunter.bcom_side_input = String(Moghunter.parameters['Side Input'] || true);
|
||||
Moghunter.bcom_cursor = String(Moghunter.parameters['Cursor'] || true);
|
||||
Moghunter.bcom_cursor_x = Number(Moghunter.parameters['Cursor X-axis'] || 0);
|
||||
Moghunter.bcom_cursor_y = Number(Moghunter.parameters['Cursor Y-axis'] || 0);
|
||||
Moghunter.bcom_cursor_slide = String(Moghunter.parameters['Cursor Slide'] || true);
|
||||
Moghunter.bcom_face = String(Moghunter.parameters['Face'] || true);
|
||||
Moghunter.bcom_face_x = Number(Moghunter.parameters['Face X-axis'] || 0);
|
||||
Moghunter.bcom_face_y = Number(Moghunter.parameters['Face Y-axis'] || -50);
|
||||
|
||||
if (Imported.MOG_BattleHud) {
|
||||
//=============================================================================
|
||||
// ** ImageManager
|
||||
//=============================================================================
|
||||
|
||||
//==============================
|
||||
// * BHud
|
||||
//==============================
|
||||
ImageManager.loadBcom = function (filename) {
|
||||
return this.loadBitmap('img/battlecommands/', filename, 0, true);
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// ** Game_Temp
|
||||
//=============================================================================
|
||||
|
||||
//==============================
|
||||
// * Initialize
|
||||
//==============================
|
||||
var _alias_mog_bcom_temp_initialize = Game_Temp.prototype.initialize;
|
||||
Game_Temp.prototype.initialize = function () {
|
||||
_alias_mog_bcom_temp_initialize.call(this);
|
||||
this._bcom_need_refresh = false;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// ** Game_Interpreter
|
||||
//=============================================================================
|
||||
|
||||
//==============================
|
||||
// * Command129
|
||||
//==============================
|
||||
var _alias_mog_bcom_command129 = Game_Interpreter.prototype.command129;
|
||||
Game_Interpreter.prototype.command129 = function () {
|
||||
_alias_mog_bcom_command129.call(this);
|
||||
$gameTemp._bcom_need_refresh = true;
|
||||
return true;
|
||||
};
|
||||
|
||||
//=============================================================================
|
||||
// ** Window Command
|
||||
//=============================================================================
|
||||
|
||||
//==============================
|
||||
// * Setup
|
||||
//==============================
|
||||
var _mog_batCom_Wact_setup = Window_ActorCommand.prototype.setup;
|
||||
Window_ActorCommand.prototype.setup = function (actor) {
|
||||
_mog_batCom_Wact_setup.call(this, actor);
|
||||
if (this._actor) { this.battle_commands_initialize() };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Battle Com Initialize
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.battle_commands_initialize = function () {
|
||||
this._oldID = -1;
|
||||
if (!this._actor) { this.clearComSprites(); return };
|
||||
this._oldID = this._actor._actorId;
|
||||
this.com_pic_initialize();
|
||||
this.load_com_images();
|
||||
this.create_com_sprites();
|
||||
this.refresh_com_sprites()
|
||||
this._old_visible = this.visible;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * clear Com Sprites
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.clearComSprites = function () {
|
||||
if (this._layout) { this.removeChild(this._layout); this._layout = null };
|
||||
if (this._face) { this.removeChild(this._face); this._face = null };
|
||||
if (this._cursor_b) { this.removeChild(this._cursor_b); this._cursor_b = null };
|
||||
if (this._com_name) { this.removeChild(this._com_name); this._com_name = null };
|
||||
if (this._arrow) {
|
||||
for (var i = 0; i < 2; i++) {
|
||||
this.removeChild(this._arrow[i])
|
||||
};
|
||||
this._arrow = null;
|
||||
};
|
||||
if (this._com_sprites) { this.com_sprites_clear(); this._com_sprites = null };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Load Com Images
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.com_pic_initialize = function () {
|
||||
this.com_sprites_clear();
|
||||
this._com_mode_b = Math.min(Math.max(Moghunter.bcom_mode, 0), 1);
|
||||
this._com_images = [];
|
||||
this._com_sprites = [];
|
||||
this._com_index = this._index;
|
||||
this._max_com = 0;
|
||||
this._wh = [0, 0];
|
||||
this._zoom = [0, 0];
|
||||
this._np = [0, 0];
|
||||
this._arrow_slide = [0, 0, 0];
|
||||
this._arrow_org_y = [0, 0];
|
||||
this._cursor_nxy = [0, 0];
|
||||
this._cursor_slide = false;
|
||||
this.sel_time = 0;
|
||||
this._side = [];
|
||||
this._side_m = [0, 0];
|
||||
this._ring_move = false;
|
||||
this._side_input = false;
|
||||
if (String(Moghunter.bcom_side_input) === "true") { this._side_input = true };
|
||||
if (String(Moghunter.bcom_ring_anime) === "true") { this._ring_move = true };
|
||||
this._rol_range = Moghunter.bcom_ring_range;
|
||||
this._pi = Moghunter.bcom_pi_range * Math.PI;
|
||||
if (String(Moghunter.bcom_slide_effect) === "true") { this._side_m = [Moghunter.bcom_slide_x, Moghunter.bcom_slide_y] };
|
||||
this._row_max = Math.max(Moghunter.bcom_row_max - 1, 1)
|
||||
this._zoom_speed = Math.max(Moghunter.bcom_zoom_speed, 0.001)
|
||||
this._zoom_rate = Math.max(Moghunter.bcom_zoom_rate, 1.00)
|
||||
this._zoom_effect = false;
|
||||
if (String(Moghunter.bcom_zoom_effect) === "true") { this._zoom_effect = true };
|
||||
this._loop_zoom_effect = false;
|
||||
if (String(Moghunter.bcom_zoom_loop) === "true") { this._loop_zoom_effect = true };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Com Sprites Clear
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.com_sprites_clear = function () {
|
||||
if (this._com_sprites) {
|
||||
for (var i = 0; i < this._com_sprites.length; i++) {
|
||||
this.removeChild(this._com_sprites[i]);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Load Com Images
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.load_com_images = function () {
|
||||
this._com_images = [];
|
||||
for (var i = 0; i < this._list.length; i++) {
|
||||
if (this._max_com < this._list.length) { this._max_com = this._list.length }
|
||||
for (var r = 0; r < this._list.length; r++) {
|
||||
this._com_images.push(ImageManager.loadBcom("Com_" + this._list[r].name));
|
||||
};
|
||||
};
|
||||
this._layout_img = ImageManager.loadBcom("Layout");
|
||||
this._cursor_b_img = ImageManager.loadBcom("Cursor");
|
||||
if (String(Moghunter.bcom_arrow) === "true") { this._arrow_img = ImageManager.loadBcom("Arrow") };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Com Sprites
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.create_com_sprites = function () {
|
||||
this.create_layout();
|
||||
if (String(Moghunter.bcom_face) === "true") { this.create_face() };
|
||||
this.create_commands();
|
||||
if (String(Moghunter.bcom_cursor) === "true") { this.create_cursor() };
|
||||
if (String(Moghunter.bcom_arrow) === "true") { this.create_arrows() };
|
||||
if (String(Moghunter.bcom_com_name) === "true") { this.create_com_name() };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Layout
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.create_layout = function () {
|
||||
if (this._layout) { this.removeChild(this._layout) };
|
||||
this._layout = new Sprite(this._layout_img);
|
||||
this._layout.x = Moghunter.bcom_lay_x;
|
||||
this._layout.y = Moghunter.bcom_lay_y;
|
||||
this.addChild(this._layout);
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Face
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.create_face = function () {
|
||||
if (this._face) { this.removeChild(this._face) };
|
||||
var fname = String("Face_" + this._actor._actorId)
|
||||
var face_img = ImageManager.loadBcom(fname);
|
||||
this._face = new Sprite(face_img);
|
||||
this._face.x = Moghunter.bcom_face_x;
|
||||
this._face.y = Moghunter.bcom_face_y;
|
||||
this.addChild(this._face);
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Cursor
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.create_cursor = function () {
|
||||
if (this._cursor_b) { this.removeChild(this._cursor_b) };
|
||||
this._cursor_b = new Sprite(this._cursor_b_img);
|
||||
this._cursor_b.anchor.x = 0.5;
|
||||
this._cursor_b.anchor.y = 0.5;
|
||||
this._cursor_b_s = [0, 0, 0, 0, 0];
|
||||
if (String(Moghunter.bcom_cursor_slide) === "true") { this._cursor_slide = true };
|
||||
this.addChild(this._cursor_b);
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Cursor B
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_cursor_b = function () {
|
||||
if (this._cursor_slide) { this.update_cursor_slide() };
|
||||
var nx = this._cursor_nxy[0] + Moghunter.bcom_cursor_x + this._cursor_b_s[2];
|
||||
var ny = this._cursor_nxy[1] + Moghunter.bcom_cursor_y;
|
||||
this._cursor_b.x = this.sprite_move_to(this._cursor_b.x, nx, this.com_move_speed());
|
||||
this._cursor_b.y = this.sprite_move_to(this._cursor_b.y, ny, this.com_move_speed());
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Cursor Slide
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_cursor_slide = function () {
|
||||
this._cursor_b_s[4] += 1;
|
||||
if (this._cursor_b_s[4] < 2) { return };
|
||||
this._cursor_b_s[4] = 0;
|
||||
this._cursor_b_s[3] += 1;
|
||||
if (this._cursor_b_s[3] < 15) { this._cursor_b_s[2] += 1 }
|
||||
else if (this._cursor_b_s[3] < 30) { this._cursor_b_s[2] -= 1 }
|
||||
else { this._cursor_b_s[2] = 0; this._cursor_b_s[3] = 0 };
|
||||
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Commands
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.create_commands = function () {
|
||||
for (var i = 0; i < this._max_com; i++) {
|
||||
this._com_sprites[i] = new Sprite();
|
||||
this._com_sprites[i].enabled = this.isCommandEnabled(i);
|
||||
this._com_sprites[i].anchor.x = 0.5;
|
||||
this._com_sprites[i].anchor.y = 0.5;
|
||||
this.addChild(this._com_sprites[i]);
|
||||
this._side[i] = [0, 0];
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Arrows
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.create_arrows = function () {
|
||||
if (this._com_mode_b === 1) { return }
|
||||
if (this._arrow) {
|
||||
for (var i = 0; i < 2; i++) {
|
||||
this.removeChild(this._arrow[i])
|
||||
};
|
||||
};
|
||||
this._arrow = [];
|
||||
for (var i = 0; i < 2; i++) {
|
||||
this._arrow[i] = new Sprite(this._arrow_img);
|
||||
this._arrow[i].anchor.x = 0.5;
|
||||
this._arrow[i].anchor.y = 0.5;
|
||||
this.addChild(this._arrow[i]);
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Com Name
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.create_com_name = function () {
|
||||
if (this._com_name) { this.removeChild(this._com_name) };
|
||||
this._com_name = new Sprite(new Bitmap(90, 32))
|
||||
this._com_name.x = Moghunter.bcom_com_name_x + 45;
|
||||
this._com_name.y = Moghunter.bcom_com_name_y + 16;
|
||||
this._com_name.bitmap.fontSize = Moghunter.bcom_com_font_size;
|
||||
this.addChild(this._com_name);
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Refresh Com Name
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.refresh_com_name = function () {
|
||||
this._com_name.bitmap.clear();
|
||||
this._com_name.opacity = 0;
|
||||
this._com_name.anchor.x = 0.5;
|
||||
this._com_name.anchor.y = 0.5;
|
||||
this._com_name.bitmap.drawText(this.command_name(), 0, 0, this._com_name.bitmap.width, 32, "center");
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Refresh Index
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.refresh_index = function () {
|
||||
this._com_index = this._index;
|
||||
if (this._com_name) { this.refresh_com_name(); }
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Refresh Com Sprites
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.refresh_com_sprites = function () {
|
||||
this._com_index = -1;
|
||||
this._wh = [0, 0];
|
||||
this._zoom = [0, 0];
|
||||
this.refresh_bitmap_com();
|
||||
this._layout.opacity = 0;
|
||||
if (this._arrow) { this.refresh_arrow_position() };
|
||||
this.position_clear();
|
||||
this.update_battle_commands();
|
||||
if (this._com_mode_b === 1) { this.refresh_ring_command() };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Refresh Bitmap Com
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.refresh_bitmap_com = function () {
|
||||
for (var i = 0; i < this.maxCom(); i++) {
|
||||
this._com_sprites[i].bitmap = this._com_images[i];
|
||||
this._com_images.enabled = this.isCommandEnabled(i);
|
||||
this._wh[0] = this.width / 2;
|
||||
if (this._wh[1] < this._com_sprites[i].bitmap.height) { this._wh[1] = this._com_sprites[i].bitmap.height };
|
||||
};
|
||||
for (var i = 0; i < this.maxCom(); i++) {
|
||||
this._com_sprites[i].x = this._wh[0] + Moghunter.bcom_com_x;
|
||||
this._com_sprites[i].y = this._wh[1] + (this._wh[1] * i) + Moghunter.bcom_com_y;
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Refresh Arrow Position
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.refresh_arrow_position = function () {
|
||||
this._arrow_org_y = [-Moghunter.bcom_arrow_y, this._wh[1] * ((this.limit_rows_sp() + 2)) + Moghunter.bcom_arrow_y];
|
||||
this._arrow[0].x = this._wh[0] + Moghunter.bcom_arrow_x;
|
||||
this._arrow[0].y = this._arrow_org_y[0];
|
||||
this._arrow[1].x = this._wh[0] + Moghunter.bcom_arrow_x;;
|
||||
this._arrow[1].y = this._arrow_org_y[1];
|
||||
this._arrow[1].scale.y = -1;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Arrow Visible
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_arrow_visible = function () {
|
||||
this._arrow[0].visible = false;
|
||||
this._arrow[1].visible = false;
|
||||
if (this._index > this.limit_rows_sp()) { this._arrow[0].visible = true };
|
||||
if (this.maxCom() > (this.limit_rows_sp() + 1)) {
|
||||
this._arrow[1].visible = true;
|
||||
if (this._index === (this.maxCom() - 1)) { this._arrow[1].visible = false }
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Position Clear
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.position_clear = function () {
|
||||
this._old_visible = this.visible;
|
||||
for (var i = 0; i < this._com_sprites.length; i++) {
|
||||
this._com_sprites[i].opacity = 0;
|
||||
};
|
||||
for (var i = 0; i < this.maxCom(); i++) {
|
||||
if (this._com_mode_b === 0) {
|
||||
this.position_clear_mode_0(i);
|
||||
} else {
|
||||
this._com_sprites[i].x = this._wh[0];
|
||||
this._com_sprites[i].y = this._wh[1] + (this._wh[1] * i);
|
||||
};
|
||||
this._com_sprites[i].scale.x = 1.00;
|
||||
this._com_sprites[i].scale.y > 1.00;
|
||||
};
|
||||
if (this._com_mode_b === 1) { this.refresh_ring_command() };
|
||||
if (this._com_name) { this._com_name.opacity = 0 };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Position Clear Mode 0
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.position_clear_mode_0 = function (i) {
|
||||
if (this._index > this.limit_rows_sp()) {
|
||||
if (i >= this._index - this.limit_rows_sp() && i <= this._index) {
|
||||
this._com_sprites[i].opacity = this.translucentOpacity();
|
||||
} else {
|
||||
this._com_sprites[i].opacity = 0;
|
||||
};
|
||||
} else {
|
||||
if (i > this.limit_rows_sp()) {
|
||||
this._com_sprites[i].opacity = 0;
|
||||
} else {
|
||||
this._com_sprites[i].opacity = this.translucentOpacity();
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * processWheel
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.processWheel = function () {
|
||||
if (this.isOpenAndActive()) {
|
||||
var threshold = 20;
|
||||
if (TouchInput.wheelY >= threshold) {
|
||||
this._index++;
|
||||
SoundManager.playCursor();
|
||||
if (this._index > (this.maxCom() - 1)) { this._index = 0 };
|
||||
};
|
||||
if (TouchInput.wheelY <= -threshold) {
|
||||
this._index--;
|
||||
SoundManager.playCursor();
|
||||
if (this._index < 0) { this._index = (this.maxCom() - 1) };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Input Commands
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_input_commands = function () {
|
||||
if (this._side_input) { this.update_side_input() };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Side Input
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_side_input = function () {
|
||||
if (this.isOpenAndActive()) {
|
||||
if (Input.isRepeated('right')) {
|
||||
SoundManager.playCursor();
|
||||
if (this._com_mode_b === 1) {
|
||||
this._index--;
|
||||
if (this._index < 0) { this._index = (this.maxCom() - 1) };
|
||||
} else {
|
||||
this._index++;
|
||||
if (this._index > (this.maxCom() - 1)) { this._index = 0 };
|
||||
}
|
||||
};
|
||||
if (Input.isRepeated('left')) {
|
||||
SoundManager.playCursor();
|
||||
if (this._com_mode_b === 1) {
|
||||
this._index++;
|
||||
if (this._index > (this.maxCom() - 1)) { this._index = 0 };
|
||||
} else {
|
||||
this._index--;
|
||||
if (this._index < 0) { this._index = (this.maxCom() - 1) };
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * LineHeight
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.lineHeight = function () {
|
||||
return 1;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Max Com
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.maxCom = function () {
|
||||
if (!this._list) { return 0 };
|
||||
return this._list.length;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Limit Rows SP
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.limit_rows_sp = function () {
|
||||
if (this._com_mode_b === 1) { this.maxCom() };
|
||||
return this._row_max;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Com Fade Speed
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.com_fade_speed = function () {
|
||||
return 20;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Com Move Speed
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.com_move_speed = function () {
|
||||
if (this._com_mode_b === 1) { return 5 };
|
||||
return 20;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Com Zoom Speed
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.com_zoom_speed = function () {
|
||||
return this._zoom_speed;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Com Zoom Rate
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.com_zoom_rate = function () {
|
||||
return this._zoom_rate;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Limit Height
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.limit_height = function (i) {
|
||||
if (this._index >= this.limit_rows_sp()) {
|
||||
return (this._index - this.limit_rows_sp()) * this._wh[1];
|
||||
};
|
||||
return 0;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Command Name
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.command_name = function () {
|
||||
if (!this._list || !this._list[this._index]) { return "" };
|
||||
return this._list[this._index].name;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * need Reset Com
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.needResetCom = function () {
|
||||
if (!this._com_sprites) { return true };
|
||||
if (this._actor && this._oldID != this._actor._actorId) { return true };
|
||||
return false
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Com Sprites
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_battle_commands = function () {
|
||||
if (this.needResetCom()) {
|
||||
if (this._actor) { this.battle_commands_initialize() };
|
||||
return
|
||||
};
|
||||
this.contentsOpacity = 0;
|
||||
this.opacity = 0;
|
||||
if (this._com_index != this._index) { this.refresh_index() };
|
||||
for (var i = 0; i < this._com_sprites.length; i++) {
|
||||
if (i <= this.maxCom()) {
|
||||
this._com_sprites[i].visible = true;
|
||||
this.update_commands(i);
|
||||
} else {
|
||||
this._com_sprites[i].opacity = 0;
|
||||
this._com_sprites[i].visible = false;
|
||||
};
|
||||
};
|
||||
if (this._old_visible != this.visible) { this.position_clear() };
|
||||
if (this._arrow) { this.update_arrow() };
|
||||
if (this._cursor_b) { this.update_cursor_b() };
|
||||
if (this._com_name) { this._com_name.opacity += this.com_fade_speed() };
|
||||
this._layout.opacity += this.com_fade_speed();
|
||||
this.update_input_commands();
|
||||
if (this._com_mode_b === 0 && this._wh && this._wh[1] === 0) {
|
||||
this.refresh_bitmap_com();
|
||||
if (this._arrow) { this.refresh_arrow_position() };
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Arrow
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_arrow = function () {
|
||||
this.update_arrow_slide();
|
||||
this.update_arrow_visible();
|
||||
this._arrow[0].y = this._arrow_org_y[0] - this._arrow_slide[0];
|
||||
this._arrow[1].y = this._arrow_org_y[1] + this._arrow_slide[0];
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Arrow
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_arrow_slide = function () {
|
||||
this._arrow_slide[2]++
|
||||
if (this._arrow_slide[2] < 2) { return };
|
||||
this._arrow_slide[2] = 0
|
||||
this._arrow_slide[1] += 0.5;
|
||||
if (this._arrow_slide[1] < 5) {
|
||||
this._arrow_slide[0] += 1;
|
||||
} else if (this._arrow_slide[1] < 10) {
|
||||
this._arrow_slide[0] -= 1
|
||||
} else {
|
||||
this._arrow_slide = [0, 0];
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Sprite Move To
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.sprite_move_to = function (value, real_value, speed) {
|
||||
if (value == real_value) { return value };
|
||||
var dnspeed = 5 + (Math.abs(value - real_value) / speed);
|
||||
if (value > real_value) {
|
||||
value -= dnspeed;
|
||||
if (value < real_value) { value = real_value };
|
||||
}
|
||||
else if (value < real_value) {
|
||||
value += dnspeed;
|
||||
if (value > real_value) { value = real_value };
|
||||
};
|
||||
return Math.floor(value);
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Commands
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_commands = function (i) {
|
||||
this.update_position(i);
|
||||
this.update_effect_selection(i);
|
||||
if (!this._com_sprites[i].enabled) { this._com_sprites[i].opacity = 90 };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Ring Command
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_ring_command = function (i, c_index) {
|
||||
if (i >= this.maxCom()) { this._com_sprites[i].visible = false };
|
||||
var rol_index = 1 / this.maxCom();
|
||||
if (this._ring_move) { var si = c_index }
|
||||
else { var si = 0 };
|
||||
var now_p = rol_index * (si - i);
|
||||
var r_p = this._pi * -now_p;
|
||||
this._wh[0] = Math.floor(this._rol_range * Math.sin(r_p));
|
||||
this._wh[1] = -Math.floor(this._rol_range * Math.cos(r_p));
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Refresh Ring Position
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.refresh_ring_command = function () {
|
||||
for (var i = 0; i < this._com_sprites.legth; i++) {
|
||||
this._com_sprites[i].visible = false;
|
||||
};
|
||||
for (var i = 0; i < this.maxCom(); i++) {
|
||||
this.update_ring_command(i, i)
|
||||
this._com_sprites[i].x = this.width / 2 + Moghunter.bcom_com_x;
|
||||
this._com_sprites[i].y = this.height / 2 + Moghunter.bcom_com_y;
|
||||
this._com_sprites[i].visible = true;
|
||||
this._com_sprites[i].opacity = 0;
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Position
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_position = function (i) {
|
||||
if (this._com_mode_b === 0) {
|
||||
this._np[0] = this._wh[0] + Moghunter.bcom_com_x + this._side[i][0];
|
||||
this._np[1] = this._wh[1] + (this._wh[1] * i) - this.limit_height() + Moghunter.bcom_com_y + this._side[i][1];
|
||||
} else {
|
||||
this.update_ring_command(i, this._index);
|
||||
this._np[0] = (this.width / 2) + this._wh[0] + Moghunter.bcom_com_x + this._side[i][0];
|
||||
this._np[1] = (this.height / 2) + this._wh[1] + Moghunter.bcom_com_y + this._side[i][1];
|
||||
};
|
||||
this._com_sprites[i].x = this.sprite_move_to(this._com_sprites[i].x, this._np[0], this.com_move_speed());
|
||||
this._com_sprites[i].y = this.sprite_move_to(this._com_sprites[i].y, this._np[1], this.com_move_speed());
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Effect Selection
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_effect_selection = function (i) {
|
||||
if (this._index === i) {
|
||||
this.update_on_index(i);
|
||||
} else {
|
||||
this.update_off_index(i);
|
||||
};
|
||||
this._com_sprites[i].scale.y = this._com_sprites[i].scale.x;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update On Index
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_on_index = function (i) {
|
||||
this._side[i] = [this._side_m[0], this._side_m[1]];
|
||||
this._cursor_nxy = [this._com_sprites[i].x - (this._com_sprites[i].bitmap.width / 2), this._com_sprites[i].y];
|
||||
this._com_sprites[i].opacity += this.com_fade_speed();
|
||||
if (this._zoom_effect) { this.update_zoom_effect(i); };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Off Index
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_off_index = function (i) {
|
||||
this._side[i] = [0, 0];
|
||||
if (this._com_sprites[i].opacity > this.translucentOpacity()) { this._com_sprites[i].opacity -= this.com_fade_speed() };
|
||||
if (this._com_mode_b === 0) {
|
||||
this.update_off_mode_0(i)
|
||||
} else {
|
||||
if (this._com_sprites[i].opacity < this.translucentOpacity()) { this._com_sprites[i].opacity += this.com_fade_speed() };
|
||||
};
|
||||
if (this._com_sprites[i].scale.x > 1.00) { this._com_sprites[i].scale.x -= this.com_zoom_speed() };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Off Mode 0
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_off_mode_0 = function (i) {
|
||||
if (this._index > this.limit_rows_sp()) {
|
||||
if (i >= this._index - this.limit_rows_sp() && i <= this._index) {
|
||||
if (this._com_sprites[i].opacity < this.translucentOpacity()) { this._com_sprites[i].opacity += this.com_fade_speed() };
|
||||
} else {
|
||||
this._com_sprites[i].opacity -= this.com_fade_speed();
|
||||
};
|
||||
} else {
|
||||
if (i > this.limit_rows_sp()) {
|
||||
this._com_sprites[i].opacity -= this.com_fade_speed();
|
||||
} else {
|
||||
if (this._com_sprites[i].opacity < this.translucentOpacity()) { this._com_sprites[i].opacity += this.com_fade_speed() };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Zoom Effect
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_zoom_effect = function (i) {
|
||||
if (this._zoom[0] === 0) {
|
||||
if (this._com_sprites[i].scale.x < this.com_zoom_rate()) { this._com_sprites[i].scale.x += this.com_zoom_speed() };
|
||||
if (this._loop_zoom_effect && this._com_sprites[i].scale.x >= this.com_zoom_rate()) { this._zoom[0] = 1 };
|
||||
} else {
|
||||
this._com_sprites[i].scale.x -= this.com_zoom_speed();
|
||||
if (this._com_sprites[i].scale.x <= 1.00) { this._zoom[0] = 0 };
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Process Touch
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.processTouch = function () {
|
||||
if (this.isOpenAndActive()) {
|
||||
if (TouchInput.isCancelled()) {
|
||||
if (this.isCancelEnabled()) {
|
||||
this.processCancel();
|
||||
};
|
||||
} else if (TouchInput.isTriggered() && this.isTouchedInsideCom()) {
|
||||
this.sel_time = 5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Process Touch
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.isTouchedInsideCom = function () {
|
||||
for (var i = 0; i < this._com_sprites.length; i++) {
|
||||
if (this._com_sprites[i].visible && this._com_sprites[i].opacity > 25) {
|
||||
if (TouchInput.x > this.x + this._com_sprites[i].x - (this._com_sprites[i].bitmap.width / 2) &&
|
||||
TouchInput.x < this.x + this._com_sprites[i].x + this._com_sprites[i].bitmap.width - (this._com_sprites[i].bitmap.width / 2) &&
|
||||
TouchInput.y > this.y + this._com_sprites[i].y - (this._com_sprites[i].bitmap.height / 2) &&
|
||||
TouchInput.y < this.y + this._com_sprites[i].y + this._com_sprites[i].bitmap.height - (this._com_sprites[i].bitmap.height / 2)) { this._index = i; return true };
|
||||
};
|
||||
};
|
||||
return false;
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update Wait Selection
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.update_wait_selection = function () {
|
||||
this.sel_time--;
|
||||
if (this.sel_time === 0) { this.processOk(); };
|
||||
if (BattleManager._actorIndex >= 0) { this.update_battle_commands() };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Update
|
||||
//==============================
|
||||
var _alias_mog_bcom_wcom_update = Window_ActorCommand.prototype.update;
|
||||
Window_ActorCommand.prototype.update = function () {
|
||||
if ($gameTemp._bcom_need_refresh) { $gameTemp._bcom_need_refresh = false; this.battle_commands_initialize() };
|
||||
if (this.sel_time > 0) { this.update_wait_selection(); return; };
|
||||
_alias_mog_bcom_wcom_update.call(this);
|
||||
if (BattleManager._actorIndex >= 0) { this.update_battle_commands() };
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Set Mcursor Data
|
||||
//==============================
|
||||
Window_ActorCommand.prototype.set_mcursor_data = function () {
|
||||
};
|
||||
|
||||
//==============================
|
||||
// * Create Layout Window
|
||||
//==============================
|
||||
var _alias_mog_bcom_sbat_create_layout_window = Scene_Battle.prototype.create_layout_window
|
||||
Scene_Battle.prototype.create_layout_window = function () {
|
||||
_alias_mog_bcom_sbat_create_layout_window.call(this)
|
||||
if (this._com_layout) { this.removeChild(this._com_layout) };
|
||||
};
|
||||
|
||||
};
|
||||
3860
www/js/plugins/MOG_BattleHud.js
Normal file
3860
www/js/plugins/MOG_BattleHud.js
Normal file
File diff suppressed because it is too large
Load diff
304
www/js/plugins/MadeWithMv.js
Normal file
304
www/js/plugins/MadeWithMv.js
Normal file
|
|
@ -0,0 +1,304 @@
|
|||
/*:
|
||||
* NOTE: Images are stored in the img/system folder.
|
||||
*
|
||||
* @plugindesc Show a Splash Screen "Made with MV" and/or a Custom Splash Screen before going to main screen.
|
||||
* @author Dan "Liquidize" Deptula
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* @param Show Made With MV
|
||||
* @desc Enabled/Disables showing the "Made with MV" splash screen.
|
||||
* OFF - false ON - true
|
||||
* Default: ON
|
||||
* @default true
|
||||
*
|
||||
* @param Made with MV Image
|
||||
* @desc The image to use when showing "Made with MV"
|
||||
* Default: MadeWithMv
|
||||
* @default MadeWithMv
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Show Custom Splash
|
||||
* @desc Enabled/Disables showing the "Made with MV" splash screen.
|
||||
* OFF - false ON - true
|
||||
* Default: OFF
|
||||
* @default false
|
||||
*
|
||||
* @param Custom Image
|
||||
* @desc The image to use when showing "Made with MV"
|
||||
* Default:
|
||||
* @default
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Fade Out Time
|
||||
* @desc The time it takes to fade out, in frames.
|
||||
* Default: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Fade In Time
|
||||
* @desc The time it takes to fade in, in frames.
|
||||
* Default: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Wait Time
|
||||
* @desc The time between fading in and out, in frames.
|
||||
* Default: 160
|
||||
* @default 160
|
||||
*
|
||||
*/
|
||||
/*:ja
|
||||
* メモ: イメージはimg/systemフォルダ内に保存されます。
|
||||
*
|
||||
* @plugindesc メイン画面へ進む前に、"Made with MV"のスプラッシュ画面もしくはカスタマイズされたスプラッシュ画面を表示します。
|
||||
* @author Dan "Liquidize" Deptula
|
||||
*
|
||||
* @help このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* @param Show Made With MV
|
||||
* @desc "Made with MV"のスプラッシュ画面を表示できる/できないようにします。
|
||||
* OFF - false ON - true
|
||||
* デフォルト: ON
|
||||
* @default true
|
||||
*
|
||||
* @param Made with MV Image
|
||||
* @desc "Made with MV"を表示する際に使用する画像
|
||||
* デフォルト: MadeWithMv
|
||||
* @default MadeWithMv
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Show Custom Splash
|
||||
* @desc "Made with MV"のスプラッシュ画面を表示できる/できないようにします。
|
||||
* OFF - false ON - true
|
||||
* デフォルト: OFF
|
||||
* @default false
|
||||
*
|
||||
* @param Custom Image
|
||||
* @desc "Made with MV"を表示する際に使用する画像
|
||||
* デフォルト:
|
||||
* @default
|
||||
* @require 1
|
||||
* @dir img/system/
|
||||
* @type file
|
||||
*
|
||||
* @param Fade Out Time
|
||||
* @desc フェードアウトに要する時間(フレーム数)
|
||||
* デフォルト: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Fade In Time
|
||||
* @desc フェードインに要する時間(フレーム数)
|
||||
* デフォルト: 120
|
||||
* @default 120
|
||||
*
|
||||
* @param Wait Time
|
||||
* @desc フェードインからフェードアウトまでに要する時間(フレーム数)
|
||||
* デフォルト: 160
|
||||
* @default 160
|
||||
*
|
||||
*/
|
||||
var Liquidize = Liquidize || {};
|
||||
Liquidize.MadeWithMV = {};
|
||||
Liquidize.MadeWithMV.Parameters = PluginManager.parameters('MadeWithMv');
|
||||
|
||||
Liquidize.MadeWithMV.ShowMV = JSON.parse(Liquidize.MadeWithMV.Parameters["Show Made With MV"]);
|
||||
Liquidize.MadeWithMV.MVImage = String(Liquidize.MadeWithMV.Parameters["Made with MV Image"]);
|
||||
Liquidize.MadeWithMV.ShowCustom = JSON.parse(Liquidize.MadeWithMV.Parameters["Show Custom Splash"]);
|
||||
Liquidize.MadeWithMV.CustomImage = String(Liquidize.MadeWithMV.Parameters["Custom Image"]);
|
||||
Liquidize.MadeWithMV.FadeOutTime = Number(Liquidize.MadeWithMV.Parameters["Fade Out Time"]) || 120;
|
||||
Liquidize.MadeWithMV.FadeInTime = Number(Liquidize.MadeWithMV.Parameters["Fade In Time"]) || 120;
|
||||
Liquidize.MadeWithMV.WaitTime = Number(Liquidize.MadeWithMV.Parameters["Wait Time"]) || 160;
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Splash
|
||||
//
|
||||
// This is a constructor, implementation is done in the inner scope.
|
||||
|
||||
function Scene_Splash() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
(function () {
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Boot
|
||||
//
|
||||
// The scene class for dealing with the game boot.
|
||||
|
||||
var _Scene_Boot_loadSystemImages = Scene_Boot.prototype.loadSystemImages;
|
||||
Scene_Boot.prototype.loadSystemImages = function () {
|
||||
_Scene_Boot_loadSystemImages.call(this);
|
||||
if (Liquidize.MadeWithMV.ShowMV) {
|
||||
ImageManager.loadSystem(Liquidize.MadeWithMV.MVImage);
|
||||
}
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
ImageManager.loadSystem(Liquidize.MadeWithMV.CustomImage);
|
||||
}
|
||||
};
|
||||
|
||||
var _Scene_Boot_start = Scene_Boot.prototype.start;
|
||||
Scene_Boot.prototype.start = function () {
|
||||
if ((Liquidize.MadeWithMV.ShowMV || Liquidize.MadeWithMV.ShowCustom) && !DataManager.isBattleTest() && !DataManager.isEventTest()) {
|
||||
SceneManager.goto(Scene_Splash);
|
||||
} else {
|
||||
_Scene_Boot_start.call(this);
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Splash
|
||||
//
|
||||
// The scene class for dealing with the splash screens.
|
||||
|
||||
Scene_Splash.prototype = Object.create(Scene_Base.prototype);
|
||||
Scene_Splash.prototype.constructor = Scene_Splash;
|
||||
|
||||
Scene_Splash.prototype.initialize = function () {
|
||||
Scene_Base.prototype.initialize.call(this);
|
||||
this._mvSplash = null;
|
||||
this._customSplash = null;
|
||||
this._mvWaitTime = Liquidize.MadeWithMV.WaitTime;
|
||||
this._customWaitTime = Liquidize.MadeWithMV.WaitTime;
|
||||
this._mvFadeOut = false;
|
||||
this._mvFadeIn = false;
|
||||
this._customFadeOut = false;
|
||||
this._customFadeIn = false;
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.create = function () {
|
||||
Scene_Base.prototype.create.call(this);
|
||||
this.createSplashes();
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.start = function () {
|
||||
Scene_Base.prototype.start.call(this);
|
||||
SceneManager.clearStack();
|
||||
if (this._mvSplash != null) {
|
||||
this.centerSprite(this._mvSplash);
|
||||
}
|
||||
if (this._customSplash != null) {
|
||||
this.centerSprite(this._customSplash);
|
||||
}
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.update = function () {
|
||||
if (Liquidize.MadeWithMV.ShowMV) {
|
||||
if (!this._mvFadeIn) {
|
||||
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
|
||||
this._mvFadeIn = true;
|
||||
} else {
|
||||
if (this._mvWaitTime > 0 && this._mvFadeOut == false) {
|
||||
this._mvWaitTime--;
|
||||
} else {
|
||||
if (this._mvFadeOut == false) {
|
||||
this._mvFadeOut = true;
|
||||
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
if (Liquidize.MadeWithMV.ShowMV && this._mvFadeOut == true) {
|
||||
if (!this._customFadeIn && this._fadeDuration == 0) {
|
||||
this._customSplash.opacity = 255;
|
||||
this._customWaitTime = Liquidize.MadeWithMV.WaitTime;
|
||||
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
|
||||
this._customFadeIn = true;
|
||||
} else {
|
||||
if (this._customWaitTime > 0 && this._customFadeOut == false) {
|
||||
this._customWaitTime--;
|
||||
} else {
|
||||
if (this._customFadeOut == false) {
|
||||
this._customFadeOut = true;
|
||||
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (!Liquidize.MadeWithMV.ShowMV) {
|
||||
if (!this._customFadeIn) {
|
||||
this._customSplash.opacity = 255;
|
||||
this.startFadeIn(Liquidize.MadeWithMV.FadeInTime, false);
|
||||
this._customFadeIn = true;
|
||||
} else {
|
||||
if (this._customWaitTime > 0 && this._customFadeOut == false) {
|
||||
this._customWaitTime--;
|
||||
} else {
|
||||
if (this._customFadeOut == false) {
|
||||
this._customFadeOut = true;
|
||||
this.startFadeOut(Liquidize.MadeWithMV.FadeOutTime, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
if (Liquidize.MadeWithMV.ShowMV && this._mvFadeOut == true && this._customFadeOut == true) {
|
||||
this.gotoTitleOrTest();
|
||||
} else if (!Liquidize.MadeWithMV.ShowMV && this._customFadeOut == true) {
|
||||
this.gotoTitleOrTest();
|
||||
}
|
||||
} else {
|
||||
if (this._mvFadeOut == true) {
|
||||
this.gotoTitleOrTest();
|
||||
}
|
||||
}
|
||||
|
||||
Scene_Base.prototype.update.call(this);
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.createSplashes = function () {
|
||||
if (Liquidize.MadeWithMV.ShowMV) {
|
||||
this._mvSplash = new Sprite(ImageManager.loadSystem(Liquidize.MadeWithMV.MVImage));
|
||||
this.addChild(this._mvSplash);
|
||||
}
|
||||
if (Liquidize.MadeWithMV.ShowCustom) {
|
||||
this._customSplash = new Sprite(ImageManager.loadSystem(Liquidize.MadeWithMV.CustomImage));
|
||||
this._customSplash.opacity = 0;
|
||||
this.addChild(this._customSplash);
|
||||
}
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.centerSprite = function (sprite) {
|
||||
sprite.x = Graphics.width / 2;
|
||||
sprite.y = Graphics.height / 2;
|
||||
sprite.anchor.x = 0.5;
|
||||
sprite.anchor.y = 0.5;
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.gotoTitleOrTest = function () {
|
||||
Scene_Base.prototype.start.call(this);
|
||||
SoundManager.preloadImportantSounds();
|
||||
if (DataManager.isBattleTest()) {
|
||||
DataManager.setupBattleTest();
|
||||
SceneManager.goto(Scene_Battle);
|
||||
} else if (DataManager.isEventTest()) {
|
||||
DataManager.setupEventTest();
|
||||
SceneManager.goto(Scene_Map);
|
||||
} else {
|
||||
this.checkPlayerLocation();
|
||||
DataManager.setupNewGame();
|
||||
SceneManager.goto(Scene_Title);
|
||||
Window_TitleCommand.initCommandPosition();
|
||||
}
|
||||
this.updateDocumentTitle();
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.updateDocumentTitle = function () {
|
||||
document.title = $dataSystem.gameTitle;
|
||||
};
|
||||
|
||||
Scene_Splash.prototype.checkPlayerLocation = function () {
|
||||
if ($dataSystem.startMapId === 0) {
|
||||
throw new Error('Player\'s starting position is not set');
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
228
www/js/plugins/Mano_CoinShop.js
Normal file
228
www/js/plugins/Mano_CoinShop.js
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
|
||||
//=============================================================================
|
||||
// Mano_CoinShop.js
|
||||
// ----------------------------------------------------------------------------
|
||||
// Copyright (c) 2019-2019 Sigureya
|
||||
// This software is released under the MIT License.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
// ----------------------------------------------------------------------------
|
||||
// Version
|
||||
// 0.9.0 2019/05/26 初版
|
||||
// ----------------------------------------------------------------------------
|
||||
// [Twitter]: https://twitter.com/Sigureya/
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc 変数やアイテムを消費して購入できるショップが作れます。
|
||||
* 競合率・中ぐらい
|
||||
* @author しぐれん(https://github.com/Sigureya/RPGmakerMV)
|
||||
*
|
||||
* @help
|
||||
* お金の代わりに変数やアイテムを消費して購入できるショップを作成できます。
|
||||
*
|
||||
* 内部的には専用の財布を作って、そこに処理を流します。
|
||||
* 既存処理を再定義しているため、競合の可能性があります。
|
||||
* (ポイントカードのようなプラグインを使っている場合、これより後ろにおいてください)
|
||||
*
|
||||
* プラグインコマンドで以下の内容を入力してください。
|
||||
* 設定変更は1回のみ有効です。
|
||||
*
|
||||
* ShopMode モード 識別番号 単位
|
||||
* パラメータは上記の通りです。
|
||||
* この機能を使った場合、売却機能は強制的にロックされます。
|
||||
*
|
||||
* ShopMode Variable 8 枚
|
||||
* お金の代わりに変数8番の数値を見ます。
|
||||
* 単位として「枚」を使うようになります。
|
||||
*
|
||||
* ShopMode item 3 個
|
||||
* お金の代わりにitemID[3]のアイテムの所持数を見ます
|
||||
* 単位として「個」を使うようになります。
|
||||
*
|
||||
* 2019/05/26 公開
|
||||
*
|
||||
*/
|
||||
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
class WalletBase {
|
||||
|
||||
/**
|
||||
* @param {String} unit
|
||||
*/
|
||||
constructor(unit) {
|
||||
this.setUnit(unit || TextManager.currencyUnit);
|
||||
}
|
||||
/**
|
||||
* @param {String} unit
|
||||
*/
|
||||
setUnit(unit) {
|
||||
this._unit = unit;
|
||||
}
|
||||
|
||||
value() {
|
||||
return 0;
|
||||
}
|
||||
pay(value) {
|
||||
}
|
||||
|
||||
loseValue(value) {
|
||||
this.pay(value);
|
||||
}
|
||||
|
||||
gainValue(value) {
|
||||
this.pay(-value);
|
||||
}
|
||||
unit() {
|
||||
return this._unit;
|
||||
}
|
||||
|
||||
canSeil() {
|
||||
return false;
|
||||
}
|
||||
|
||||
isGold() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
class WalletGold extends WalletBase {
|
||||
constructor() {
|
||||
super(TextManager.currencyUnit);
|
||||
}
|
||||
value() {
|
||||
return $gameParty.gold();
|
||||
}
|
||||
pay(value) {
|
||||
$gameParty.loseGold(value);
|
||||
}
|
||||
canSeil() {
|
||||
return true;
|
||||
}
|
||||
isGold() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
class WalletItem extends WalletBase {
|
||||
/**
|
||||
* @param {Number} itemId
|
||||
*/
|
||||
constructor(itemId) {
|
||||
super();
|
||||
this._itemId = itemId;
|
||||
}
|
||||
|
||||
item() {
|
||||
return $dataItems[this._itemId];
|
||||
}
|
||||
|
||||
value() {
|
||||
return $gameParty.numItems(this.item());
|
||||
}
|
||||
|
||||
pay(value) {
|
||||
$gameParty.loseItem(this.item(), value);
|
||||
}
|
||||
|
||||
}
|
||||
window[WalletItem.name] = WalletItem;
|
||||
|
||||
class WalletVariable extends WalletBase {
|
||||
/**
|
||||
* @param {Number} id
|
||||
*/
|
||||
constructor(id) {
|
||||
super();
|
||||
this._variableId = id;
|
||||
}
|
||||
value() {
|
||||
return $gameVariables.value(this._variableId);
|
||||
}
|
||||
|
||||
pay(value) {
|
||||
const lastValue = this.value();
|
||||
$gameVariables.setValue(this._variableId, lastValue - value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {WalletBase}
|
||||
* @param {String} mode
|
||||
* @param {Number} id
|
||||
*/
|
||||
function makeWallet(mode, id) {
|
||||
if (mode === "item") {
|
||||
const wi = new WalletItem(id);
|
||||
return wi;
|
||||
}
|
||||
|
||||
if (mode === "variable") {
|
||||
const wv = new WalletVariable(id);
|
||||
return wv;
|
||||
}
|
||||
|
||||
return new WalletGold();
|
||||
}
|
||||
|
||||
let g_wallet = null;
|
||||
const Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (cmd, args) {
|
||||
if (cmd === "ShopMode") {
|
||||
const mode = args[0];
|
||||
const id = Number(args[1]);
|
||||
const unit = args[2];
|
||||
const wallet = makeWallet(mode, id);
|
||||
wallet.setUnit(unit);
|
||||
g_wallet = wallet;
|
||||
return;
|
||||
}
|
||||
Game_Interpreter_pluginCommand.call(this, cmd, args);
|
||||
};
|
||||
|
||||
const Scene_Load_onLoadSuccess = Scene_Load.prototype.onLoadSuccess
|
||||
Scene_Load.prototype.onLoadSuccess = function () {
|
||||
g_wallet = null;
|
||||
Scene_Load_onLoadSuccess.call(this);
|
||||
};
|
||||
|
||||
Window_Gold.prototype.setupWallet = function () {
|
||||
const w = g_wallet || new WalletGold();
|
||||
this._wallet = w;
|
||||
g_wallet = null;
|
||||
};
|
||||
Window_Gold.prototype.value = function () {
|
||||
return this._wallet.value();
|
||||
};
|
||||
|
||||
Window_Gold.prototype.currencyUnit = function () {
|
||||
return this._wallet.unit();
|
||||
};
|
||||
Window_Gold.prototype.wallet = function () {
|
||||
return this._wallet;
|
||||
};
|
||||
|
||||
const Window_Gold_initialize = Window_Gold.prototype.initialize;
|
||||
Window_Gold.prototype.initialize = function (x, y) {
|
||||
this.setupWallet();
|
||||
Window_Gold_initialize.call(this, x, y);
|
||||
};
|
||||
const Scene_Shop_createGoldWindow = Scene_Shop.prototype.createGoldWindow;
|
||||
Scene_Shop.prototype.createGoldWindow = function () {
|
||||
Scene_Shop_createGoldWindow.call(this);
|
||||
this._purchaseOnly = this._purchaseOnly || !this._goldWindow.wallet().canSeil();
|
||||
};
|
||||
|
||||
Scene_Shop.prototype.doBuy = function (number) {
|
||||
this._goldWindow.wallet().loseValue(number * this.buyingPrice());
|
||||
$gameParty.gainItem(this._item, number);
|
||||
};
|
||||
|
||||
Scene_Shop.prototype.doSell = function (number) {
|
||||
const p = number * this.sellingPrice();
|
||||
this._goldWindow.wallet().gainValue(p);
|
||||
$gameParty.loseItem(this._item, number);
|
||||
};
|
||||
|
||||
})();
|
||||
1
www/js/plugins/README.md
Normal file
1
www/js/plugins/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
# EnemyAnimetion
|
||||
1802
www/js/plugins/SAN_AnalogMove.js
Normal file
1802
www/js/plugins/SAN_AnalogMove.js
Normal file
File diff suppressed because it is too large
Load diff
795
www/js/plugins/SRD_TimedAttackCore.js
Normal file
795
www/js/plugins/SRD_TimedAttackCore.js
Normal file
|
|
@ -0,0 +1,795 @@
|
|||
/*:
|
||||
* @plugindesc Adds a system which forces the user to time certain inputs to preform actions during battle.
|
||||
* @author SumRndmDde
|
||||
*
|
||||
* @param Enable Touch?
|
||||
* @desc If set to 'true', the Player can touch the screen in order to interact with the Timed Attacks.
|
||||
* @default true
|
||||
*
|
||||
* @param Default Source
|
||||
* @desc If the Skill notebox lacks TAS notetags, it will use:
|
||||
* None, Actor, Class, or Weapon
|
||||
* @default None
|
||||
*
|
||||
* @param == Window Options ==
|
||||
* @default
|
||||
*
|
||||
* @param X Alignment
|
||||
* @desc The X alignment of the "Timed Attack" Window.
|
||||
* The choices are: Left, Center, Right
|
||||
* @default Center
|
||||
*
|
||||
* @param Y Alignment
|
||||
* @desc The Y alignment of the "Timed Attack" Window.
|
||||
* The choices are: Top, Center, Bottom
|
||||
* @default Top
|
||||
*
|
||||
* @param X Offset
|
||||
* @desc A value added to the X of the "Timed Attack" Window.
|
||||
* This can be a Number or JavaScript eval.
|
||||
* @default 0
|
||||
*
|
||||
* @param Y Offset
|
||||
* @desc A value added to the Y of the "Timed Attack" Window.
|
||||
* This can be a Number or JavaScript eval.
|
||||
* @default 0
|
||||
*
|
||||
* @param Window Width
|
||||
* @desc The width of the "Timed Attack" Window.
|
||||
* This can be a Number or JavaScript eval.
|
||||
* @default Graphics.width
|
||||
*
|
||||
* @param Window Height
|
||||
* @desc The height of the "Timed Attack" Window.
|
||||
* This can be a Number or JavaScript eval.
|
||||
* @default this.fittingHeight(3)
|
||||
*
|
||||
* @param == Default Props. ==
|
||||
* @default
|
||||
*
|
||||
* @param Sound Effect
|
||||
* @desc The default Sound Effect when one is not specified.
|
||||
* Input filename of Sound Effect in /audio/se/
|
||||
* @default Sword2
|
||||
*
|
||||
* @param Cursor Image
|
||||
* @desc The default Cursor Image when one is not specified.
|
||||
* Input filename of Cursor Image in /img/SumRndmDde/tas/
|
||||
* @default
|
||||
*
|
||||
* @param Background Image
|
||||
* @desc The default Background Image when one is not specified.
|
||||
* Input filename of Background Image in /img/SumRndmDde/tas/
|
||||
* @default DefaultBackground
|
||||
*
|
||||
* @param Window Opacity
|
||||
* @desc The opacity of the Window when one is not specified.
|
||||
* Input a Number between 0 and 255.
|
||||
* @default 255
|
||||
*
|
||||
* @param Target Location
|
||||
* @desc The default Target Location when one is not specified.
|
||||
* Input a Number or JavaScript eval.
|
||||
* @default Graphics.width / 2
|
||||
*
|
||||
* @param Repeat Type
|
||||
* @desc The default Repeat Type when one is not specified.
|
||||
* The choices are: None, Repeat, Reverse
|
||||
* @default None
|
||||
*
|
||||
* @param Speed
|
||||
* @desc The default Speed when one is not specified.
|
||||
* Input a Positive Number or JavaScript Formula
|
||||
* @default 10
|
||||
*
|
||||
* @param Main Color
|
||||
* @desc The default Color when one is not specified.
|
||||
* Input a JavaScript or HTML Color
|
||||
* @default #FFFFFF
|
||||
*
|
||||
* @param Shape
|
||||
* @desc If not using an Image, this shape will be used.
|
||||
* Input either "Rectangle" or "Oval"
|
||||
* @default Rectangle
|
||||
*
|
||||
* @param Width
|
||||
* @desc The default Width when one is not specified.
|
||||
* Input a Positive Number
|
||||
* @default 24
|
||||
*
|
||||
* @param Outline Color
|
||||
* @desc The default Outline Color when one is not specified.
|
||||
* Input a JavaScript or HTML Color
|
||||
* @default #000000
|
||||
*
|
||||
* @param Outline Size
|
||||
* @desc The default Outline Size when one is not specified.
|
||||
* Input a Positive Number
|
||||
* @default 3
|
||||
*
|
||||
* @param Direction
|
||||
* @desc The default Direction when one is not specified.
|
||||
* Input "Right", "Left", or "Random"
|
||||
* @default Right
|
||||
*
|
||||
* @param Flash Rate
|
||||
* @desc The default Flash Rate when one is not specified.
|
||||
* Input a Positive Number
|
||||
* @default 8
|
||||
*
|
||||
* @help
|
||||
*
|
||||
* Timed Attack Core
|
||||
* Version 1.23
|
||||
* SumRndmDde
|
||||
*
|
||||
*
|
||||
* This Plugin adds a system which forces the user to time certain inputs
|
||||
* to preform actions during battle.
|
||||
*
|
||||
* Using this Plugin, you can add a variety of "Timed Attacks" by
|
||||
* manipulating existing ones or adding more using extension Plugins.
|
||||
*
|
||||
* By itself, this Plugin adds one Timed Attack: Default Timed Attack.
|
||||
*
|
||||
* It is based off of the Timed Attack system from Undertale.
|
||||
*
|
||||
*
|
||||
* ==========================================================================
|
||||
* How to Customize Skill's Damage/Effect from Timed Attack
|
||||
* ==========================================================================
|
||||
*
|
||||
* Use $gameTemp.tas_power to have the power affect the skill.
|
||||
* This value will be a value from 0 to 1 depending on how close the
|
||||
* "Timed Attack" was to being perfect.
|
||||
*
|
||||
* For example:
|
||||
* (a.atk * 4 - b.def * 2) * ($gameTemp.tas_power)
|
||||
*
|
||||
* In that example, getting a perfect hit in the "Timed Attack" would result
|
||||
* in full damage, and getting any besides perfect would give only a percent
|
||||
* of the full damage.
|
||||
*
|
||||
*
|
||||
* ==========================================================================
|
||||
* Background Image (Default Timed Attack)
|
||||
* ==========================================================================
|
||||
*
|
||||
* For the Default Timed Attack, you want a background image that will
|
||||
* cover the entire window, preferably 816x144, though it could be different
|
||||
* depending on the size of your screen.
|
||||
*
|
||||
* Place the image in /img/SumRndmDde/tas/
|
||||
* It should be named: DefaultBackground.png
|
||||
*
|
||||
*
|
||||
* ==========================================================================
|
||||
* How to Set a Skill to Use a Timed Attack
|
||||
* ==========================================================================
|
||||
*
|
||||
* Use the Notetag:
|
||||
*
|
||||
* <Timed Attack: default>
|
||||
* <End Timed Attack>
|
||||
*
|
||||
* Setting those in a Skill's notebox will activate the "Timed Attack System"
|
||||
* for that Skill.
|
||||
*
|
||||
* The part that says "default" can be changed to have other types of "Timed
|
||||
* Attacks" be used.
|
||||
*
|
||||
*
|
||||
* ==========================================================================
|
||||
* Default Timed Attack Properties
|
||||
* ==========================================================================
|
||||
*
|
||||
* You can manipulate the properties of each Timed Attack by adding them
|
||||
* in the Notetags. For example:
|
||||
*
|
||||
* <Timed Attack: default>
|
||||
* Speed: 15
|
||||
* Color: #00FFFF
|
||||
* Outline Color: black
|
||||
* <End Timed Attack>
|
||||
*
|
||||
* As you can see, there are a couple of factors you can use to even make one
|
||||
* individual Timed Attack different for each Skill it is used with.
|
||||
*
|
||||
*
|
||||
* Here are all the properties for Default Timed Attack:
|
||||
*
|
||||
* Sound Effect: (Input filename of Sound Effect in /audio/se/)
|
||||
* Background Image: (Input filename of for in /img/SumRndmDde/tas/)
|
||||
* Cursor Image: (Input filename of for in /img/SumRndmDde/tas/)**
|
||||
* Window Opacity: (Input a Number from 0 to 255)
|
||||
* Target Location: (Input Number or JavaScript eval)
|
||||
* Repeat Type: (Input one of the following: None, Repeat, Reverse)
|
||||
* Speed: (Input a Positive Number or JavaScript Formula)*
|
||||
* Main Color: (Input a JavaScript or HTML Color)
|
||||
* Shape: (Input "Rectangle" or "Oval")
|
||||
* Width: (Input a Positive Number)
|
||||
* Outline Color: (Input a JavaScript or HTML Color)
|
||||
* Outline Size: (Input a Positive Number)
|
||||
* Direction: (Input "Right", "Left", or "Random")
|
||||
* Flash Rate: (Input a Positive Number)
|
||||
*
|
||||
* *The JavaScript Formula can use 'f' to represent "Frame Count".
|
||||
* **Leave blank to use rectangle or circle image
|
||||
*
|
||||
*
|
||||
* ==========================================================================
|
||||
* End of Help File
|
||||
* ==========================================================================
|
||||
*
|
||||
* Welcome to the bottom of the Help file.
|
||||
*
|
||||
*
|
||||
* Thanks for reading!
|
||||
* If you have questions, or if you enjoyed this Plugin, please check
|
||||
* out my YouTube channel!
|
||||
*
|
||||
* https://www.youtube.com/c/SumRndmDde
|
||||
*
|
||||
*
|
||||
* Until next time,
|
||||
* ~ SumRndmDde
|
||||
*/
|
||||
|
||||
var SRD = SRD || {};
|
||||
SRD.TimedAttack = SRD.TimedAttack || {};
|
||||
|
||||
var Imported = Imported || {};
|
||||
Imported["SumRndmDde Timed Attack Core"] = 1.21;
|
||||
|
||||
function TimedAttackSystem() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
|
||||
(function (_) {
|
||||
|
||||
"use strict";
|
||||
_.pass = "SumRndmDde Timed Attack Core";
|
||||
|
||||
_.TAS_ID = 'default';
|
||||
|
||||
var params = PluginManager.parameters('SRD_TimedAttackCore');
|
||||
|
||||
_.default = String(params['Default Source']).trim().toLowerCase();
|
||||
_.allowTouch = String(params['Enable Touch?']).trim().toLowerCase() === 'true';
|
||||
|
||||
_.xAlign = String(params['X Alignment']).trim().toLowerCase();
|
||||
_.yAlign = String(params['Y Alignment']).trim().toLowerCase();
|
||||
_.xPos = String(params['X Offset']);
|
||||
_.yPos = String(params['Y Offset']);
|
||||
_.myWidth = String(params['Window Width']);
|
||||
_.myHeight = String(params['Window Height']);
|
||||
|
||||
_.se = String(params['Sound Effect']);
|
||||
_.image = String(params['Cursor Image']);
|
||||
_.bi = String(params['Background Image']);
|
||||
_.opacity = parseInt(params['Window Opacity']);
|
||||
_.target = String(params['Target Location']);
|
||||
_.rt = String(PluginManager.parameters('SRD_TimedAttack_Circle')['Repeat Type']).trim().toLowerCase();
|
||||
_.speed = String(params['Speed']);
|
||||
_.color = String(params['Main Color']);
|
||||
_.shape = String(params['Shape']).trim().toLowerCase();
|
||||
_.width = parseInt(params['Width']);
|
||||
_.outline = String(params['Outline Color']);
|
||||
_.size = parseInt(params['Outline Size']);
|
||||
_.direction = String(params['Direction']).trim().toLowerCase();
|
||||
_.flash = parseInt(params['Flash Rate']);
|
||||
|
||||
_.activateCondition = (_.allowTouch) ? "Input.isTriggered('ok') || TouchInput.isTriggered()" : "Input.isTriggered('ok')";
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// SRD.TimedAttackSystem
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
_.loadImage = function (file, hue) {
|
||||
return ImageManager.loadBitmap('img/SumRndmDde/tas/', file, hue, true);
|
||||
};
|
||||
|
||||
_.loadNotetagsSkills = function (data) {
|
||||
var regex = /<\s*Timed\s*Attack\s*:\s*(.*)\s*>([\d\D\n\r]*)<\s*End\s*Timed\s*Attack\s*>/im;
|
||||
var actorRegex = /<\s*Timed\s*Attack\s*:\s*actor\s*>/im;
|
||||
var classRegex = /<\s*Timed\s*Attack\s*:\s*class\s*>/im;
|
||||
var weaponRegex = /<\s*Timed\s*Attack\s*:\s*weapon\s*>/im;
|
||||
for (var i = 1; i < data.length; i++) {
|
||||
if (data[i].note.match(regex)) {
|
||||
var type = String(RegExp.$1).trim().toLowerCase();
|
||||
var info = String(RegExp.$2);
|
||||
data[i].meta["SRD TAS"] = { type: type, info: info };
|
||||
_.organizeInfo(data[i].meta["SRD TAS"]);
|
||||
} else if (data[i].note.match(weaponRegex)) {
|
||||
var type = "weapon";
|
||||
var info = false;
|
||||
data[i].meta["SRD TAS"] = { type: type, info: info };
|
||||
_.organizeInfo(data[i].meta["SRD TAS"]);
|
||||
} else if (data[i].note.match(classRegex)) {
|
||||
var type = "class";
|
||||
var info = false;
|
||||
data[i].meta["SRD TAS"] = { type: type, info: info };
|
||||
_.organizeInfo(data[i].meta["SRD TAS"]);
|
||||
} else if (data[i].note.match(actorRegex)) {
|
||||
var type = "actor";
|
||||
var info = false;
|
||||
data[i].meta["SRD TAS"] = { type: type, info: info };
|
||||
_.organizeInfo(data[i].meta["SRD TAS"]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_.loadNotetagsEverythingElse = function (data) {
|
||||
var regex = /<\s*Timed\s*Attack\s*:\s*(.*)\s*>([\d\D\n\r]*)<\s*End\s*Timed\s*Attack\s*>/im;
|
||||
for (var i = 1; i < data.length; i++) {
|
||||
if (data[i].note.match(regex)) {
|
||||
var type = String(RegExp.$1).trim().toLowerCase();
|
||||
var info = String(RegExp.$2);
|
||||
data[i].meta["SRD TAS"] = { type: type, info: info };
|
||||
_.organizeInfo(data[i].meta["SRD TAS"]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_.organizeInfo = function (o) {
|
||||
if (o.type === _.TAS_ID) {
|
||||
_.loadImage(_.image);
|
||||
_.loadImage(_.bi);
|
||||
if (o.info.match(/Sound[ ]?Effect:\s*(.*)/im)) o.se = String(RegExp.$1);
|
||||
if (o.info.match(/Cursor[ ]?Image:\s*(.*)/im)) o.image = String(RegExp.$1);
|
||||
if (o.info.match(/Background[ ]?Image:\s*(.*)/im)) o.bi = String(RegExp.$1);
|
||||
if (o.info.match(/Window[ ]?Opacity:\s*(.*)/im)) o.opacity = parseInt(RegExp.$1);
|
||||
if (o.info.match(/Target[ ]?Location:\s*(.*)/im)) o.target = String(RegExp.$1);
|
||||
if (o.info.match(/Repeat[ ]?Type:\s*(.*)/im)) o.rt = String(RegExp.$1).trim().toLowerCase();
|
||||
if (o.info.match(/Speed:\s*(.*)/im)) o.speed = String(RegExp.$1);
|
||||
if (o.info.match(/Main[ ]?Color:\s*(.*)/im)) o.color = String(RegExp.$1);
|
||||
if (o.info.match(/Shape:\s*(.*)/im)) o.shape = String(RegExp.$1).trim().toLowerCase();
|
||||
if (o.info.match(/Width:\s*(.*)/im)) o.width = parseInt(RegExp.$1);
|
||||
if (o.info.match(/Outline[ ]?Color:\s*(.*)/im)) o.outline = String(RegExp.$1);
|
||||
if (o.info.match(/Outline[ ]?Size:\s*(.*)/im)) o.size = parseInt(RegExp.$1);
|
||||
if (o.info.match(/Direction:\s*(.*)/im)) o.direction = String(RegExp.$1).trim().toLowerCase();
|
||||
if (o.info.match(/Flash[ ]?Rate:\s*(.*)/im)) o.flash = parseInt(RegExp.$1);
|
||||
if (!o.speed) o.speed = _.speed;
|
||||
if (!o.color) o.color = _.color;
|
||||
if (!o.shape) o.shape = _.shape;
|
||||
if (!o.width) o.width = _.width;
|
||||
if (!o.outline && o.outline !== 0) o.outline = _.outline;
|
||||
if (!o.size) o.size = _.size;
|
||||
if (!o.direction) o.direction = _.direction;
|
||||
if (!o.flash && o.flash !== 0) o.flash = _.flash;
|
||||
if (!o.se) o.se = _.se;
|
||||
if (!o.image) o.image = _.image;
|
||||
else _.loadImage(o.image);
|
||||
if (!o.bi) o.bi = _.bi;
|
||||
else _.loadImage(o.bi)
|
||||
if (!o.opacity && o.opacity !== 0) o.opacity = _.opacity;
|
||||
if (!o.target) o.target = _.target;
|
||||
if (!o.rt) o.rt = _.rt;
|
||||
|
||||
if (o.image.trim().length > 0) o.shape = 'image';
|
||||
}
|
||||
};
|
||||
|
||||
_.notDefault = function () {
|
||||
return _.default === 'actor' || _.default === 'class' || _.default === 'weapon';
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// DataManager
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
var notetagsLoaded = false;
|
||||
var _DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
|
||||
DataManager.isDatabaseLoaded = function () {
|
||||
if (!_DataManager_isDatabaseLoaded.call(this)) return false;
|
||||
if (!notetagsLoaded) {
|
||||
_.loadNotetagsSkills($dataSkills);
|
||||
_.loadNotetagsEverythingElse($dataActors);
|
||||
_.loadNotetagsEverythingElse($dataWeapons);
|
||||
_.loadNotetagsEverythingElse($dataWeapons);
|
||||
notetagsLoaded = true;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game_Temp
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
var _Game_Temp_initialize = Game_Temp.prototype.initialize;
|
||||
Game_Temp.prototype.initialize = function () {
|
||||
_Game_Temp_initialize.call(this);
|
||||
this._tasDamageRation = 1;
|
||||
this[_.pass + "Temp Disable LogWindow"] = true;
|
||||
};
|
||||
|
||||
Object.defineProperty(Game_Temp.prototype, 'tas_power', {
|
||||
get: function () {
|
||||
return this._tasDamageRation;
|
||||
},
|
||||
set: function (value) {
|
||||
this._tasDamageRation = Number(value).clamp(0, 999);
|
||||
},
|
||||
configurable: true
|
||||
});
|
||||
|
||||
Game_Temp.prototype.getTemporarilyDisableLogWindow = function () {
|
||||
return this[_.pass + "Temp Disable LogWindow"];
|
||||
};
|
||||
|
||||
Game_Temp.prototype.setTemporarilyDisableLogWindow = function (bool) {
|
||||
this[_.pass + "Temp Disable LogWindow"] = bool;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Battle
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
var _Scene_Battle_createAllWindows = Scene_Battle.prototype.createAllWindows;
|
||||
Scene_Battle.prototype.createAllWindows = function () {
|
||||
_Scene_Battle_createAllWindows.call(this);
|
||||
this._tasAttack = new TimedAttackSystem(0, 0);
|
||||
this._spriteset.addChild(this._tasAttack);
|
||||
BattleManager.setTASAttack(this._tasAttack);
|
||||
|
||||
if (_.xAlign === 'left') this._tasAttack._window.x = 0;
|
||||
else if (_.xAlign === 'right') this._tasAttack._window.x = Graphics.width - this._tasAttack._window.width;
|
||||
else this._tasAttack._window.x = (Graphics.width / 2) - (this._tasAttack._window.width / 2);
|
||||
|
||||
if (_.yAlign === 'top') this._tasAttack._window.y = 0;
|
||||
else if (_.yAlign === 'bottom') this._tasAttack._window.y = Graphics.height - this._tasAttack._window.height;
|
||||
else this._tasAttack._window.y = (Graphics.height / 2) - (this._tasAttack._window.height / 2);
|
||||
|
||||
this._tasAttack._window.x += eval(_.xPos);
|
||||
this._tasAttack._window.y += eval(_.yPos);
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// BattleManager
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
var _BattleManager_initMembers = BattleManager.initMembers;
|
||||
BattleManager.initMembers = function () {
|
||||
_BattleManager_initMembers.call(this);
|
||||
this[_.pass + "Allow TAS"] = [true, true];
|
||||
};
|
||||
|
||||
BattleManager.setTASAttack = function (tas) {
|
||||
this._tasAttackFrameWindow = tas;
|
||||
};
|
||||
|
||||
var _BattleManager_startAction = BattleManager.startAction;
|
||||
BattleManager.startAction = function () {
|
||||
_BattleManager_startAction.call(this);
|
||||
if (this._subject.isActor() && this._subject.currentAction() && this._subject.currentAction().makeTargets()) {
|
||||
var subject = this._subject;
|
||||
var action = subject.currentAction();
|
||||
var targets = action.makeTargets();
|
||||
this[_.pass + "Temp Subject"] = subject;
|
||||
this[_.pass + "Temp Action"] = action;
|
||||
this[_.pass + "Temp Targets"] = targets;
|
||||
$gameTemp.setTemporarilyDisableLogWindow(true);
|
||||
this._logWindow.push('performActionStart', subject, action);
|
||||
}
|
||||
};
|
||||
|
||||
BattleManager.checkIfTASActionAllowed = function () {
|
||||
return this._subject.isActor() && this[_.pass + "Temp Subject"];
|
||||
};
|
||||
|
||||
if (Imported.YEP_BattleEngineCore) {
|
||||
var _BattleManager_updatePhase = BattleManager.updatePhase;
|
||||
BattleManager.updatePhase = function () {
|
||||
if (!this._action.item().meta.isUsingTimedAttackActionSequences && this.checkIfTASActionAllowed() && (this._action.item().meta["SRD TAS"] || _.notDefault()) && this[_.pass + "Allow TAS"][0]) {
|
||||
if (this[_.pass + "Allow TAS"][1]) {
|
||||
if (this._action.item().meta["SRD TAS"].type === "actor" || (_.default === 'actor' && !this._action.item().meta["SRD TAS"])) {
|
||||
if (this._subject.actor().meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._subject.actor().meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
} else {
|
||||
this.endTASAttackThing();
|
||||
}
|
||||
} else if (this._action.item().meta["SRD TAS"].type === "class" || (_.default === 'class' && !this._action.item().meta["SRD TAS"])) {
|
||||
if (this._subject.currentClass() && this._subject.currentClass().meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._subject.currentClass().meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
} else {
|
||||
this.endTASAttackThing();
|
||||
}
|
||||
} else if (this._action.item().meta["SRD TAS"].type === "weapon" || (_.default === 'weapon' && !this._action.item().meta["SRD TAS"])) {
|
||||
if (this._subject.weapons()[0] && this._subject.weapons()[0].meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._subject.weapons()[0].meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
} else {
|
||||
this.endTASAttackThing();
|
||||
}
|
||||
} else if (this._action.item().meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._action.item().meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this._subject.isActor() && !this[_.pass + "Boolean 1"]) {
|
||||
$gameTemp.setTemporarilyDisableLogWindow(false);
|
||||
this._logWindow.startAction(this[_.pass + "Temp Subject"], this[_.pass + "Temp Action"]
|
||||
, this[_.pass + "Temp Targets"]);
|
||||
$gameTemp.setTemporarilyDisableLogWindow(true);
|
||||
this[_.pass + "Boolean 1"] = true;
|
||||
}
|
||||
_BattleManager_updatePhase.call(this);
|
||||
}
|
||||
};
|
||||
} else {
|
||||
var _BattleManager_updateAction = BattleManager.updateAction;
|
||||
BattleManager.updateAction = function () {
|
||||
if (this.checkIfTASActionAllowed() && (this._action.item().meta["SRD TAS"] || _.notDefault()) && this[_.pass + "Allow TAS"][0]) {
|
||||
if (this[_.pass + "Allow TAS"][1]) {
|
||||
if (this._action.item().meta["SRD TAS"].type === "actor" || (_.default === 'actor' && !this._action.item().meta["SRD TAS"])) {
|
||||
if (this._subject.actor().meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._subject.actor().meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
} else {
|
||||
this.endTASAttackThing();
|
||||
}
|
||||
} else if (this._action.item().meta["SRD TAS"].type === "class" || (_.default === 'class' && !this._action.item().meta["SRD TAS"])) {
|
||||
if (this._subject.currentClass() && this._subject.currentClass().meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._subject.currentClass().meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
} else {
|
||||
this.endTASAttackThing();
|
||||
}
|
||||
} else if (this._action.item().meta["SRD TAS"].type === "weapon" || (_.default === 'weapon' && !this._action.item().meta["SRD TAS"])) {
|
||||
if (this._subject.weapons()[0] && this._subject.weapons()[0].meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._subject.weapons()[0].meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
} else {
|
||||
this.endTASAttackThing();
|
||||
}
|
||||
} else if (this._action.item().meta["SRD TAS"]) {
|
||||
this._tasAttackFrameWindow.setItem(this._action.item().meta["SRD TAS"]);
|
||||
this._tasAttackFrameWindow.open();
|
||||
this._tasAttackFrameWindow.start();
|
||||
this[_.pass + "Allow TAS"][1] = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this._subject.isActor() && !this[_.pass + "Boolean 1"]) {
|
||||
$gameTemp.setTemporarilyDisableLogWindow(false);
|
||||
this._logWindow.startAction(this[_.pass + "Temp Subject"], this[_.pass + "Temp Action"]
|
||||
, this[_.pass + "Temp Targets"]);
|
||||
$gameTemp.setTemporarilyDisableLogWindow(true);
|
||||
this[_.pass + "Boolean 1"] = true;
|
||||
}
|
||||
_BattleManager_updateAction.call(this);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var _BattleManager_endAction = BattleManager.endAction;
|
||||
BattleManager.endAction = function () {
|
||||
this[_.pass + "Allow TAS"] = [true, true];
|
||||
this[_.pass + "Boolean 1"] = false;
|
||||
$gameTemp.tas_power = 1;
|
||||
_BattleManager_endAction.call(this);
|
||||
};
|
||||
|
||||
BattleManager.endTASAttackThing = function () {
|
||||
this[_.pass + "Allow TAS"][0] = false;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Window_BattleLog
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
var _Window_BattleLog_startAction = Window_BattleLog.prototype.startAction;
|
||||
Window_BattleLog.prototype.startAction = function (subject, action, targets) {
|
||||
if (!$gameTemp.getTemporarilyDisableLogWindow() || !subject.isActor()) {
|
||||
_Window_BattleLog_startAction.call(this, subject, action, targets);
|
||||
}
|
||||
};
|
||||
|
||||
var _Window_BattleLog_showAnimation = Window_BattleLog.prototype.showAnimation;
|
||||
Window_BattleLog.prototype.showAnimation = function (subject, targets, animationId) {
|
||||
if ($gameTemp.tas_power > 0 || !subject.isActor()) {
|
||||
_Window_BattleLog_showAnimation.call(this, subject, targets, animationId);
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// TimedAttackSystem
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
TimedAttackSystem.prototype = Object.create(Stage.prototype);
|
||||
TimedAttackSystem.prototype.constructor = TimedAttackSystem;
|
||||
|
||||
TimedAttackSystem.prototype.initialize = function (x, y) {
|
||||
var width = this.windowWidth();
|
||||
var height = this.windowHeight();
|
||||
Stage.prototype.initialize.call(this);
|
||||
this._window = new Window_Base(x, y, width, height);
|
||||
this._window.openness = 0;
|
||||
this._content = new Sprite(new Bitmap(Graphics.width, Graphics.height));
|
||||
this.addChild(this._window);
|
||||
this.addChild(this._content);
|
||||
this.openness = 0;
|
||||
this._notPressed = true;
|
||||
this._update = false;
|
||||
this._item = null;
|
||||
this._type = null;
|
||||
this._currentScale = 0;
|
||||
};
|
||||
|
||||
Object.defineProperty(TimedAttackSystem.prototype, 'contents', {
|
||||
get: function () {
|
||||
return this._window.contents;
|
||||
},
|
||||
configurable: true
|
||||
});
|
||||
|
||||
TimedAttackSystem.prototype.setItem = function (item) {
|
||||
this._item = item;
|
||||
this._type = item.type;
|
||||
this.loadItem(item);
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.lineHeight = function () {
|
||||
return 30;
|
||||
};
|
||||
TimedAttackSystem.prototype.gaugeBackColor = function () {
|
||||
return "#cccccc";
|
||||
};
|
||||
TimedAttackSystem.prototype.textWidth = function (text) {
|
||||
return this.contents.measureTextWidth(text);
|
||||
};
|
||||
TimedAttackSystem.prototype.fittingHeight = function (numLines) {
|
||||
return numLines * this.lineHeight() + Window_Base.prototype.standardPadding.call(this) * 2;
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.loadItem = function (item) {
|
||||
if (item.type === _.TAS_ID) {
|
||||
this._flash = item.flash;
|
||||
this._size = item.size;
|
||||
this._shape = item.shape;
|
||||
this._image = item.image;
|
||||
this._background = item.bi;
|
||||
this._se = item.se;
|
||||
this._target = item.target;
|
||||
this._rt = item.rt;
|
||||
this._xPosition = 0;
|
||||
this._xSpeed = 1;
|
||||
var direction = item.direction;
|
||||
if (direction === 'random') direction = (Math.random() < 0.5) ? 'right' : 'left';
|
||||
if (direction === 'right') {
|
||||
this._xPosition = 0;
|
||||
this._xSpeed = 1;
|
||||
}
|
||||
else if (direction === 'left') {
|
||||
this._xPosition = Graphics.width;
|
||||
this._xSpeed = -1;
|
||||
}
|
||||
this._origin = this._xPosition;
|
||||
this._window.opacity = this._item.opacity;
|
||||
}
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.start = function () {
|
||||
this.loadStart();
|
||||
this._update = true;
|
||||
this._frame = 0;
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.loadStart = function () {
|
||||
if (this._item.type === _.TAS_ID) {
|
||||
this._notPressed = true;
|
||||
this._flashTime = 0;
|
||||
this._window.openness = 255;
|
||||
}
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.open = function () {
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.close = function () {
|
||||
this._update = false;
|
||||
this._item = null;
|
||||
this._window.openness = 0;
|
||||
this._content.bitmap.clear();
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.update = function () {
|
||||
if (this._update && this._item) {
|
||||
if (this._type) this.updateGames();
|
||||
this._frame++;
|
||||
}
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.updateGames = function () {
|
||||
if (this._type === _.TAS_ID) this.playDefaultGame();
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.playDefaultGame = function () {
|
||||
//Movement
|
||||
if (this._notPressed) {
|
||||
var f = this._frame;
|
||||
this._xPosition += Number(eval(this._item.speed) * this._xSpeed);
|
||||
if (this._xPosition > this.windowWidth() || this._xPosition < -(this._item.width)) {
|
||||
if (this._rt === 'repeat') {
|
||||
this._xPosition = this._origin;
|
||||
} else if (this._rt === 'reverse') {
|
||||
this._xSpeed *= (-1);
|
||||
} else {
|
||||
this.setPower(0);
|
||||
this._flashTime = 45;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this._flashTime++;
|
||||
}
|
||||
if (this._flashTime === 45) {
|
||||
BattleManager.endTASAttackThing();
|
||||
this.close();
|
||||
}
|
||||
|
||||
//Draw
|
||||
this._window.contents.clear();
|
||||
var bit = _.loadImage(this._background);
|
||||
this._window.contents.blt(bit, 0, 0, bit.width, bit.height, 0, 0, this._window.contentsWidth(), this._window.contentsHeight());
|
||||
if (this._flashTime % this._flash < Math.floor(this._flash / 2)) {
|
||||
if (this._shape === 'image' && this._image != undefined) {
|
||||
var bitmap = _.loadImage(this._image);
|
||||
this._window.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, (this._xPosition - (bitmap.width / 2)), 0);
|
||||
} else if (this._shape === 'rectangle') {
|
||||
this.contents.fillRect(this._xPosition - (this._item.width / 2), 0, this._item.width,
|
||||
this.height - (this._window.standardPadding() * 2), this._item.outline);
|
||||
this.contents.fillRect(this._xPosition + this._size - (this._item.width / 2), 0 + this._size,
|
||||
this._item.width - (this._size * 2), this.height - (this._window.standardPadding() * 2) - (this._size * 2), this._item.color);
|
||||
} else if (this._shape === 'oval') {
|
||||
var height = this.height - (this._window.standardPadding() * 2);
|
||||
this._window.contents.drawCircle(this._xPosition - (this._item.width / 2), height / 2, this._item.width, this._item.outline);
|
||||
this._window.contents.drawCircle(this._xPosition + (this._size / 2) - 1 - (this._item.width / 2),
|
||||
(height / 2) + (this._size / 2) - 1, this._item.width - (this._size), this._item.color);
|
||||
}
|
||||
}
|
||||
|
||||
//Input
|
||||
if (eval(_.activateCondition) && this._notPressed) {
|
||||
this._notPressed = false;
|
||||
AudioManager.playSe({ "name": this._se, "pan": 0, "pitch": 100, "volume": 100 });
|
||||
var x = this._xPosition;
|
||||
var entireLength = this.width;
|
||||
var target = eval(this._target);
|
||||
this.setPower(Number(1 - (Math.abs(target - x) / (entireLength - target))));
|
||||
}
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.setPower = function (value) {
|
||||
$gameTemp.tas_power = value;
|
||||
this.showResults();
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.showResults = function () {
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.windowWidth = function () {
|
||||
return eval(_.myWidth);
|
||||
};
|
||||
|
||||
TimedAttackSystem.prototype.windowHeight = function () {
|
||||
return eval(_.myHeight);
|
||||
};
|
||||
|
||||
})(SRD.TimedAttack);
|
||||
834
www/js/plugins/SSEP_BattleSpeedUp_v2.js
Normal file
834
www/js/plugins/SSEP_BattleSpeedUp_v2.js
Normal file
|
|
@ -0,0 +1,834 @@
|
|||
//=============================================================================
|
||||
// sound sepher Engine - Battle Speed Up 高機能版
|
||||
// SSEP_BattleSpeedUp_v2.js
|
||||
// Version: 2.01
|
||||
//=============================================================================
|
||||
|
||||
var Imported = Imported || {};
|
||||
Imported.SSEP_BattleSpeedUp = true;
|
||||
|
||||
var Sepher = Sepher || {};
|
||||
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc [ver2.01] 戦闘速度を上げるプラグインです。YanflyEngine対応。
|
||||
* 利用時は、必ずYanflyEngineの後に読み込んでください。
|
||||
* @author Shoichiro Sakamoto(sound sepher)
|
||||
*
|
||||
* @help
|
||||
* ------------------------------------------------------------------------------
|
||||
* ■sound sepher Engine - "Battle Speed UP" Plugin (Ver2.01 '15 11/07)
|
||||
* ------------------------------------------------------------------------------
|
||||
* 制作:坂本昌一郎 / Shoichiro Sakamoto (sound sepher)
|
||||
* Web :http://sepher.jp/
|
||||
*
|
||||
* ------------------------------------------------------------------------------
|
||||
* ■内容説明
|
||||
* ------------------------------------------------------------------------------
|
||||
* このプラグインは戦闘速度を上げるプラグインです。
|
||||
* フロントビュー・サイドビュー両方に対応しています。
|
||||
*
|
||||
* また、YanflyEngineのBattleCore、アクションシーケンスパック(X_ActSeqPack1等)、
|
||||
* YEP Active Time Battle、VictoryAftermath、Ellye's Active Time Battle に対応。
|
||||
*
|
||||
* ------------------------------------------------------------------------------
|
||||
* ■使い方
|
||||
* ------------------------------------------------------------------------------
|
||||
* OKボタンを押しっぱなしにすると戦闘が早送りモードになります。
|
||||
* また、画面上に表示されるスイッチボタンを押すと常時早送りになります。
|
||||
* シフト(X)キーを押すことで、同様の効果を得ることも可能です。
|
||||
*
|
||||
* これらはすべてオフにすることもできます。
|
||||
*
|
||||
* 戦闘速度やスイッチ画像の設定を細かく調整することができます。
|
||||
* 設定項目の意味がわからない場合は、デフォルト状態でお使いください。
|
||||
* 通常ではGeneral Settingの値を変えるだけでも充分でしょう。
|
||||
*
|
||||
* YanflyEngineとEllye's ATBに対応していますが、プラグインマネージャでこれらの
|
||||
* プラグインの後にこのプラグインを置かないと正確に実行されません。
|
||||
* また、Ellye's ATBを使う場合は108行め"(function() {"と550行め"})();"を削除して、
|
||||
* 関数スコープを開放してください。
|
||||
*
|
||||
* ------------------------------------------------------------------------------
|
||||
* ■注意事項
|
||||
* ------------------------------------------------------------------------------
|
||||
* ・利用時は競合を避けるため、必ずYanflyEngineの後に読み込んでください。
|
||||
* ・サポートは行いませんので、自己責任でご利用ください。
|
||||
* ・できればtxtやクレジットに、前述の著作権表記を掲載して頂けたら嬉しいです。
|
||||
*
|
||||
* ------------------------------------------------------------------------------
|
||||
* ■パラメータの説明
|
||||
* ------------------------------------------------------------------------------
|
||||
* ・BattleSpeed (Default):OKボタンを押していないときの戦闘速度の倍数です。
|
||||
* ・BattleSpeed (Boost) :OKボタンを押してあるときの戦闘速度の倍数です。
|
||||
* 4倍速以上は効果がありません。
|
||||
* ・OkayKeyBoost :OKボタンを押しっぱなしにすることでブースト状態に
|
||||
* するかどうかを指定します。(true:する / false:しない)
|
||||
* ・VisibleSwitch :ブースト切り替えスイッチの表示可否です。
|
||||
* このスイッチを非表示にすると、BoostTggleSwitchも
|
||||
* 無効になります。(true:表示 / false:非表示)
|
||||
* ・BoostToggleSwitch :ブースト状態を切り替える際に押すボタンの名前です。
|
||||
* ------------------------------------------------------------------------------
|
||||
* ・StateIcon :敵のステートアイコン表示速度を調節します。
|
||||
* ・StateOverLay :味方のステートアニメのアニメ速度を調節します。
|
||||
* ・Weapon :サイドビューで味方が武器を振る速度です。
|
||||
* ・Motion :味方と敵のアニメーション速度です。
|
||||
* 待機アニメ・移動アニメ等の速度に影響します。
|
||||
* また、WeaponとMotionは同期していますので、
|
||||
* 値は同じにしたほうが無難です。
|
||||
* ・Balloon :吹き出しの表示速度です。
|
||||
* ・Damage :ダメージ数値の持続フレーム数です。
|
||||
* ・DamageMin :ダメージ数値の持続フレーム数の最低値です。
|
||||
* Damageを早く設定すると見づらいので、防止措置です。
|
||||
* ------------------------------------------------------------------------------
|
||||
* ・LogAnime BaseDelay :バトルログウィンドウの表示フレーム数です。
|
||||
* ・LogAnime NextDelay :バトルログウィンドウの持続フレーム数です。
|
||||
* ・LogWaitCount Default :バトルログウィンドウ表示中の待機フレーム数を
|
||||
* 指定倍数分、早くします。
|
||||
* ・LogWaitCount Boost :バトルログウィンドウ表示中の待機フレーム数を
|
||||
* 指定倍数分、早くします。(ブースト状態時)
|
||||
* なお、待機フレームはOKボタンを押しっぱなしにすると、
|
||||
* 更に早くすることができます。
|
||||
* ------------------------------------------------------------------------------
|
||||
* ・SE BoostON :ブースト状態をオンにしたときの効果音です。
|
||||
* ・SE BoostOFF :ブースト状態をオフにしたときの効果音です。
|
||||
* ・SE Volume :効果音の音量です。
|
||||
* ・SwitchImage :表示するスイッチ画像のファイル名です。
|
||||
* systemフォルダを参照します。
|
||||
* ・SwitchX :スイッチ画像を表示する位置Xを指定します。
|
||||
* ・SwitchY :スイッチ画像を表示する位置Yを指定します。
|
||||
* ・SwitchWidth :スイッチ1つ分の横幅のサイズを指定します。
|
||||
* ・SwitchHeight :スイッチ1つ分の縦幅のサイズを指定します。
|
||||
* ・SwitchTop :表示するスイッチ画像の段数を指定します。
|
||||
* 0が最上段で、数が増えるごとに段が下に移動します。
|
||||
* デフォルトではBalloonの2段め「?」を参照しています。
|
||||
* ・SwitchLeft :スイッチアニメの開始コマ数を指定します。
|
||||
* ・SwitchAnimePattern :スイッチアニメの最後のコマを指定します。
|
||||
* デフォルトでは、2コマ~8コマをループしています。
|
||||
* ・SwitchAnimeSpeed :スイッチアニメの表示速度をフレーム数で指定します。
|
||||
* ------------------------------------------------------------------------------
|
||||
* ★以下はYanflyEngine - BattleCore用追加オプション
|
||||
*
|
||||
* ・YEP Battle MotionWait:値が小さいほど攻撃演出のウェイトが早くなります。
|
||||
* ------------------------------------------------------------------------------
|
||||
* ★以下はYanflyEngine - Active Time Battle用追加オプション
|
||||
*
|
||||
* ・YEP ATB BoostSwitch :YEP ATBを導入時、ブーストするかどうか指定します。
|
||||
* (true:する / false:しない)
|
||||
* ------------------------------------------------------------------------------
|
||||
* ★以下はEllye & Yanfly ATB用追加オプション(両対応)
|
||||
*
|
||||
* ・ATB Speed(Default) :通常時のATゲージのスピードを倍数で指定します。
|
||||
* ・ATB Speed(Boost) :ブースト時のATゲージのスピードを倍数で指定します。
|
||||
* ------------------------------------------------------------------------------
|
||||
* ★以下はYanflyEngine - VictoryAftermath用追加オプション
|
||||
*
|
||||
* ・YEP Victory Motion :勝利時にブースト状態の場合、ウェイトを短縮します。
|
||||
* (true:短縮する / false:短縮しない)
|
||||
* ------------------------------------------------------------------------------
|
||||
*
|
||||
* @param ---General Setting---
|
||||
* @default
|
||||
* @param BattleSpeed (Default)
|
||||
* @desc デフォルトのアニメスピードです。初期値は1。
|
||||
* 武器攻撃以外のアニメ速度を指定の倍数分、早くします。
|
||||
* @default 1
|
||||
* @param BattleSpeed (Boost)
|
||||
* @desc 決定(OK)キー入力時のアニメスピードです。初期値は2。
|
||||
* 武器攻撃以外のアニメ速度を指定の倍数分、早くします。
|
||||
* @default 2
|
||||
* @param OkayKeyBoost
|
||||
* @desc 決定(OK)キー押しっぱなしでブースト状態にするかどうかです。
|
||||
* 初期値はtrue。
|
||||
* @default true
|
||||
* @param VisibleSwitch
|
||||
* @desc ブーストスイッチを表示するかどうか。初期値はtrue。
|
||||
* しない場合はBoostToggleSwitchも無効になります。
|
||||
* @default true
|
||||
* @param BoostToggleSwitch
|
||||
* @desc ブースト状態を切り替えるキーの名前を入力してください。
|
||||
* 初期値はshift。パッドではYボタンに相当。
|
||||
* @default shift
|
||||
* @param ---Detail Setting---
|
||||
* @default
|
||||
* @param StateIcon
|
||||
* @desc ステートアイコンのアニメスピードを指定します。
|
||||
* 初期値は40。
|
||||
* @default 40
|
||||
* @param StateOverlay
|
||||
* @desc ステートオーバーレイのアニメスピードを指定します
|
||||
* 初期値は8。
|
||||
* @default 8
|
||||
* @param Weapon
|
||||
* @desc サイドビュー時の武器攻撃のアニメスピードを指定します。
|
||||
* 初期値は12。Motionと同期してるので同じ値がおすすめ。
|
||||
* @default 12
|
||||
* @param Motion
|
||||
* @desc 行動モーションのアニメスピードを指定します。
|
||||
* 初期値は12。Weaponと同期してるので同じ値がおすすめ。
|
||||
* @default 12
|
||||
* @param Balloon
|
||||
* @desc バルーンのアニメスピードを指定します。
|
||||
* 初期値は12。
|
||||
* @default 12
|
||||
* @param Damage
|
||||
* @desc ダメージポップアップの持続フレーム数を指定します。
|
||||
* 初期値は90。早過ぎると目視できなくなるので要注意。
|
||||
* @default 90
|
||||
* @param DamageMin
|
||||
* @desc ダメージポップアップの持続フレーム数の最低値を指定します。
|
||||
* 初期値は60。このままにしておくことをオススメします。
|
||||
* @default 60
|
||||
* @param --BattleLog Setting--
|
||||
* @default
|
||||
* @param LogAnime BaseDelay
|
||||
* @desc バトルログウィンドウの表示フレーム数を指定します。
|
||||
* 初期値は8。BattleSpeed (Default)の影響を受けません。
|
||||
* @default 8
|
||||
* @param LogAnime NextDelay
|
||||
* @desc バトルログウィンドウの持続フレーム数を指定します。
|
||||
* 初期値は12。BattleSpeed (Default)の影響を受けません。
|
||||
* @default 12
|
||||
* @param LogWaitCount Default
|
||||
* @desc バトルログ表示中の待機フレームを指定倍数分、早くします。
|
||||
* 初期値は1。値を増やすとバトルログの速度がアップします。
|
||||
* @default 1
|
||||
* @param LogWaitCount Boost
|
||||
* @desc バトルログブースト中の待機フレームを指定倍数分、早くします。
|
||||
* 初期値は20。値を増やすとバトルログの速度がアップします。
|
||||
* @default 2
|
||||
* @param ---Switch Setting---
|
||||
* @default
|
||||
* @param SE BoostON
|
||||
* @desc ブースト状態をオンにしたときの効果音です。
|
||||
* 初期値はDecision2。
|
||||
* @default Decision2
|
||||
* @param SE BoostOFF
|
||||
* @desc ブースト状態をオフにしたときの効果音です。
|
||||
* 初期値はDecision2。
|
||||
* @default Decision2
|
||||
* @param SE Volume
|
||||
* @desc 効果音の音量です。初期値は50。
|
||||
* @default 50
|
||||
* @param SwitchImage
|
||||
* @desc 画像のファイル名です。systemフォルダを参照します。
|
||||
* 初期値はBalloon。
|
||||
* @default Balloon
|
||||
* @param SwitchX
|
||||
* @desc スイッチの位置Xです。初期値は10。
|
||||
* @default 10
|
||||
* @param SwitchY
|
||||
* @desc スイッチの位置Yです。初期値は10。
|
||||
* @default 10
|
||||
* @param SwitchWidth
|
||||
* @desc スイッチ横幅のサイズです。初期値は48。
|
||||
* @default 48
|
||||
* @param SwitchHeight
|
||||
* @desc スイッチ縦幅のサイズです。初期値は48。
|
||||
* @default 48
|
||||
* @param SwitchTop
|
||||
* @desc スイッチアニメの段数。0が最上段です。
|
||||
* 初期値は2。
|
||||
* @default 2
|
||||
* @param SwitchLeft
|
||||
* @desc スイッチアニメの開始コマ数。0が1コマめです。
|
||||
* 初期値は1。
|
||||
* @default 1
|
||||
* @param SwitchAnimePattern
|
||||
* @desc スイッチアニメの最後のコマです。
|
||||
* 初期値は8。
|
||||
* @default 8
|
||||
* @param SwitchAnimeSpeed
|
||||
* @desc スイッチのアニメスピードです。初期値は5。
|
||||
* @default 5
|
||||
* @param ---YEP BattleCore---
|
||||
* @default
|
||||
* @param YEP Battle MotionWait
|
||||
* @desc YEP BattleCoreを導入していた場合のみ設定可能です。
|
||||
* 初期値は20。値を減らすと攻撃演出のウェイトが早くなります。
|
||||
* @default 20
|
||||
* @param ---YEP ATB---
|
||||
* @default
|
||||
* @param YEP ATB BoostSwitch
|
||||
* @desc YEP ATBを導入していた場合のみ設定可能です。
|
||||
* 初期値はtrue。trueにするとブースト時にATBも速度を上げます。
|
||||
* @default true
|
||||
* @param ---ATB Speed---
|
||||
* @default
|
||||
* @param ATB Speed(Default)
|
||||
* @desc EllyeもしくはYEP ATBを導入していた場合のみ設定可能です。
|
||||
* 初期値は1。デフォルトのATゲージのスピードを倍数で指定します。
|
||||
* @default 1
|
||||
* @param ATB Speed(Boost)
|
||||
* @desc EllyeもしくはYEP ATBを導入していた場合のみ設定可能です。
|
||||
* 初期値は2。ブースト時のATゲージのスピードを倍数で指定します。
|
||||
* @default 2
|
||||
* @param ---YEP Victory AM---
|
||||
* @default
|
||||
* @param YEP Victory Wait
|
||||
* @desc YEP VictoryAftermathを導入していた場合のみ設定可能です。
|
||||
* 初期値はtrue。ブースト中、勝利時のウェイトを早くします。
|
||||
* @default true
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// グローバル変数
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
Sepher.Parameters = PluginManager.parameters('SSEP_BattleSpeedUp_v2');
|
||||
Sepher.Param = Sepher.Param || {};
|
||||
|
||||
Sepher.Param.BattleSpeedDefault = Number(Sepher.Parameters['BattleSpeed (Default)']);
|
||||
Sepher.Param.BattleSpeedBoost = Number(Sepher.Parameters['BattleSpeed (Boost)']);
|
||||
Sepher.Param.OkayKeyBoost = String(Sepher.Parameters['OkayKeyBoost']);
|
||||
Sepher.Param.VisibleSwitch = String(Sepher.Parameters['VisibleSwitch']);
|
||||
Sepher.Param.BoostToggleSwitch = String(Sepher.Parameters['BoostToggleSwitch']);
|
||||
Sepher.Param.StateIcon = Number(Sepher.Parameters['StateIcon']);
|
||||
Sepher.Param.StateOverlay = Number(Sepher.Parameters['StateOverlay']);
|
||||
Sepher.Param.Weapon = Number(Sepher.Parameters['Weapon']);
|
||||
Sepher.Param.Balloon = Number(Sepher.Parameters['Balloon']);
|
||||
Sepher.Param.Motion = Number(Sepher.Parameters['Motion']);
|
||||
Sepher.Param.Damage = Number(Sepher.Parameters['Damage']);
|
||||
Sepher.Param.DamageMin = Number(Sepher.Parameters['DamageMin']);
|
||||
Sepher.Param.LogBase = Number(Sepher.Parameters['LogAnime BaseDelay']);
|
||||
Sepher.Param.LogNext = Number(Sepher.Parameters['LogAnime NextDelay']);
|
||||
Sepher.Param.logWaitDefault = Number(Sepher.Parameters['LogWaitCount Default']);
|
||||
Sepher.Param.logWaitBoost = Number(Sepher.Parameters['LogWaitCount Boost']);
|
||||
Sepher.Param.seBoostON = String(Sepher.Parameters['SE BoostON']);
|
||||
Sepher.Param.seBoostOFF = String(Sepher.Parameters['SE BoostOFF']);
|
||||
Sepher.Param.seVolume = Number(Sepher.Parameters['SE Volume']);
|
||||
Sepher.Param.SwitchImage = String(Sepher.Parameters['SwitchImage']);
|
||||
Sepher.Param.SwitchX = Number(Sepher.Parameters['SwitchX']);
|
||||
Sepher.Param.SwitchY = Number(Sepher.Parameters['SwitchY']);
|
||||
Sepher.Param.SwitchWidth = Number(Sepher.Parameters['SwitchWidth']);
|
||||
Sepher.Param.SwitchHeight = Number(Sepher.Parameters['SwitchHeight']);
|
||||
Sepher.Param.SwitchTop = Number(Sepher.Parameters['SwitchTop']);
|
||||
Sepher.Param.SwitchLeft = Number(Sepher.Parameters['SwitchLeft']);
|
||||
Sepher.Param.SwitchAnimePattern = Number(Sepher.Parameters['SwitchAnimePattern']);
|
||||
Sepher.Param.SwitchAnimeSpeed = Number(Sepher.Parameters['SwitchAnimeSpeed']);
|
||||
Sepher.Param.YEPMotionWait = Number(Sepher.Parameters['YEP Battle MotionWait']);
|
||||
Sepher.Param.YEPVictoryWait = String(Sepher.Parameters['YEP Victory Wait']);
|
||||
Sepher.Param.YEPBoostSwitch = String(Sepher.Parameters['YEP ATB BoostSwitch']);
|
||||
Sepher.Param.ATBSpeedDefault = Number(Sepher.Parameters['ATB Speed(Default)']);
|
||||
Sepher.Param.ATBSpeedBoost = Number(Sepher.Parameters['ATB Speed(Boost)']);
|
||||
|
||||
// OkayKeyBoost型変換
|
||||
if (Sepher.Param.OkayKeyBoost == 'true') {
|
||||
Sepher.Param.OkayKeyBoost = true;
|
||||
} else {
|
||||
Sepher.Param.OkayKeyBoost = false;
|
||||
};
|
||||
// VisibleSwitch型変換
|
||||
if (Sepher.Param.VisibleSwitch == 'true') {
|
||||
Sepher.Param.VisibleSwitch = true;
|
||||
} else {
|
||||
Sepher.Param.VisibleSwitch = false;
|
||||
};
|
||||
// YEPVictoryWait型変換
|
||||
if (Sepher.Param.YEPVictoryWait == 'true') {
|
||||
Sepher.Param.YEPVictoryWait = true;
|
||||
} else {
|
||||
Sepher.Param.YEPVictoryWait = false;
|
||||
};
|
||||
// YEPBoostSwitch型変換
|
||||
if (Sepher.Param.YEPBoostSwitch == 'true') {
|
||||
Sepher.Param.YEPBoostSwitch = true;
|
||||
} else {
|
||||
Sepher.Param.YEPBoostSwitch = false;
|
||||
};
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Switch Setting
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if (Sepher.Param.VisibleSwitch) {
|
||||
var QuickMode = false;
|
||||
var createUpper = Spriteset_Battle.prototype.createUpperLayer;
|
||||
Spriteset_Battle.prototype.createUpperLayer = function () {
|
||||
createUpper.apply(this, arguments);
|
||||
var button = new Sprite_Button();
|
||||
button.bitmap = ImageManager.loadSystem(Sepher.Param.SwitchImage);
|
||||
button.x = Sepher.Param.SwitchX;
|
||||
button.y = Sepher.Param.SwitchY;
|
||||
button.visible = true;
|
||||
button.opacity = 80;
|
||||
this.addChild(button);
|
||||
|
||||
var animCount = 1;
|
||||
var duration = 1;
|
||||
button.updateFrame = function () {
|
||||
var quickModeKey = Input.isTriggered(Sepher.Param.BoostToggleSwitch);
|
||||
if (quickModeKey) {
|
||||
button.quickModeToggleSwitch();
|
||||
}
|
||||
if (QuickMode) {
|
||||
button.opacity = 255;
|
||||
if (++duration == Sepher.Param.SwitchAnimeSpeed) {
|
||||
if (++animCount >= Sepher.Param.SwitchAnimePattern) {
|
||||
animCount = 1;
|
||||
}
|
||||
button.setFrame(animCount * Sepher.Param.SwitchWidth, Sepher.Param.SwitchTop * Sepher.Param.SwitchHeight, Sepher.Param.SwitchWidth, Sepher.Param.SwitchHeight);
|
||||
duration = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
button.setFrame(Sepher.Param.SwitchLeft * Sepher.Param.SwitchWidth, Sepher.Param.SwitchTop * Sepher.Param.SwitchHeight, Sepher.Param.SwitchWidth, Sepher.Param.SwitchHeight);
|
||||
|
||||
button.setClickHandler(function () {
|
||||
QuickMode = !QuickMode;
|
||||
if (QuickMode) {
|
||||
var sound = {
|
||||
name: Sepher.Param.seBoostON,
|
||||
volume: Sepher.Param.seVolume,
|
||||
pitch: 100,
|
||||
pan: 0
|
||||
};
|
||||
AudioManager.playSe(sound);
|
||||
button.opacity = 255;
|
||||
} else {
|
||||
var sound = {
|
||||
name: Sepher.Param.seBoostOFF,
|
||||
volume: Sepher.Param.seVolume,
|
||||
pitch: 100,
|
||||
pan: 0
|
||||
};
|
||||
AudioManager.playSe(sound);
|
||||
button.setFrame(Sepher.Param.SwitchLeft * Sepher.Param.SwitchWidth, Sepher.Param.SwitchTop * Sepher.Param.SwitchHeight, Sepher.Param.SwitchWidth, Sepher.Param.SwitchHeight);
|
||||
button.opacity = 80;
|
||||
}
|
||||
});
|
||||
|
||||
button.quickModeToggleSwitch = function () {
|
||||
QuickMode = !QuickMode;
|
||||
if (QuickMode) {
|
||||
var sound = {
|
||||
name: Sepher.Param.seBoostON,
|
||||
volume: Sepher.Param.seVolume,
|
||||
pitch: 100,
|
||||
pan: 0
|
||||
};
|
||||
AudioManager.playSe(sound);
|
||||
button.opacity = 255;
|
||||
} else {
|
||||
var sound = {
|
||||
name: Sepher.Param.seBoostOFF,
|
||||
volume: Sepher.Param.seVolume,
|
||||
pitch: 100,
|
||||
pan: 0
|
||||
};
|
||||
AudioManager.playSe(sound);
|
||||
button.setFrame(Sepher.Param.SwitchLeft * Sepher.Param.SwitchWidth, Sepher.Param.SwitchTop * Sepher.Param.SwitchHeight, Sepher.Param.SwitchWidth, Sepher.Param.SwitchHeight);
|
||||
button.opacity = 80;
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
// Alias - launchBattle
|
||||
var launchBattle = Scene_Map.prototype.launchBattle;
|
||||
Scene_Map.prototype.launchBattle = function () {
|
||||
launchBattle.apply(this, arguments);
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// QuickMode Speed Setting
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
Sprite_StateIcon.prototype.animationWait = function () {
|
||||
var speed = Sepher.Param.StateIcon / Sepher.Param.BattleSpeedDefault;
|
||||
return speed;
|
||||
};
|
||||
|
||||
Sprite_StateOverlay.prototype.animationWait = function () {
|
||||
var speed = Sepher.Param.StateOverlay / Sepher.Param.BattleSpeedDefault;
|
||||
return speed;
|
||||
};
|
||||
|
||||
Sprite_Weapon.prototype.animationWait = function () {
|
||||
var speed = Sepher.Param.Weapon / Sepher.Param.BattleSpeedDefault;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
speed = speed / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
speed = speed / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
speed = speed / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
speed = speed / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
return speed;
|
||||
};
|
||||
|
||||
Sprite_Balloon.prototype.waitTime = function () {
|
||||
var speed = Sepher.Param.Balloon / Sepher.Param.BattleSpeedDefault;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
speed = speed / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
speed = speed / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
speed = speed / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
speed = speed / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
return speed;
|
||||
};
|
||||
|
||||
// Alias - startMove
|
||||
var _SSEP_Battler_startMove = Sprite_Battler.prototype.startMove;
|
||||
Sprite_Battler.prototype.startMove = function (x, y, duration) {
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
duration = duration / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
duration = duration / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
duration = duration / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
duration = duration / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
_SSEP_Battler_startMove.call(this, x, y, duration);
|
||||
};
|
||||
|
||||
|
||||
Sprite_Actor.prototype.motionSpeed = function () {
|
||||
var speed = Sepher.Param.Motion;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
speed = speed / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
speed = speed / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
speed = speed / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
speed = speed / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
return speed;
|
||||
};
|
||||
|
||||
// Alias - Animation setup
|
||||
var _SSEP_Animation_setup = Sprite_Animation.prototype.setup;
|
||||
Sprite_Animation.prototype.setup = function (target, animation, mirror, delay) {
|
||||
delay = delay / Sepher.Param.BattleSpeedDefault;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
delay = delay / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
delay = delay / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
delay = delay / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
delay = delay / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
_SSEP_Animation_setup.call(this, target, animation, mirror, delay);
|
||||
};
|
||||
|
||||
// Alias - Animation_setupRate
|
||||
var _SSEP_Animation_setupRate = Sprite_Animation.prototype.setupRate;
|
||||
Sprite_Animation.prototype.setupRate = function () {
|
||||
_SSEP_Animation_setupRate;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
this._rate = this._rate / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
this._rate = this._rate / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
this._rate = this._rate / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
this._rate = this._rate / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
this._rate = (Math.round(this._rate));
|
||||
if (this._rate < 1) {
|
||||
this._rate = 1;
|
||||
}
|
||||
};
|
||||
|
||||
var _SSEP_Damage_initialize = Sprite_Damage.prototype.initialize;
|
||||
Sprite_Damage.prototype.initialize = function () {
|
||||
_SSEP_Damage_initialize.call(this);
|
||||
this._duration = Sepher.Param.Damage;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
this._duration = this._duration / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
this._duration = this._duration / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
this._duration = this._duration / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
this._duration = this._duration / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
if (this._duration <= Sepher.Param.DamageMin) {
|
||||
this._duration = Sepher.Param.DamageMin;
|
||||
}
|
||||
};
|
||||
|
||||
// BattleLog Window
|
||||
|
||||
Window_BattleLog.prototype.animationBaseDelay = function () {
|
||||
var speed = Sepher.Param.LogBase;
|
||||
return speed;
|
||||
};
|
||||
|
||||
Window_BattleLog.prototype.animationNextDelay = function () {
|
||||
var speed = Sepher.Param.LogNext;
|
||||
return speed;
|
||||
};
|
||||
|
||||
Window_BattleLog.prototype.updateWaitCount = function () {
|
||||
var waitMax;
|
||||
var waitMin;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
waitMax = 3 * Sepher.Param.logWaitBoost;
|
||||
waitMin = 1 * Sepher.Param.logWaitBoost;
|
||||
} else {
|
||||
waitMax = 3 * Sepher.Param.logWaitDefault;
|
||||
waitMin = 1 * Sepher.Param.logWaitDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
waitMax = 3 * Sepher.Param.logWaitBoost;
|
||||
waitMin = 1 * Sepher.Param.logWaitBoost;
|
||||
} else {
|
||||
waitMax = 3 * Sepher.Param.logWaitDefault;
|
||||
waitMin = 1 * Sepher.Param.logWaitDefault;
|
||||
}
|
||||
}
|
||||
|
||||
if (this._waitCount > 0) {
|
||||
this._waitCount -= this.isFastForward() ? waitMax : waitMin;
|
||||
if (this._waitCount < 0) {
|
||||
this._waitCount = 0;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Support - YanflyEngine BattleCore
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if (Imported.YEP_BattleEngineCore) {
|
||||
|
||||
//Overwrite actionPerformAction
|
||||
BattleManager.actionPerformAction = function () {
|
||||
wait = Sepher.Param.YEPMotionWait;
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
wait = wait / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
wait = wait / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
wait = wait / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
wait = wait / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
|
||||
this._logWindow.performAction(this._subject, this._action);
|
||||
if (this._subject.isActor() && this._subject.isSpriteVisible) {
|
||||
this._logWindow._waitCount += wait;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
//Overwrite actionFloat
|
||||
BattleManager.actionFloat = function (name, actionArgs) {
|
||||
var movers = this.makeActionTargets(name);
|
||||
if (movers.length < 1) return true;
|
||||
var cmd = actionArgs[0];
|
||||
var frames = actionArgs[1] || 12;
|
||||
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
frames = frames / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
frames = frames / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
frames = frames / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
frames = frames / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
|
||||
var pixels = 0;
|
||||
if (cmd.match(/(\d+)([%%])/i)) {
|
||||
var floatPeak = parseFloat(RegExp.$1 * 0.01);
|
||||
} else if (cmd.match(/(\d+)/i)) {
|
||||
pixels = parseInt(RegExp.$1);
|
||||
var floatPeak = 0.0;
|
||||
} else {
|
||||
var floatPeak = 1.0;
|
||||
}
|
||||
movers.forEach(function (mover) {
|
||||
var floatRate = floatPeak + (pixels / mover.spriteHeight());
|
||||
mover.spriteFloat(floatRate, frames);
|
||||
});
|
||||
return false;
|
||||
};
|
||||
|
||||
//Overwrite actionJump
|
||||
BattleManager.actionJump = function (name, actionArgs) {
|
||||
var movers = this.makeActionTargets(name);
|
||||
if (movers.length < 1) return true;
|
||||
var cmd = actionArgs[0];
|
||||
var frames = actionArgs[1] || 12;
|
||||
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
frames = frames / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
frames = frames / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
frames = frames / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
frames = frames / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
}
|
||||
|
||||
var pixels = 0;
|
||||
if (cmd.match(/(\d+)([%%])/i)) {
|
||||
var jumpPeak = parseFloat(RegExp.$1 * 0.01);
|
||||
} else if (cmd.match(/(\d+)/i)) {
|
||||
pixels = parseInt(RegExp.$1);
|
||||
var jumpPeak = 0.0;
|
||||
} else {
|
||||
var jumpPeak = 1.0;
|
||||
}
|
||||
movers.forEach(function (mover) {
|
||||
var jumpRate = jumpPeak + (pixels / mover.spriteHeight());
|
||||
mover.spriteJump(jumpRate, frames);
|
||||
});
|
||||
return true;
|
||||
};
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Support - YanflyEngine Active Time Battle
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if (Imported.YEP_X_BattleSysATB) {
|
||||
//Overwrite atbTickRate
|
||||
BattleManager.atbTickRate = function () {
|
||||
var rate = 0.1 * ConfigManager.atbSpeed;
|
||||
//Add
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (Sepher.Param.YEPBoostSwitch) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
rate = rate * Sepher.Param.ATBSpeedBoost;
|
||||
} else {
|
||||
rate = rate * Sepher.Param.ATBSpeedDefault;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (Sepher.Param.YEPBoostSwitch) {
|
||||
if (QuickMode || TouchInput.isPressed()) {
|
||||
rate = rate * Sepher.Param.ATBSpeedBoost;
|
||||
} else {
|
||||
rate = rate * Sepher.Param.ATBSpeedDefault;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return rate;
|
||||
};
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Support - YanflyEngine Victory Aftermath
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
if (Imported.YEP_VictoryAftermath) {
|
||||
//Overwrite isFinishedVictoryCheer
|
||||
BattleManager.isFinishedVictoryCheer = function () {
|
||||
if (Sepher.Param.YEPVictoryWait) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
return ++this._victoryCheerWait >= Yanfly.Param.VACheerWait / Sepher.Param.BattleSpeedBoost;
|
||||
} else {
|
||||
return ++this._victoryCheerWait >= Yanfly.Param.VACheerWait / Sepher.Param.BattleSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
return ++this._victoryCheerWait >= Yanfly.Param.VACheerWait;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Support - Ellye's ATB
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//Check if there is Window_CTB function
|
||||
if (typeof Window_CTB == "function") {
|
||||
//Changing the flow of battle
|
||||
//_BattleManager_update=BattleManager.update;
|
||||
BattleManager.update = function () {
|
||||
if (!this.isBusy() && !this.updateEvent()) {
|
||||
switch (this._phase) {
|
||||
case 'atb':
|
||||
//Add script
|
||||
if (Sepher.Param.OkayKeyBoost) {
|
||||
if (QuickMode || Input.isPressed('ok') || TouchInput.isPressed()) {
|
||||
var speed = Sepher.Param.ATBSpeedBoost;
|
||||
} else {
|
||||
var speed = Sepher.Param.ATBSpeedDefault;
|
||||
}
|
||||
} else {
|
||||
if (QuickMode) {
|
||||
var speed = Sepher.Param.ATBSpeedBoost;
|
||||
} else {
|
||||
var speed = Sepher.Param.ATBSpeedDefault;
|
||||
}
|
||||
}
|
||||
this.increaseAtbGauges(speed);
|
||||
break;
|
||||
default:
|
||||
_BattleManager_update.call(this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//Alias - increaseAtbGauses
|
||||
var _SSEP_increaseAtbGauges = BattleManager.increaseAtbGauges;
|
||||
BattleManager.increaseAtbGauges = function (speed) {
|
||||
//Add variable and Rate calculation
|
||||
var copy_base_atb_increase = base_atb_increase;
|
||||
base_atb_increase = base_atb_increase * speed;
|
||||
//original method
|
||||
_SSEP_increaseAtbGauges.call(this);
|
||||
//return global variable
|
||||
base_atb_increase = copy_base_atb_increase;
|
||||
};
|
||||
}
|
||||
91
www/js/plugins/SimpleMsgSideView.js
Normal file
91
www/js/plugins/SimpleMsgSideView.js
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
//=============================================================================
|
||||
// SimpleMsgSideView.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc at sideview battle, only display item/skill names.
|
||||
* @author Sasuke KANNAZUKI
|
||||
*
|
||||
* @param displayAttack
|
||||
* @desc Whether to display normal attack. 1:yes 0:no
|
||||
* @default 0
|
||||
*
|
||||
* @param position
|
||||
* @desc Skill name display position. 0:left, 1:center
|
||||
* @default 1
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* By not displaying the log and only displaying the skill name,
|
||||
* the speed of battle will increase slightly.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc サイドビューバトルで技/アイテムの名前のみ表示します。
|
||||
* @author 神無月サスケ
|
||||
*
|
||||
* @param displayAttack
|
||||
* @desc 通常攻撃も表示するか (1:する 0:しない)
|
||||
* @default 0
|
||||
*
|
||||
* @param position
|
||||
* @desc 技名を表示する位置 (0:左寄せ, 1:中央)
|
||||
* @default 1
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*
|
||||
* ログを表示せず、技名のみを表示することで、戦闘のテンポが若干高速になります。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
var parameters = PluginManager.parameters('SimpleMsgSideView');
|
||||
var displayAttack = Number(parameters['displayAttack']) != 0;
|
||||
var position = Number(parameters['position'] || 1);
|
||||
|
||||
var _Window_BattleLog_addText = Window_BattleLog.prototype.addText;
|
||||
Window_BattleLog.prototype.addText = function (text) {
|
||||
if ($gameSystem.isSideView()) {
|
||||
this.refresh();
|
||||
this.wait();
|
||||
return; // not display battle log
|
||||
}
|
||||
_Window_BattleLog_addText.call(this, text);
|
||||
};
|
||||
|
||||
// for sideview battle only
|
||||
Window_BattleLog.prototype.addItemNameText = function (itemName) {
|
||||
this._lines.push(itemName);
|
||||
this.refresh();
|
||||
this.wait();
|
||||
};
|
||||
|
||||
var _Window_BattleLog_displayAction =
|
||||
Window_BattleLog.prototype.displayAction;
|
||||
Window_BattleLog.prototype.displayAction = function (subject, item) {
|
||||
if ($gameSystem.isSideView()) {
|
||||
if (displayAttack ||
|
||||
!(DataManager.isSkill(item) && item.id == subject.attackSkillId())) {
|
||||
this.push('addItemNameText', item.name); // display item/skill name
|
||||
} else {
|
||||
this.push('wait');
|
||||
}
|
||||
return;
|
||||
}
|
||||
_Window_BattleLog_displayAction.call(this, subject, item);
|
||||
};
|
||||
|
||||
// to put skill/item name at center
|
||||
var _Window_BattleLog_drawLineText = Window_BattleLog.prototype.drawLineText;
|
||||
Window_BattleLog.prototype.drawLineText = function (index) {
|
||||
if ($gameSystem.isSideView() && position == 1) {
|
||||
var rect = this.itemRectForText(index);
|
||||
this.contents.clearRect(rect.x, rect.y, rect.width, rect.height);
|
||||
this.drawText(this._lines[index], rect.x, rect.y,
|
||||
rect.width, 'center');
|
||||
return;
|
||||
}
|
||||
_Window_BattleLog_drawLineText.call(this, index);
|
||||
};
|
||||
|
||||
})();
|
||||
1395
www/js/plugins/SlotMachine.js
Normal file
1395
www/js/plugins/SlotMachine.js
Normal file
File diff suppressed because it is too large
Load diff
91
www/js/plugins/TMMaxLevel.js
Normal file
91
www/js/plugins/TMMaxLevel.js
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
//=============================================================================
|
||||
// TMVplugin - レベル上限操作
|
||||
// 作者: tomoaky (http://hikimoki.sakura.ne.jp/)
|
||||
// Version: 1.0
|
||||
// 最終更新日: 2015/12/29
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc レベル上限をゲーム中に増やすことができます。
|
||||
*
|
||||
* @author tomoaky (http://hikimoki.sakura.ne.jp/)
|
||||
*
|
||||
* @param maxMaxLevel
|
||||
* @desc 加算値込みのレベル上限
|
||||
* 初期値: 99
|
||||
* @default 99
|
||||
*
|
||||
* @help
|
||||
* プラグインコマンド:
|
||||
* gainMaxLevel 1 5 # アクター1番のレベル上限を5増やす
|
||||
* getMaxLevel 2 10 # アクター2番のレベル上限を変数10番に代入
|
||||
* getMaxLevel 2 3 # アクター2番のレベル上限(加算値)を変数3番に代入
|
||||
*
|
||||
*/
|
||||
|
||||
var Imported = Imported || {};
|
||||
Imported.TMMaxLevel = true;
|
||||
|
||||
(function () {
|
||||
|
||||
var parameters = PluginManager.parameters('TMMaxLevel');
|
||||
var maxMaxLevel = parameters['maxMaxLevel'];
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game_Interpreter
|
||||
//
|
||||
|
||||
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
if (command === 'gainMaxLevel') {
|
||||
var actor = $gameActors.actor(args[0]);
|
||||
if (actor) {
|
||||
actor.gainMaxLevel(Number(args[1]));
|
||||
}
|
||||
} else
|
||||
if (command === 'getMaxLevel') {
|
||||
var actor = $gameActors.actor(args[0]);
|
||||
if (actor) {
|
||||
$gameVariables.setValue(args[1], actor.maxLevel())
|
||||
}
|
||||
}
|
||||
if (command === 'getMaxLevelPlus') {
|
||||
var actor = $gameActors.actor(args[0]);
|
||||
if (actor) {
|
||||
if (actor._maxLevelPlus === undefined) {
|
||||
actor.gainMaxLevel(0);
|
||||
}
|
||||
$gameVariables.setValue(args[1], actor._maxLevelPlus)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game_Actor
|
||||
//
|
||||
|
||||
var _Game_Actor_initMembers = Game_Actor.prototype.initMembers;
|
||||
Game_Actor.prototype.initMembers = function () {
|
||||
_Game_Actor_initMembers.call(this);
|
||||
this._maxLevelPlus = 0;
|
||||
};
|
||||
|
||||
var _Game_Actor_maxLevel = Game_Actor.prototype.maxLevel;
|
||||
Game_Actor.prototype.maxLevel = function () {
|
||||
if (this._maxLevelPlus === undefined) {
|
||||
this._maxLevelPlus = 0;
|
||||
}
|
||||
return _Game_Actor_maxLevel.call(this) + this._maxLevelPlus;
|
||||
};
|
||||
|
||||
Game_Actor.prototype.gainMaxLevel = function (n) {
|
||||
if (this._maxLevelPlus === undefined) {
|
||||
this._maxLevelPlus = 0;
|
||||
}
|
||||
this._maxLevelPlus += n;
|
||||
var m = maxMaxLevel - this.actor().maxLevel;
|
||||
this._maxLevelPlus = this._maxLevelPlus.clamp(0, m);
|
||||
};
|
||||
|
||||
})();
|
||||
61
www/js/plugins/TMOmitShopCommand.js
Normal file
61
www/js/plugins/TMOmitShopCommand.js
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
//=============================================================================
|
||||
// TMPlugin - ショップコマンド省略
|
||||
// バージョン: 1.0.0
|
||||
// 最終更新日: 2018/04/25
|
||||
// 配布元 : http://hikimoki.sakura.ne.jp/
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2018 tomoaky
|
||||
// Released under the MIT license.
|
||||
// http://opensource.org/licenses/mit-license.php
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc 購入または売却のみの場合にショップコマンドを省略します。
|
||||
*
|
||||
* @author tomoaky (http://hikimoki.sakura.ne.jp/)
|
||||
*
|
||||
* @help
|
||||
* TMPlugin - ショップコマンド省略 ver1.0.0
|
||||
*
|
||||
* 使い方:
|
||||
*
|
||||
* イベントコマンド『ショップの処理』で、購入のみ にチェックが入れる、
|
||||
* または、商品をひとつも設定せずに実行した場合にショップコマンドが
|
||||
* 省略されます。
|
||||
*
|
||||
* プラグインコマンドはありません。
|
||||
*
|
||||
* このプラグインは RPGツクールMV Version 1.5.1 で動作確認をしています。
|
||||
*
|
||||
* このプラグインはMITライセンスのもとに配布しています、商用利用、
|
||||
* 改造、再配布など、自由にお使いいただけます。
|
||||
*/
|
||||
|
||||
var Imported = Imported || {};
|
||||
Imported.TMOmitShopCommand = true;
|
||||
|
||||
(function () {
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Scene_Shop
|
||||
//
|
||||
|
||||
var _Scene_Shop_create = Scene_Shop.prototype.create;
|
||||
Scene_Shop.prototype.create = function () {
|
||||
_Scene_Shop_create.call(this);
|
||||
if (this._goods[0][1] === 0) {
|
||||
this._commandWindow.hide();
|
||||
this._commandWindow.deactivate();
|
||||
this._commandWindow.select(1);
|
||||
this._categoryWindow.setHandler('cancel', this.popScene.bind(this));
|
||||
this.commandSell();
|
||||
} else if (this._purchaseOnly) {
|
||||
this._commandWindow.hide();
|
||||
this._commandWindow.deactivate();
|
||||
this._commandWindow.select(0);
|
||||
this._buyWindow.setHandler('cancel', this.popScene.bind(this));
|
||||
this.commandBuy();
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
122
www/js/plugins/TimeLimitedChoice.js
Normal file
122
www/js/plugins/TimeLimitedChoice.js
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
//=============================================================================
|
||||
// TimeLimitedChoice.js 2017/04/02
|
||||
// Copyright (c) 2017 Tsukimi
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc 時間制限付き選択肢プレグイン
|
||||
* @author Tsukimi
|
||||
*
|
||||
* @help
|
||||
* 時間制限付き選択肢プレグイン
|
||||
* 作者:ツキミ
|
||||
*
|
||||
* 2018/09/17 ver 1.0.1 ツキミ式選択肢との競合を解消
|
||||
* 2017/05/01 ver 1.0 完成
|
||||
*
|
||||
* ***************************************************
|
||||
* 説明:
|
||||
* 次の選択肢に時間制限をかけます。
|
||||
* プラグインコマンドを実行して選択肢を設定した時、タイマーが自動で起動します。
|
||||
* 時間切れすると選択ウィンドウが消え、[キャンセルのとき]
|
||||
* のイベントコマンドを実行します。
|
||||
*
|
||||
* ※ 選択肢の表示の設定の中の、キャンセルを[分岐]にしてください。
|
||||
*
|
||||
* ※ 必ずしもプラグインコマンドの直後に選択肢を設定する必要がありません。
|
||||
* オススメの設定方法は:
|
||||
* ◆プラグインコマンド:TLChoice 300
|
||||
* ◆文章:~~~~~
|
||||
* ◆選択肢の表示:~~~~~
|
||||
*
|
||||
*
|
||||
* ***************************************************
|
||||
* プラグインコマンド:
|
||||
* イベントコマンド「プラグインコマンド」から実行。
|
||||
* (パラメータの間は半角スペースで区切る)
|
||||
*
|
||||
* TLChoice [フレーム数]
|
||||
* 次の選択肢表示に時間制限をかける(1秒=60フレーム)
|
||||
* 例: TLChoice 600
|
||||
* ※次の選択肢にだけ効果があります。連続で使用したい場合、
|
||||
* 各[選択肢の表示]コマンドの前にもう一度このコマンドを行ってください。
|
||||
*
|
||||
*
|
||||
* 作者のサイト: http://tsukimitsf.blog.fc2.com/
|
||||
* バグなどがあったら、是非こちらへご一報ください。ありがとうございます。
|
||||
*/
|
||||
|
||||
var Imported = Imported || {};
|
||||
|
||||
(function (_global) {
|
||||
// ここにプラグイン処理を記載
|
||||
|
||||
var _Game_Timer_onExpire = Game_Timer.prototype.onExpire;
|
||||
Game_Timer.prototype.onExpire = function () {
|
||||
_Game_Timer_onExpire.call(this);
|
||||
var cw = SceneManager._scene._messageWindow._choiceWindow;
|
||||
if (!!cw._timeLimit && !!cw._TLStarted) {
|
||||
cw._timeLimit = false;
|
||||
cw._TLStarted = false;
|
||||
// processCancel, without sound
|
||||
cw.updateInputData();
|
||||
cw.deactivate();
|
||||
cw.callCancelHandler();
|
||||
// end
|
||||
this.stop();
|
||||
}
|
||||
}
|
||||
if (Imported.TKM_ChoiceList) {
|
||||
var _Window_TKMChoiceList_oked = Window_TKMChoiceList.prototype.oked;
|
||||
Window_TKMChoiceList.prototype.oked = function () {
|
||||
_Window_TKMChoiceList_oked.call(this);
|
||||
if (!!this._timeLimit) {
|
||||
this._timeLimit = false;
|
||||
this._TLStarted = false;
|
||||
$gameTimer.stop();
|
||||
}
|
||||
};
|
||||
} else {
|
||||
var _Window_ChoiceList_callOkHandler = Window_ChoiceList.prototype.callOkHandler;
|
||||
Window_ChoiceList.prototype.callOkHandler = function () {
|
||||
_Window_ChoiceList_callOkHandler.call(this);
|
||||
if (!!this._timeLimit) {
|
||||
this._timeLimit = false;
|
||||
this._TLStarted = false;
|
||||
$gameTimer.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var _Window_ChoiceList_start = Window_ChoiceList.prototype.start;
|
||||
Window_ChoiceList.prototype.start = function () {
|
||||
_Window_ChoiceList_start.call(this);
|
||||
if (!!this._timeLimit) {
|
||||
this._TLStarted = true;
|
||||
$gameTimer.start(this._limitedTime || 300);
|
||||
}
|
||||
}
|
||||
|
||||
var _Window_ChoiceList_isCancelEnabled = Window_ChoiceList.prototype.isCancelEnabled;
|
||||
Window_ChoiceList.prototype.isCancelEnabled = function () {
|
||||
var normal = _Window_ChoiceList_isCancelEnabled.call(this);
|
||||
if (!!this._timeLimit) return false;
|
||||
else return normal;
|
||||
}
|
||||
|
||||
|
||||
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
||||
Game_Interpreter.prototype.pluginCommand = function (command, args) {
|
||||
_Game_Interpreter_pluginCommand.call(this, command, args);
|
||||
switch (command) {
|
||||
case "TLChoice":
|
||||
var cw = SceneManager._scene._messageWindow._choiceWindow;
|
||||
cw._timeLimit = true;
|
||||
if (!args) cw._limitedTime = 300;
|
||||
else if (parseInt(args[0]) == 0) cw._limitedTime = 300;
|
||||
else cw._limitedTime = parseInt(args[0]);
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
})(this);
|
||||
72
www/js/plugins/TitleCommandPosition.js
Normal file
72
www/js/plugins/TitleCommandPosition.js
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
//=============================================================================
|
||||
// TitleCommandPosition.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Changes the position of the title command window.
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Offset X
|
||||
* @desc The offset value for the x coordinate.
|
||||
* @default 0
|
||||
*
|
||||
* @param Offset Y
|
||||
* @desc The offset value for the y coordinate.
|
||||
* @default 0
|
||||
*
|
||||
* @param Width
|
||||
* @desc The width of the command window.
|
||||
* @default 240
|
||||
*
|
||||
* @param Background
|
||||
* @desc The background type. 0: Normal, 1: Dim, 2: Transparent
|
||||
* @default 0
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc タイトルコマンドウィンドウの位置を変更します。
|
||||
* @author Yoji Ojima
|
||||
*
|
||||
* @param Offset X
|
||||
* @desc X座標のオフセット値です。
|
||||
* @default 0
|
||||
*
|
||||
* @param Offset Y
|
||||
* @desc Y座標のオフセット値です。
|
||||
* @default 0
|
||||
*
|
||||
* @param Width
|
||||
* @desc コマンドウィンドウの幅です。
|
||||
* @default 240
|
||||
*
|
||||
* @param Background
|
||||
* @desc 背景タイプです。0: 通常、1: 暗くする、2: 透明
|
||||
* @default 0
|
||||
*
|
||||
* @help このプラグインには、プラグインコマンドはありません。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
var parameters = PluginManager.parameters('TitleCommandPosition');
|
||||
var offsetX = Number(parameters['Offset X'] || 0);
|
||||
var offsetY = Number(parameters['Offset Y'] || 0);
|
||||
var width = Number(parameters['Width'] || 240);
|
||||
var background = Number(parameters['Background'] || 0);
|
||||
|
||||
var _Window_TitleCommand_updatePlacement =
|
||||
Window_TitleCommand.prototype.updatePlacement;
|
||||
Window_TitleCommand.prototype.updatePlacement = function () {
|
||||
_Window_TitleCommand_updatePlacement.call(this);
|
||||
this.x += offsetX;
|
||||
this.y += offsetY;
|
||||
this.setBackgroundType(background);
|
||||
};
|
||||
|
||||
Window_TitleCommand.prototype.windowWidth = function () {
|
||||
return width;
|
||||
};
|
||||
|
||||
})();
|
||||
247
www/js/plugins/UTA_EncounterControl.js
Normal file
247
www/js/plugins/UTA_EncounterControl.js
Normal file
|
|
@ -0,0 +1,247 @@
|
|||
//=============================================================================
|
||||
// UTA_EncounterControl.js
|
||||
//=============================================================================
|
||||
// Version : 1.00
|
||||
// LastUpdate : 2016.02.17
|
||||
// Author : T.Akatsuki
|
||||
// Website : http://utakata-no-yume.net/
|
||||
// License : MIT License(http://opensource.org/licenses/mit-license.php)
|
||||
//=============================================================================
|
||||
|
||||
//=============================================================================
|
||||
/*:
|
||||
* @plugindesc This plugin control of the encounter number of step.
|
||||
* It becomes as it is possible to perfom control at an arbitary timing from the items and skills.
|
||||
* @author T.Akatsuki
|
||||
*
|
||||
* @param Show Trace
|
||||
* @desc Set state traces display.
|
||||
* true : Show trace., false : Don't show trace.
|
||||
* @default false
|
||||
*
|
||||
* @help # Overview
|
||||
* When you run this plugin command canbe done to control encounter at any time.
|
||||
* For example, encounter rate can be set to half between 100 steps.
|
||||
* You can run at any time from common events and map events.
|
||||
* Moreover, it is possible to duplicate class abilites that are provided by default of RPG Maker MV.
|
||||
*
|
||||
* # Parameters
|
||||
* Show Trace [true|false]
|
||||
* Set whether the issue a trace for debugging.
|
||||
*
|
||||
* # Plugin Command
|
||||
* EncounterControl set [magnification] [steps] [callback]
|
||||
* # This script set to Encounter rate twice between 100 step.
|
||||
* EncounterControl clear # state of control encounter.
|
||||
* # callback function is not called on clear timing.
|
||||
*
|
||||
* # Example
|
||||
* EncounterControl set 2.0 100 1
|
||||
* # Between 100 steps, to set encounter rate twice.
|
||||
* # and start no.1 common event after the effect the end.
|
||||
* EncounterControl set 0 -1
|
||||
* # Permanently to encounter rate to 0.
|
||||
*
|
||||
* # Change Log
|
||||
* ver 1.00 (Fed 17, 2016)
|
||||
* Rename to UTA_CommonSave.js.
|
||||
* To be able to set trace in the parameter.
|
||||
*
|
||||
* ver 0.01+ (Dec 20, 2015)
|
||||
* Fix charactor encode to UTF-8.
|
||||
*
|
||||
* ver 0.01 (Nov 19, 2015)
|
||||
* Initial release.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc エンカウント歩数の制御を行います。
|
||||
* アイテムやスキルから任意のタイミングで制御を行う事ができる様になります。
|
||||
* @author 赤月 智平
|
||||
*
|
||||
* @param Show Trace
|
||||
* @desc デバッグ用のトレースを出すかを設定します。
|
||||
* true: トレースを表示, false: トレースを表示しない
|
||||
* @default false
|
||||
*
|
||||
* @help ■概要
|
||||
* EncounterControlプラグインを利用するにはプラグインコマンドから実行します。
|
||||
* プラグインコマンドを実行するとエンカウント歩数の制御を任意のタイミングで行えます。
|
||||
* 例えば、100歩の間エンカウント率を1/2にする、といった制御が可能になります。
|
||||
* コモンイベントやマップイベントから任意のタイミングで実行できます。
|
||||
* またRPGツクールMVのデフォルトで用意されているクラスアビリティの効果と重複させる事が可能です。
|
||||
*
|
||||
* ■パラメータの説明
|
||||
* Show Trace [true|false]
|
||||
* デバッグ用のトレースを出すかを設定します。
|
||||
*
|
||||
* ■プラグインコマンド
|
||||
* EncounterControl set [倍率] [歩数] [コールバック] # 100歩の間エンカウント率を2倍にセットし、効果終了時にコモンイベント1番を起動。
|
||||
* EncounterControl clear # エンカウント制御の状態をクリアします。
|
||||
* # クリア時にはコールバックは呼ばれません。
|
||||
*
|
||||
* ■使用例
|
||||
* EncounterControl set 2.0 100 1
|
||||
* # 100歩の間、エンカウント率を2倍にセットし、効果終了後にコモンイベント1番を起動する。
|
||||
* EncounterControl set 0 -1
|
||||
* # 永続的にエンカウント率を0にする。
|
||||
*
|
||||
* ■更新履歴
|
||||
* ver 1.00 (2016.02.17)
|
||||
* ファイル名をUTA_EncounterCountrol.jsに変更。
|
||||
* トレース出力の有無をパラメータで設定できるように。
|
||||
*
|
||||
* ver 0.01+ (2015.12.20)
|
||||
* 文字エンコードをUTF-8に修正。
|
||||
*
|
||||
* ver 0.01 (2015.11.19)
|
||||
* 初版。
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
//name space
|
||||
var utakata = utakata || (utakata = {});
|
||||
|
||||
(function (utakata) {
|
||||
var EncounterControl = (function () {
|
||||
//constructor
|
||||
function EncounterControl() {
|
||||
this.progressValue = 0;
|
||||
this.remainingStepCnt = 0;
|
||||
this.endCallback = null;
|
||||
|
||||
this._tr = null;
|
||||
|
||||
this.initialize();
|
||||
}
|
||||
|
||||
//member methods
|
||||
EncounterControl.prototype.initialize = function () {
|
||||
var parameters = PluginManager.parameters('UTA_EncounterControl');
|
||||
var _show_tr = (String(parameters['Show Trace']) === "true");
|
||||
this._tr = _show_tr ? function (s) { var str = "EncounterControl: " + s; console.log(str); } : function (s) { };
|
||||
|
||||
this.progressValue = 1.0;
|
||||
this.remainingStepCnt = 0;
|
||||
this.endCallback = null;
|
||||
};
|
||||
|
||||
EncounterControl.prototype.setParameter = function (args) {
|
||||
//parse
|
||||
if (args.length < 3) {
|
||||
this._tr("setParameter: args is invalid.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var progress = parseFloat(args[1]);
|
||||
var step = parseInt(args[2]);
|
||||
|
||||
var endCallback = args[3] ? parseInt(args[3]) : null;
|
||||
|
||||
this._setParameterCore(progress, step, endCallback);
|
||||
return true;
|
||||
};
|
||||
|
||||
EncounterControl.prototype._setParameterCore = function (progress, step, endCallback) {
|
||||
this._tr("setParameter: progress = " + progress + ", step = " + step);
|
||||
|
||||
var progressValue = Math.floor(progress * 100) / 100;
|
||||
var stepValue = Math.floor(step);
|
||||
|
||||
this.progressValue = progressValue;
|
||||
this.remainingStepCnt = stepValue;
|
||||
|
||||
if (!endCallback) { return; }
|
||||
if (typeof endCallback === "string") { endCallback = parseInt(endCallback); }
|
||||
this.setEndCallback(endCallback);
|
||||
};
|
||||
|
||||
EncounterControl.prototype.setEndCallback = function (cmnEvId) {
|
||||
this.endCallback = function () { $gameTemp.reserveCommonEvent(cmnEvId); }
|
||||
};
|
||||
|
||||
EncounterControl.prototype.clearParameter = function () {
|
||||
this._tr("clearParameter");
|
||||
this.progressValue = 1.0;
|
||||
this.remainingStepCnt = 0;
|
||||
this.endCallback = null;
|
||||
};
|
||||
|
||||
EncounterControl.prototype.updateRemainingStepCount = function () {
|
||||
if (this.remainingStepCnt > 0) {
|
||||
this.remainingStepCnt--;
|
||||
//this._tr("updateRemainingStepCount: " + this.remainingStepCnt);
|
||||
if (this.remainingStepCnt == 0) {
|
||||
//call back common event
|
||||
if (typeof this.endCallback === "function") {
|
||||
this.endCallback();
|
||||
}
|
||||
this.clearParameter();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
EncounterControl.prototype.isEnabled = function () {
|
||||
return this.remainingStepCnt != 0;
|
||||
};
|
||||
|
||||
EncounterControl.prototype.getProgressValue = function () {
|
||||
return this.progressValue;
|
||||
};
|
||||
|
||||
EncounterControl.prototype.getRemainingStepCount = function () {
|
||||
return this.remainingStepCnt;
|
||||
};
|
||||
|
||||
return EncounterControl;
|
||||
})();
|
||||
|
||||
utakata.EncounterControl = new EncounterControl();
|
||||
}(utakata || (utakata = {})));
|
||||
|
||||
|
||||
(function () {
|
||||
//-----------------------------------------------------------------------------
|
||||
// parse and dispatch 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 === 'EncounterControl') {
|
||||
switch (args[0]) {
|
||||
case 'set':
|
||||
utakata.EncounterControl.setParameter(args);
|
||||
break;
|
||||
case 'clear':
|
||||
utakata.EncounterControl.clearParameter();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game_Player
|
||||
//-----------------------------------------------------------------------------
|
||||
var _Game_Player_encounterProgressValue =
|
||||
Game_Player.prototype.encounterProgressValue;
|
||||
Game_Player.prototype.encounterProgressValue = function () {
|
||||
var value = _Game_Player_encounterProgressValue.call(this);
|
||||
if (utakata.EncounterControl.isEnabled()) {
|
||||
value *= utakata.EncounterControl.getProgressValue();
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
var _Game_Player_updateNonmoving =
|
||||
Game_Player.prototype.updateNonmoving;
|
||||
Game_Player.prototype.updateNonmoving = function (wasMoving) {
|
||||
_Game_Player_updateNonmoving.call(this, wasMoving);
|
||||
if (wasMoving && utakata.EncounterControl.isEnabled()) {
|
||||
utakata.EncounterControl.updateRemainingStepCount();
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
83
www/js/plugins/WeaponSkill.js
Normal file
83
www/js/plugins/WeaponSkill.js
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
//=============================================================================
|
||||
// WeaponSkill.js
|
||||
//=============================================================================
|
||||
|
||||
/*:
|
||||
* @plugindesc Change skill id of attack for each weapon.
|
||||
* @author Sasuke KANNAZUKI
|
||||
*
|
||||
* @help This plugin does not provide plugin commands.
|
||||
*
|
||||
* When <skill_id:3> is written in a weapon's note field,
|
||||
* skill id # 3 is used for the weapon's attack.
|
||||
* If nothing is written, default id(=1) is used.
|
||||
*
|
||||
* Check Points:
|
||||
* - When multiple weapons are equipped, the skill id of the weapon
|
||||
* held in the dominant hand (previously defined) is used.
|
||||
* - It is most favorable for "skill type" to be "none"(=0),
|
||||
* otherwise you cannot attack when your skill is blocked.
|
||||
*
|
||||
* Usage examples of this plugin:
|
||||
* - to create all-range weapons
|
||||
* - to create dual-attack or triple-attack weapons
|
||||
* - If healing skill is set when actor attacks, you can choose a friend to heal.
|
||||
* - It is possible to make a weapon that functions similar to a guard command.
|
||||
*/
|
||||
|
||||
/*:ja
|
||||
* @plugindesc 武器ごとに通常攻撃のスキルIDを変更します。
|
||||
* @author 神無月サスケ
|
||||
*
|
||||
* @help このプラグインにはプラグインコマンドはありません。
|
||||
*
|
||||
* 武器の「メモ」欄に、<skill_id:3> と書いた場合、
|
||||
* 通常攻撃の際、3番のスキルが発動します。
|
||||
* ※特に記述がなければ、通常通り1番のスキルが採用されます。
|
||||
*
|
||||
* チェックポイント:
|
||||
* - 二刀流の場合、利き腕(先に定義された方)に持っているスキルIDが採用されます。
|
||||
* - スキルタイプは「なし」にするのが望ましいです。
|
||||
* さもなくば、技などを封じられたとき、攻撃が出来なくなります。
|
||||
*
|
||||
* 想定される用途:
|
||||
* - 全体攻撃可能な武器
|
||||
* - 2回攻撃、3回攻撃する武器
|
||||
* - 回復魔法をスキルに指定した場合、
|
||||
* 「攻撃」を選んだ際、味方の選択が出来、その仲間を回復します
|
||||
* - 防御コマンドなどと同等になる武器も実現可能です。
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
//
|
||||
// set skill id for attack.
|
||||
//
|
||||
Game_Actor.prototype.attackSkillId = function () {
|
||||
var normalId = Game_BattlerBase.prototype.attackSkillId.call(this);
|
||||
if (this.hasNoWeapons()) {
|
||||
return normalId;
|
||||
}
|
||||
var weapon = this.weapons()[0]; // at plural weapon, one's first skill.
|
||||
var id = weapon.meta.skill_id;
|
||||
return id ? Number(id) : normalId;
|
||||
};
|
||||
|
||||
//
|
||||
// for command at battle
|
||||
//
|
||||
var _Scene_Battle_commandAttack = Scene_Battle.prototype.commandAttack;
|
||||
Scene_Battle.prototype.commandAttack = function () {
|
||||
BattleManager.inputtingAction().setAttack();
|
||||
// normal attack weapon (or other single attack weapon)
|
||||
var action = BattleManager.inputtingAction();
|
||||
if (action.needsSelection() && action.isForOpponent()) {
|
||||
_Scene_Battle_commandAttack.call(this);
|
||||
return;
|
||||
}
|
||||
// special skill weapon
|
||||
this.onSelectAction();
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
9321
www/js/rpg_core.js
Normal file
9321
www/js/rpg_core.js
Normal file
File diff suppressed because it is too large
Load diff
2839
www/js/rpg_managers.js
Normal file
2839
www/js/rpg_managers.js
Normal file
File diff suppressed because it is too large
Load diff
10641
www/js/rpg_objects.js
Normal file
10641
www/js/rpg_objects.js
Normal file
File diff suppressed because it is too large
Load diff
2689
www/js/rpg_scenes.js
Normal file
2689
www/js/rpg_scenes.js
Normal file
File diff suppressed because it is too large
Load diff
2691
www/js/rpg_sprites.js
Normal file
2691
www/js/rpg_sprites.js
Normal file
File diff suppressed because it is too large
Load diff
6710
www/js/rpg_windows.js
Normal file
6710
www/js/rpg_windows.js
Normal file
File diff suppressed because it is too large
Load diff
12
www/package.json
Normal file
12
www/package.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "",
|
||||
"main": "index.html",
|
||||
"js-flags": "--expose-gc",
|
||||
"window": {
|
||||
"title": "",
|
||||
"toolbar": false,
|
||||
"width": 816,
|
||||
"height": 624,
|
||||
"icon": "icon/icon.png"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue