From ca25285d2a89a8e4cee6ba24db6b12837dfa155b Mon Sep 17 00:00:00 2001 From: xian18 <44394537+xian18@users.noreply.github.com> Date: Thu, 10 Feb 2022 22:24:11 +0800 Subject: [PATCH] =?UTF-8?q?#publish=20=E4=BB=85=E4=B8=BA=E4=BA=86=E6=B5=8B?= =?UTF-8?q?=E8=AF=95webhook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/Map003.json | 2 +- data/MapInfos.json | 2 +- data/Skills.json | 2 +- data/System.json | 2 +- data/Troops.json | 2 +- img/scene_ui/scene_menu/skill_cold.png | Bin 0 -> 2151 bytes img/scene_ui/scene_menu/skill_hot.png | Bin 0 -> 2151 bytes .../scene_splash/spalsh_health_tip.png | Bin 0 -> 35545 bytes img/scene_ui/scene_splash/spalsh_logo.png | Bin 0 -> 49549 bytes img/scene_ui/scene_splash/splash_adapted.png | Bin 0 -> 25752 bytes js/plugins.js | 14 +- js/plugins/SF_AutoUpdate.js | 408 +++++ js/plugins/SF_CompareFileInfoWorker.js | 24 + js/plugins/SF_Core.js | 49 + js/plugins/SF_Managers.js | 47 + js/plugins/SF_SceneMenu.js | 6 +- js/plugins/SF_SceneSkill.js | 60 + js/plugins/SF_SceneSplash.js | 250 +++ js/plugins/YEP_AbsorptionBarrier.js | 1433 +++++++++++++++++ worker.js | 3 + 20 files changed, 2292 insertions(+), 12 deletions(-) create mode 100644 img/scene_ui/scene_menu/skill_cold.png create mode 100644 img/scene_ui/scene_menu/skill_hot.png create mode 100755 img/scene_ui/scene_splash/spalsh_health_tip.png create mode 100755 img/scene_ui/scene_splash/spalsh_logo.png create mode 100755 img/scene_ui/scene_splash/splash_adapted.png create mode 100644 js/plugins/SF_AutoUpdate.js create mode 100644 js/plugins/SF_CompareFileInfoWorker.js create mode 100644 js/plugins/SF_SceneSkill.js create mode 100644 js/plugins/SF_SceneSplash.js create mode 100755 js/plugins/YEP_AbsorptionBarrier.js create mode 100644 worker.js diff --git a/data/Map003.json b/data/Map003.json index e008943..34a4332 100644 --- a/data/Map003.json +++ b/data/Map003.json @@ -1 +1 @@ -{"autoplayBgm":false,"autoplayBgs":false,"battleback1Name":"Road1","battleback2Name":"Brick","bgm":{"name":"","pan":0,"pitch":100,"volume":90},"bgs":{"name":"","pan":0,"pitch":100,"volume":90},"disableDashing":false,"displayName":"","encounterList":[],"encounterStep":30,"height":50,"note":"","parallaxLoopX":false,"parallaxLoopY":false,"parallaxName":"","parallaxShow":true,"parallaxSx":0,"parallaxSy":0,"scrollType":0,"specifyBattleback":true,"tilesetId":5,"width":52,"data":[5888,5888,5912,1552,5928,5916,5916,5916,5926,1552,1552,1552,1552,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,7776,7760,7784,1552,1552,1552,1552,1552,5415,3600,3608,7008,6992,7016,3600,3584,3584,3584,3584,3584,3608,7008,6992,6992,6992,6992,6992,6992,6992,5888,5888,5912,1552,6275,6274,6274,6274,6278,1552,1552,1552,1552,1585,1585,1585,1585,1585,6978,6964,6980,1552,1552,7800,7788,7798,1552,4403,4402,4402,4406,5413,3600,3608,7032,7020,7030,3600,3584,3584,3584,3584,3584,3608,7032,7020,7020,7020,7020,7020,7020,7020,5916,5916,5926,1552,6273,6272,6272,6272,6276,1552,7379,7378,7382,1585,1585,1585,1585,1585,6984,6972,6982,1552,1552,7331,7330,7334,1552,4409,4408,4408,4412,5413,3600,3608,7379,7378,7382,3600,3584,3584,3584,3584,3584,3608,7379,7378,7378,7378,7378,7378,7378,7382,6275,6274,6278,1552,6281,6280,6280,6280,6284,1552,7385,7384,7388,1585,1585,1585,1585,1585,7331,7330,7334,1552,1552,7329,7328,7332,1552,6563,6562,6562,6562,5413,3600,3608,7385,7384,7388,3600,3584,3584,3584,3584,3584,3608,7377,7376,7376,7376,7376,7376,7376,7380,6273,6272,6276,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1585,1585,1585,1585,1585,7337,7336,7340,1552,1552,7337,7336,7340,1552,6569,6568,6568,4407,5413,3600,3608,5795,5794,5798,3600,3584,3584,3584,3584,3584,3608,7385,7384,7384,7384,7384,7384,7384,7388,6273,6272,6276,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,6978,6964,6980,4413,5413,3600,3608,5793,5792,5796,3600,3584,3584,3584,3584,3584,3586,3604,3620,3722,3618,3604,3620,1633,1633,6273,6272,6276,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,6960,6944,6968,6562,5413,3600,3608,5793,5792,5796,3600,3584,3584,3584,3584,3584,3584,3584,3608,3712,3600,3584,3608,1633,1633,6281,6280,6284,1552,1552,1552,1552,1552,5363,5362,5362,5362,5366,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,6984,6972,6982,6568,5413,3600,3608,5801,5800,5804,3624,3612,3612,3612,3612,3612,3612,3612,3622,3712,3600,3584,3608,1633,1633,7780,7780,7796,1552,1552,1552,1552,1552,5361,5360,5360,5360,5364,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5507,5506,5510,1552,5413,3600,3586,3620,3723,3713,3713,3702,3700,3700,3701,3713,3713,3713,3713,3719,3600,3584,3608,1633,1633,7788,7788,7798,1552,1552,1552,1552,1552,5369,5368,5368,5368,5372,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5505,5504,5508,1552,5413,3600,3584,3586,3604,3604,3620,3696,3680,3680,3704,3618,3604,3604,3604,3604,3585,3584,3608,1633,1633,8147,8146,8150,1552,1552,1552,1552,1552,8003,8002,8002,8002,8006,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5505,5504,5508,1552,5413,3624,3612,3612,3612,3612,3622,3696,3680,3680,3704,3624,3612,3612,3612,3612,3612,3612,3622,1633,1633,8145,8144,8148,1552,1552,1552,1552,1552,8001,8000,8000,8000,8004,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5505,5504,5508,1552,5421,5419,5418,5418,5418,5418,5422,3696,3680,3680,3704,5419,5418,5418,5418,5418,5418,5418,5418,5418,5422,8153,8152,8156,1552,1552,1552,1552,1552,8009,8008,8008,8008,8012,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5513,5512,5516,1552,5803,5802,5802,5802,5802,5802,5806,3720,3708,3708,3718,5803,5802,5802,5802,5802,5802,5802,5802,5802,5806,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,3234,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3236,1633,1633,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,3216,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3224,1633,1633,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,1552,1585,1585,1585,1585,1585,1585,1585,1552,3216,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3224,1633,1633,1552,1552,1552,1552,7746,7732,7748,1552,1552,1552,1552,1552,1552,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,7794,7780,7780,7780,7780,7796,1552,1552,3216,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3224,1633,1633,1552,5267,5266,5270,7752,7740,7750,1552,6882,6868,6868,6868,6884,1585,1585,1585,1585,1585,5555,5554,5558,1552,1552,1552,7800,7788,7788,7768,7760,7784,1552,1552,3240,3228,3228,3228,3228,3228,3228,3228,3208,3204,3228,3228,3228,3228,3228,3228,3228,3238,1633,1633,1552,5273,5272,5276,8099,8098,8102,1552,6864,6852,6876,6876,6886,1585,1585,1585,1585,1585,5561,5560,5564,5555,5554,5558,8147,8146,8150,7776,7760,7784,1552,1552,1552,1552,1552,1552,1552,1552,1552,3770,3216,3224,3770,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5651,5650,5654,8105,8104,8108,1572,6864,6872,7235,7234,7238,1585,1585,1585,1585,1585,1552,1552,1552,5561,5560,5564,8153,8152,8156,7800,7788,7798,1552,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5267,5266,5270,1552,1552,1572,1572,6888,6886,7241,7240,7244,1585,1585,1585,1585,1585,5411,5410,5410,5410,5414,1552,1552,1552,1552,8147,8146,8150,1552,1552,6114,6100,6100,6100,6100,6100,6116,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5273,5272,5276,1552,1552,1572,1572,7235,7238,1572,1572,1572,1585,1585,1585,1585,1585,5417,5416,5416,5416,5420,1552,1552,1552,1552,8153,8152,8156,1552,1552,6096,6080,6080,6080,6080,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5651,5650,5654,1552,1552,1572,1572,7241,7244,1572,1572,1572,1585,1585,1585,1585,1585,5795,5794,5794,5794,5798,1552,1552,1552,1552,1552,1552,1552,1552,1552,6120,6108,6108,6108,6088,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,6100,6116,5656,5660,1552,1552,1572,1572,1572,1572,1572,1572,1572,1585,1585,1585,1585,1585,5801,5800,5800,5800,5804,1552,1552,1552,1552,1552,1552,1552,1552,1552,4739,4738,4738,4738,6096,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,6108,6118,1585,1585,1552,1552,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,4745,4744,4744,4744,6096,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,5515,5518,1585,1585,1552,1552,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,5459,5458,5458,5462,1552,1552,1552,1552,1552,6120,6108,6118,3760,3216,3224,3760,4691,4690,4690,4694,1552,1552,1552,1552,1552,6371,6374,1552,1552,1552,1552,5459,5458,5462,7794,7780,7780,7796,1585,1585,1585,1585,1585,5922,5908,5908,5908,5908,5924,1552,1552,1552,5465,5464,5464,5468,1552,1552,1552,1552,1552,4747,4746,4750,3760,3216,3224,3760,4697,4696,4696,4700,1552,1552,1552,1552,1552,6369,6372,6786,6788,1552,1552,5465,5464,5468,7800,7788,7788,7798,1585,1585,1585,1585,1585,5928,5916,5916,5916,5916,5926,1584,1584,1584,5843,5842,5842,5846,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,5075,5074,5074,5078,1552,1552,1552,1552,1552,6369,6372,6792,6790,1552,1552,5843,5842,5846,8145,8144,8144,8148,3770,1585,1585,1585,3770,6323,6322,6322,6322,6322,6326,1584,1584,1584,5841,5840,5840,5844,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,5073,5072,5072,5076,1552,1552,1552,1552,1552,6377,6380,7147,7150,1552,1552,5849,5848,5852,8153,8152,8152,8156,3760,1585,1585,1585,3760,6329,6328,6328,6328,6328,6332,1552,1552,1552,5849,5848,5848,5852,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,5081,5080,5080,5084,1552,1552,1552,1552,1552,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3767,1552,1552,1552,3769,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3767,3240,3238,3769,3761,3761,3761,3761,3761,3761,3761,3761,3761,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,6052,6052,6052,6052,6052,6068,3771,3761,3761,3761,3761,3761,3761,3765,1552,1552,1552,3762,3748,3748,3748,3748,3749,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3773,1568,1568,6060,6060,6060,6060,6060,6070,1552,6114,6100,6100,6100,6100,6116,3760,1552,1552,1552,3746,3756,3756,3756,3756,3766,4547,4550,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,6419,6418,6418,6418,6418,6422,1552,6120,6108,6108,6108,6108,6118,3760,1552,1552,1552,3760,5219,5218,5218,5218,5222,4553,4556,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,6417,6416,6416,6416,6416,6420,1552,6467,6466,6466,6466,6466,6470,3760,1552,1552,1552,3760,5225,5224,5224,5224,5228,4882,4886,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,8147,8146,8146,8150,1568,1568,1568,1568,1568,1568,8147,8146,8146,8150,1568,1568,6425,6424,6424,6424,6424,6428,1552,6465,6464,6468,6472,6465,6468,3760,1552,1552,1552,3760,5507,5510,5514,5507,5510,4888,4892,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,8153,8152,8152,8156,8146,8146,8146,8146,8146,8146,8153,8152,8152,8156,1568,1568,8107,8106,8106,8106,8106,8110,1552,6473,6472,6476,5615,6473,6476,3760,1552,1552,1552,3760,5513,5516,5615,5513,5516,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,5931,5921,5921,5933,8152,8152,8152,8152,8152,8152,5931,5921,5921,5933,1568,1568,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3754,1552,1552,1552,3745,3748,3748,3748,3748,3748,3748,3764,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,8147,8146,8146,8146,5931,5921,5921,5921,5921,5933,8146,8146,8146,8150,1568,1568,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3766,1552,1552,1552,3768,3756,3756,3756,3756,3756,3756,3738,3748,3748,3748,3748,3748,3748,3748,3748,3764,1568,1568,8153,8152,8152,8152,8147,8146,8146,8146,8146,8150,8152,8152,8152,8156,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,3768,3756,3756,3756,3756,3756,3756,3756,3756,3758,3765,1568,1568,1568,1568,1568,8153,8152,8152,8152,8152,8156,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,3769,3761,3761,3761,3761,3761,3761,3761,3761,3761,3773,1568,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1568,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1568,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,3762,3748,3748,3748,3748,3748,3748,3748,3748,3749,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3773,1568,1568,1568,1568,1568,1568,1568,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3733,3756,3756,3756,3756,3756,3756,3756,3756,3766,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3766,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,4355,4354,4354,4354,4358,6882,6868,6868,6868,6868,6884,1552,1552,6978,6964,6964,6964,6964,6980,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,4361,4360,4360,4360,4364,6864,6848,6848,6848,6848,6872,1552,1552,6960,6944,6944,6944,6944,6968,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3810,3796,3796,3796,3812,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3792,3776,3776,3776,3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3792,3776,3776,3776,3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3792,3776,3776,3776,3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3816,3804,3804,3804,3814,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,0,0,0,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,244,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,218,216,217,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,473,473,473,473,473,473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,202,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,0,93,0,485,0,0,93,0,0,93,0,0,0,0,0,93,487,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,0,0,0,0,0,0,0,0,485,493,0,494,494,0,0,494,494,0,0,0,494,494,495,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,0,0,0,0,0,0,0,0,0,501,502,502,502,508,0,494,494,0,511,502,502,502,495,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,501,502,502,502,502,503,0,0,0,503,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,275,276,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,157,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,106,0,0,0,0,0,0,0,0,0,493,494,495,391,388,389,390,391,102,102,102,102,0,0,0,106,0,0,0,0,0,0,141,141,0,492,0,141,141,141,102,102,102,102,0,0,0,0,0,0,0,0,0,170,0,142,65,65,0,99,100,142,501,502,503,399,396,397,398,399,0,0,0,110,132,0,0,0,0,0,0,0,0,0,149,149,0,500,0,149,149,149,110,110,110,110,0,0,0,0,0,0,0,0,0,0,0,150,73,73,0,0,0,150,87,62,87,81,404,405,406,407,122,123,0,101,132,57,57,57,170,0,0,0,0,0,0,0,0,236,0,0,0,0,0,0,134,135,0,64,0,0,64,0,0,64,69,69,69,138,0,0,116,43,86,154,95,51,95,85,0,0,0,85,64,7,64,103,103,57,57,57,142,0,0,0,0,0,0,0,0,244,0,0,0,0,0,0,0,171,0,72,0,0,72,0,0,72,77,77,77,146,113,121,124,0,94,0,0,0,0,93,0,0,0,93,72,43,72,111,111,0,43,0,150,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,170,0,0,0,0,0,0,0,0,69,69,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,77,77,77,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,208,209,210,0,0,0,0,139,139,0,0,0,0,0,0,0,0,236,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,0,0,0,194,195,0,0,93,0,0,0,0,0,85,0,0,0,85,216,217,218,194,195,134,135,147,147,0,0,0,0,0,0,0,0,236,0,0,0,0,0,0,0,0,0,0,0,191,0,157,157,157,0,0,0,202,203,0,171,133,0,0,0,0,0,93,0,0,0,93,224,225,226,202,203,0,0,0,0,65,65,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,0,0,0,40,40,0,187,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,191,0,0,0,73,73,73,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,65,65,65,80,0,0,0,0,0,70,66,70,0,82,0,0,0,0,208,209,210,208,209,210,208,209,210,65,65,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,73,73,73,116,0,0,139,139,0,78,74,78,0,85,0,0,0,85,216,217,218,211,227,219,235,235,235,73,73,73,0,0,0,0,0,0,0,0,459,447,447,459,0,0,0,0,0,0,0,0,0,0,0,43,0,124,134,135,147,147,136,120,43,0,0,93,0,0,0,93,224,225,226,224,225,226,224,225,226,0,43,0,318,142,0,0,0,0,0,0,467,455,455,467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,0,0,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,464,189,190,0,0,0,0,0,0,0,0,0,0,0,0,0,207,187,296,296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,485,486,486,486,486,487,0,0,0,0,0,0,0,142,464,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,196,187,296,296,0,0,0,85,0,0,0,85,142,0,142,0,142,0,0,0,0,0,493,494,494,494,494,495,0,0,0,0,0,0,0,150,464,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,204,187,296,296,0,0,0,93,0,0,0,93,150,0,150,0,150,0,0,0,0,0,501,502,502,508,494,495,0,0,0,0,0,0,170,142,464,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,187,296,296,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,85,0,0,0,501,502,503,0,0,0,0,0,0,101,150,102,102,102,102,102,102,102,0,0,0,0,473,473,473,473,473,473,473,296,296,0,0,0,0,0,0,0,133,0,106,0,0,0,93,0,0,0,93,0,43,0,0,69,0,480,481,482,0,0,0,101,142,102,110,110,110,110,110,110,0,0,0,0,292,293,294,292,293,294,292,293,294,0,0,67,0,0,0,0,155,0,0,56,115,56,90,0,0,0,0,0,0,0,0,77,0,488,489,490,0,0,0,109,150,102,0,0,0,0,0,0,0,0,0,0,0,275,276,134,135,275,276,0,0,0,0,0,0,0,0,0,170,0,0,0,43,137,98,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,101,142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,195,83,84,121,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,233,234,109,150,0,0,170,0,0,170,0,0,0,0,0,0,262,262,262,0,0,260,261,0,0,70,0,70,82,0,42,203,0,0,0,0,0,85,0,0,0,85,0,115,0,65,65,88,0,0,498,240,241,242,0,142,0,0,0,0,0,0,0,0,0,0,0,0,0,86,0,0,0,268,269,0,0,0,43,78,0,0,50,0,275,276,0,0,0,93,0,0,0,93,0,138,43,73,73,96,0,0,506,248,249,250,0,150,0,0,0,0,0,0,0,0,0,0,0,0,0,94,0,0,0,0,0,0,0,0,0,0,44,44,0,0,0,0,0,0,0,0,0,0,0,0,0,146,0,0,483,0,0,0,0,0,0,0,0,142,0,43,43,0,0,170,0,0,0,0,0,0,0,0,0,0,0,277,277,0,91,92,138,0,44,44,0,0,0,0,0,0,0,391,388,389,390,391,0,492,0,0,491,0,0,0,0,0,0,0,0,150,133,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,285,285,0,0,0,146,0,0,0,0,0,0,0,0,0,0,399,396,397,398,399,0,500,0,0,499,0,292,293,294,0,0,0,0,142,133,0,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,407,404,405,406,407,0,0,476,477,0,0,289,296,296,0,68,68,0,150,133,0,202,203,232,233,234,0,0,0,0,64,64,64,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,0,0,0,0,0,0,60,0,0,60,0,0,288,0,0,76,76,0,142,0,0,40,40,240,241,242,0,0,0,0,72,72,72,72,0,0,0,0,0,0,0,0,85,478,479,0,0,85,0,0,0,0,85,0,0,0,85,0,0,0,0,0,85,292,293,294,0,0,85,0,150,0,0,85,351,248,249,250,85,0,0,85,0,0,0,0,322,85,307,307,324,0,0,0,93,0,0,0,0,93,0,0,0,0,93,0,41,0,93,0,0,0,0,0,93,0,0,0,0,0,93,0,0,0,0,93,0,0,0,0,93,0,0,93,0,0,0,0,0,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,85,0,0,0,0,85,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,85,0,0,0,0,85,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,0,93,0,32,0,93,0,0,0,0,0,93,0,141,141,141,141,141,141,141,141,141,141,485,486,486,486,486,486,486,486,486,486,486,486,486,486,486,487,141,0,0,0,0,122,123,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,149,149,149,149,149,149,149,149,493,494,494,170,170,494,494,492,492,494,494,494,170,170,494,495,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,157,157,0,0,0,0,0,0,0,0,493,494,494,494,494,494,494,500,500,494,494,494,494,494,494,495,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,0,0,296,0,0,0,0,0,501,502,502,502,508,494,494,494,494,494,494,511,502,502,502,503,157,480,481,482,480,481,482,0,0,0,0,0,0,0,0,0,32,0,0,57,57,0,57,57,0,498,157,157,0,0,0,289,0,0,0,0,0,0,60,60,501,502,502,502,502,502,502,503,60,60,0,0,157,488,489,490,488,489,490,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,506,141,141,0,289,0,0,0,0,0,0,0,472,473,473,474,0,60,60,60,60,0,472,473,473,474,0,157,0,0,0,85,0,496,497,0,85,0,0,0,0,85,0,0,0,85,0,0,0,0,0,85,0,149,149,0,0,0,0,270,0,0,0,0,0,68,68,0,472,473,473,473,473,474,0,68,68,0,0,157,0,0,0,93,0,504,505,186,93,0,351,0,184,93,44,44,44,93,0,0,134,135,0,93,0,0,0,0,0,85,0,0,0,85,0,0,0,76,76,0,0,68,56,56,68,0,0,76,76,0,0,157,0,0,0,0,0,192,193,0,0,0,0,0,0,52,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,93,0,0,0,0,351,133,0,76,0,0,76,0,0,0,0,0,0,157,0,0,0,0,0,200,201,0,0,0,0,0,0,52,0,41,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,40,0,40,0,40,0,40,0,40,0,40,0,0,52,0,49,0,52,0,40,0,40,0,40,0,40,0,40,0,40,0,40,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,85,0,0,0,0,0,0,0,0,0,52,0,0,0,52,0,0,0,0,0,85,0,0,0,0,0,93,0,0,0,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,93,0,0,0,0,93,0,0,0,0,93,0,0,0,93,0,0,134,135,0,93,0,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,141,141,141,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,141,157,157,0,0,0,0,0,0,0,0,0,0,0,155,155,0,0,0,0,0,0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"events":[null,{"id":1,"name":"EV001","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"!Door1","direction":2,"pattern":0,"characterIndex":4},"list":[{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":42,"y":41},{"id":2,"name":"EV002","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"!Door1","direction":2,"pattern":0,"characterIndex":4},"list":[{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":43,"y":41},{"id":3,"name":"EV003","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"Actor1","direction":6,"pattern":2,"characterIndex":2},"list":[{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":["rwesffhrdrhfgre"]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":10,"indent":null},{"code":45,"parameters":["this._chaseRange = 200;this._chaseSpeed = 2;this._seePlayer=true;"],"indent":null},{"code":0,"parameters":[]}],"repeat":false,"skippable":false,"wait":false},"moveSpeed":3,"moveType":3,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true},{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":true,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"Vehicle","direction":2,"pattern":0,"characterIndex":0},"list":[{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":16,"y":6},{"id":4,"name":"EV004","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"characterIndex":0,"characterName":"","direction":2,"pattern":0,"tileId":0},"list":[{"code":127,"indent":0,"parameters":[1,0,0,10,false]},{"code":311,"indent":0,"parameters":[0,2,1,0,9999,true]},{"code":126,"indent":0,"parameters":[5,0,0,10]},{"code":214,"indent":0,"parameters":[]},{"code":355,"indent":0,"parameters":["SceneManager.push(Scene_Menu)"]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":2,"stepAnime":false,"through":false,"trigger":3,"walkAnime":true}],"x":7,"y":5}]} \ No newline at end of file +{"autoplayBgm":false,"autoplayBgs":false,"battleback1Name":"Road1","battleback2Name":"Brick","bgm":{"name":"","pan":0,"pitch":100,"volume":90},"bgs":{"name":"","pan":0,"pitch":100,"volume":90},"disableDashing":false,"displayName":"","encounterList":[],"encounterStep":30,"height":50,"note":"","parallaxLoopX":false,"parallaxLoopY":false,"parallaxName":"","parallaxShow":true,"parallaxSx":0,"parallaxSy":0,"scrollType":0,"specifyBattleback":true,"tilesetId":5,"width":52,"data":[5888,5888,5912,1552,5928,5916,5916,5916,5926,1552,1552,1552,1552,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,7776,7760,7784,1552,1552,1552,1552,1552,5415,3600,3608,7008,6992,7016,3600,3584,3584,3584,3584,3584,3608,7008,6992,6992,6992,6992,6992,6992,6992,5888,5888,5912,1552,6275,6274,6274,6274,6278,1552,1552,1552,1552,1585,1585,1585,1585,1585,6978,6964,6980,1552,1552,7800,7788,7798,1552,4403,4402,4402,4406,5413,3600,3608,7032,7020,7030,3600,3584,3584,3584,3584,3584,3608,7032,7020,7020,7020,7020,7020,7020,7020,5916,5916,5926,1552,6273,6272,6272,6272,6276,1552,7379,7378,7382,1585,1585,1585,1585,1585,6984,6972,6982,1552,1552,7331,7330,7334,1552,4409,4408,4408,4412,5413,3600,3608,7379,7378,7382,3600,3584,3584,3584,3584,3584,3608,7379,7378,7378,7378,7378,7378,7378,7382,6275,6274,6278,1552,6281,6280,6280,6280,6284,1552,7385,7384,7388,1585,1585,1585,1585,1585,7331,7330,7334,1552,1552,7329,7328,7332,1552,6563,6562,6562,6562,5413,3600,3608,7385,7384,7388,3600,3584,3584,3584,3584,3584,3608,7377,7376,7376,7376,7376,7376,7376,7380,6273,6272,6276,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1585,1585,1585,1585,1585,7337,7336,7340,1552,1552,7337,7336,7340,1552,6569,6568,6568,4407,5413,3600,3608,5795,5794,5798,3600,3584,3584,3584,3584,3584,3608,7385,7384,7384,7384,7384,7384,7384,7388,6273,6272,6276,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,6978,6964,6980,4413,5413,3600,3608,5793,5792,5796,3600,3584,3584,3584,3584,3584,3586,3604,3620,3722,3618,3604,3620,1633,1633,6273,6272,6276,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,6960,6944,6968,6562,5413,3600,3608,5793,5792,5796,3600,3584,3584,3584,3584,3584,3584,3584,3608,3712,3600,3584,3608,1633,1633,6281,6280,6284,1552,1552,1552,1552,1552,5363,5362,5362,5362,5366,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,6984,6972,6982,6568,5413,3600,3608,5801,5800,5804,3624,3612,3612,3612,3612,3612,3612,3612,3622,3712,3600,3584,3608,1633,1633,7780,7780,7796,1552,1552,1552,1552,1552,5361,5360,5360,5360,5364,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5507,5506,5510,1552,5413,3600,3586,3620,3723,3713,3713,3702,3700,3700,3701,3713,3713,3713,3713,3719,3600,3584,3608,1633,1633,7788,7788,7798,1552,1552,1552,1552,1552,5369,5368,5368,5368,5372,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5505,5504,5508,1552,5413,3600,3584,3586,3604,3604,3620,3696,3680,3680,3704,3618,3604,3604,3604,3604,3585,3584,3608,1633,1633,8147,8146,8150,1552,1552,1552,1552,1552,8003,8002,8002,8002,8006,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5505,5504,5508,1552,5413,3624,3612,3612,3612,3612,3622,3696,3680,3680,3704,3624,3612,3612,3612,3612,3612,3612,3622,1633,1633,8145,8144,8148,1552,1552,1552,1552,1552,8001,8000,8000,8000,8004,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5505,5504,5508,1552,5421,5419,5418,5418,5418,5418,5422,3696,3680,3680,3704,5419,5418,5418,5418,5418,5418,5418,5418,5418,5422,8153,8152,8156,1552,1552,1552,1552,1552,8009,8008,8008,8008,8012,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,1552,1552,1552,5513,5512,5516,1552,5803,5802,5802,5802,5802,5802,5806,3720,3708,3708,3718,5803,5802,5802,5802,5802,5802,5802,5802,5802,5806,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,3234,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3220,3236,1633,1633,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,3216,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3224,1633,1633,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,1552,1585,1585,1585,1585,1585,1585,1585,1552,3216,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3224,1633,1633,1552,1552,1552,1552,7746,7732,7748,1552,1552,1552,1552,1552,1552,1585,1585,1585,1585,1585,1552,1552,1552,1552,1552,1552,7794,7780,7780,7780,7780,7796,1552,1552,3216,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3200,3224,1633,1633,1552,5267,5266,5270,7752,7740,7750,1552,6882,6868,6868,6868,6884,1585,1585,1585,1585,1585,5555,5554,5558,1552,1552,1552,7800,7788,7788,7768,7760,7784,1552,1552,3240,3228,3228,3228,3228,3228,3228,3228,3208,3204,3228,3228,3228,3228,3228,3228,3228,3238,1633,1633,1552,5273,5272,5276,8099,8098,8102,1552,6864,6852,6876,6876,6886,1585,1585,1585,1585,1585,5561,5560,5564,5555,5554,5558,8147,8146,8150,7776,7760,7784,1552,1552,1552,1552,1552,1552,1552,1552,1552,3770,3216,3224,3770,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5651,5650,5654,8105,8104,8108,1572,6864,6872,7235,7234,7238,1585,1585,1585,1585,1585,1552,1552,1552,5561,5560,5564,8153,8152,8156,7800,7788,7798,1552,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5267,5266,5270,1552,1552,1572,1572,6888,6886,7241,7240,7244,1585,1585,1585,1585,1585,5411,5410,5410,5410,5414,1552,1552,1552,1552,8147,8146,8150,1552,1552,6114,6100,6100,6100,6100,6100,6116,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5273,5272,5276,1552,1552,1572,1572,7235,7238,1572,1572,1572,1585,1585,1585,1585,1585,5417,5416,5416,5416,5420,1552,1552,1552,1552,8153,8152,8156,1552,1552,6096,6080,6080,6080,6080,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,5651,5650,5654,1552,1552,1572,1572,7241,7244,1572,1572,1572,1585,1585,1585,1585,1585,5795,5794,5794,5794,5798,1552,1552,1552,1552,1552,1552,1552,1552,1552,6120,6108,6108,6108,6088,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,6100,6116,5656,5660,1552,1552,1572,1572,1572,1572,1572,1572,1572,1585,1585,1585,1585,1585,5801,5800,5800,5800,5804,1552,1552,1552,1552,1552,1552,1552,1552,1552,4739,4738,4738,4738,6096,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,6108,6118,1585,1585,1552,1552,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1552,4745,4744,4744,4744,6096,6080,6104,3760,3216,3224,3760,1552,1552,1552,1552,1552,1552,1552,1552,1552,5515,5518,1585,1585,1552,1552,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,1585,5459,5458,5458,5462,1552,1552,1552,1552,1552,6120,6108,6118,3760,3216,3224,3760,4691,4690,4690,4694,1552,1552,1552,1552,1552,6371,6374,1552,1552,1552,1552,5459,5458,5462,7794,7780,7780,7796,1585,1585,1585,1585,1585,5922,5908,5908,5908,5908,5924,1552,1552,1552,5465,5464,5464,5468,1552,1552,1552,1552,1552,4747,4746,4750,3760,3216,3224,3760,4697,4696,4696,4700,1552,1552,1552,1552,1552,6369,6372,6786,6788,1552,1552,5465,5464,5468,7800,7788,7788,7798,1585,1585,1585,1585,1585,5928,5916,5916,5916,5916,5926,1584,1584,1584,5843,5842,5842,5846,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,5075,5074,5074,5078,1552,1552,1552,1552,1552,6369,6372,6792,6790,1552,1552,5843,5842,5846,8145,8144,8144,8148,3770,1585,1585,1585,3770,6323,6322,6322,6322,6322,6326,1584,1584,1584,5841,5840,5840,5844,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,5073,5072,5072,5076,1552,1552,1552,1552,1552,6377,6380,7147,7150,1552,1552,5849,5848,5852,8153,8152,8152,8156,3760,1585,1585,1585,3760,6329,6328,6328,6328,6328,6332,1552,1552,1552,5849,5848,5848,5852,1552,1552,1552,1552,1552,1552,1552,1552,3760,3216,3224,3760,5081,5080,5080,5084,1552,1552,1552,1552,1552,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3767,1552,1552,1552,3769,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3767,3240,3238,3769,3761,3761,3761,3761,3761,3761,3761,3761,3761,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,6052,6052,6052,6052,6052,6068,3771,3761,3761,3761,3761,3761,3761,3765,1552,1552,1552,3762,3748,3748,3748,3748,3749,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3773,1568,1568,6060,6060,6060,6060,6060,6070,1552,6114,6100,6100,6100,6100,6116,3760,1552,1552,1552,3746,3756,3756,3756,3756,3766,4547,4550,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,6419,6418,6418,6418,6418,6422,1552,6120,6108,6108,6108,6108,6118,3760,1552,1552,1552,3760,5219,5218,5218,5218,5222,4553,4556,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,6417,6416,6416,6416,6416,6420,1552,6467,6466,6466,6466,6466,6470,3760,1552,1552,1552,3760,5225,5224,5224,5224,5228,4882,4886,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,8147,8146,8146,8150,1568,1568,1568,1568,1568,1568,8147,8146,8146,8150,1568,1568,6425,6424,6424,6424,6424,6428,1552,6465,6464,6468,6472,6465,6468,3760,1552,1552,1552,3760,5507,5510,5514,5507,5510,4888,4892,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,8153,8152,8152,8156,8146,8146,8146,8146,8146,8146,8153,8152,8152,8156,1568,1568,8107,8106,8106,8106,8106,8110,1552,6473,6472,6476,5615,6473,6476,3760,1552,1552,1552,3760,5513,5516,5615,5513,5516,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,5931,5921,5921,5933,8152,8152,8152,8152,8152,8152,5931,5921,5921,5933,1568,1568,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3754,1552,1552,1552,3745,3748,3748,3748,3748,3748,3748,3764,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,8147,8146,8146,8146,5931,5921,5921,5921,5921,5933,8146,8146,8146,8150,1568,1568,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3766,1552,1552,1552,3768,3756,3756,3756,3756,3756,3756,3738,3748,3748,3748,3748,3748,3748,3748,3748,3764,1568,1568,8153,8152,8152,8152,8147,8146,8146,8146,8146,8150,8152,8152,8152,8156,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,3768,3756,3756,3756,3756,3756,3756,3756,3756,3758,3765,1568,1568,1568,1568,1568,8153,8152,8152,8152,8152,8156,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,3769,3761,3761,3761,3761,3761,3761,3761,3761,3761,3773,1568,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1568,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1568,1568,1568,1568,1568,1568,1568,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,1552,3762,3748,3748,3748,3748,3748,3748,3748,3748,3749,3761,3761,3761,3761,3761,3761,3761,3761,3761,3761,3773,1568,1568,1568,1568,1568,1568,1568,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3748,3733,3756,3756,3756,3756,3756,3756,3756,3756,3766,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756,3766,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,4355,4354,4354,4354,4358,6882,6868,6868,6868,6868,6884,1552,1552,6978,6964,6964,6964,6964,6980,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,4361,4360,4360,4360,4364,6864,6848,6848,6848,6848,6872,1552,1552,6960,6944,6944,6944,6944,6968,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,1568,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3810,3796,3796,3796,3812,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3792,3776,3776,3776,3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3792,3776,3776,3776,3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3792,3776,3776,3776,3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3816,3804,3804,3804,3814,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,0,0,0,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,244,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,217,218,216,217,218,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,473,473,473,473,473,473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,202,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,307,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,0,93,0,485,0,0,93,0,0,93,0,0,0,0,0,93,487,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,0,0,0,0,0,0,0,0,485,493,0,494,494,0,0,494,494,0,0,0,494,494,495,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,0,0,0,0,0,0,0,0,0,501,502,502,502,508,0,494,494,0,511,502,502,502,495,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,501,502,502,502,502,503,0,0,0,503,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,275,276,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,157,141,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,106,0,0,0,0,0,0,0,0,0,493,494,495,391,388,389,390,391,102,102,102,102,0,0,0,106,0,0,0,0,0,0,141,141,0,492,0,141,141,141,102,102,102,102,0,0,0,0,0,0,0,0,0,170,0,142,65,65,0,99,100,142,501,502,503,399,396,397,398,399,0,0,0,110,132,0,0,0,0,0,0,0,0,0,149,149,0,500,0,149,149,149,110,110,110,110,0,0,0,0,0,0,0,0,0,0,0,150,73,73,0,0,0,150,87,62,87,81,404,405,406,407,122,123,0,101,132,57,57,57,170,0,0,0,0,0,0,0,0,236,0,0,0,0,0,0,134,135,0,64,0,0,64,0,0,64,69,69,69,138,0,0,116,43,86,154,95,51,95,85,0,0,0,85,64,7,64,103,103,57,57,57,142,0,0,0,0,0,0,0,0,244,0,0,0,0,0,0,0,171,0,72,0,0,72,0,0,72,77,77,77,146,113,121,124,0,94,0,0,0,0,93,0,0,0,93,72,43,72,111,111,0,43,0,150,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,170,0,0,0,0,0,0,0,0,69,69,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,77,77,77,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,208,209,210,0,0,0,0,139,139,0,0,0,0,0,0,0,0,236,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,0,0,0,194,195,0,0,93,0,0,0,0,0,85,0,0,0,85,216,217,218,194,195,134,135,147,147,0,0,0,0,0,0,0,0,236,0,0,0,0,0,0,0,0,0,0,0,191,0,157,157,157,0,0,0,202,203,0,171,133,0,0,0,0,0,93,0,0,0,93,224,225,226,202,203,0,0,0,0,65,65,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,0,0,0,40,40,0,187,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,191,0,0,0,73,73,73,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,65,65,65,80,0,0,0,0,0,70,66,70,0,82,0,0,0,0,208,209,210,208,209,210,208,209,210,65,65,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,73,73,73,116,0,0,139,139,0,78,74,78,0,85,0,0,0,85,216,217,218,211,227,219,235,235,235,73,73,73,0,0,0,0,0,0,0,0,459,447,447,459,0,0,0,0,0,0,0,0,0,0,0,43,0,124,134,135,147,147,136,120,43,0,0,93,0,0,0,93,224,225,226,224,225,226,224,225,226,0,43,0,318,142,0,0,0,0,0,0,467,455,455,467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,0,0,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,464,189,190,0,0,0,0,0,0,0,0,0,0,0,0,0,207,187,296,296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,485,486,486,486,486,487,0,0,0,0,0,0,0,142,464,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,196,187,296,296,0,0,0,85,0,0,0,85,142,0,142,0,142,0,0,0,0,0,493,494,494,494,494,495,0,0,0,0,0,0,0,150,464,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,204,187,296,296,0,0,0,93,0,0,0,93,150,0,150,0,150,0,0,0,0,0,501,502,502,508,494,495,0,0,0,0,0,0,170,142,464,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,187,296,296,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,85,0,0,0,501,502,503,0,0,0,0,0,0,101,150,102,102,102,102,102,102,102,0,0,0,0,473,473,473,473,473,473,473,296,296,0,0,0,0,0,0,0,133,0,106,0,0,0,93,0,0,0,93,0,43,0,0,69,0,480,481,482,0,0,0,101,142,102,110,110,110,110,110,110,0,0,0,0,292,293,294,292,293,294,292,293,294,0,0,67,0,0,0,0,155,0,0,56,115,56,90,0,0,0,0,0,0,0,0,77,0,488,489,490,0,0,0,109,150,102,0,0,0,0,0,0,0,0,0,0,0,275,276,134,135,275,276,0,0,0,0,0,0,0,0,0,170,0,0,0,43,137,98,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,101,142,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,195,83,84,121,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,233,234,109,150,0,0,170,0,0,170,0,0,0,0,0,0,262,262,262,0,0,260,261,0,0,70,0,70,82,0,42,203,0,0,0,0,0,85,0,0,0,85,0,115,0,65,65,88,0,0,498,240,241,242,0,142,0,0,0,0,0,0,0,0,0,0,0,0,0,86,0,0,0,268,269,0,0,0,43,78,0,0,50,0,275,276,0,0,0,93,0,0,0,93,0,138,43,73,73,96,0,0,506,248,249,250,0,150,0,0,0,0,0,0,0,0,0,0,0,0,0,94,0,0,0,0,0,0,0,0,0,0,44,44,0,0,0,0,0,0,0,0,0,0,0,0,0,146,0,0,483,0,0,0,0,0,0,0,0,142,0,43,43,0,0,170,0,0,0,0,0,0,0,0,0,0,0,277,277,0,91,92,138,0,44,44,0,0,0,0,0,0,0,391,388,389,390,391,0,492,0,0,491,0,0,0,0,0,0,0,0,150,133,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,285,285,0,0,0,146,0,0,0,0,0,0,0,0,0,0,399,396,397,398,399,0,500,0,0,499,0,292,293,294,0,0,0,0,142,133,0,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,407,404,405,406,407,0,0,476,477,0,0,289,296,296,0,68,68,0,150,133,0,202,203,232,233,234,0,0,0,0,64,64,64,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,0,0,0,0,0,0,60,0,0,60,0,0,288,0,0,76,76,0,142,0,0,40,40,240,241,242,0,0,0,0,72,72,72,72,0,0,0,0,0,0,0,0,85,478,479,0,0,85,0,0,0,0,85,0,0,0,85,0,0,0,0,0,85,292,293,294,0,0,85,0,150,0,0,85,351,248,249,250,85,0,0,85,0,0,0,0,322,85,307,307,324,0,0,0,93,0,0,0,0,93,0,0,0,0,93,0,41,0,93,0,0,0,0,0,93,0,0,0,0,0,93,0,0,0,0,93,0,0,0,0,93,0,0,93,0,0,0,0,0,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,0,85,0,0,0,0,85,0,0,0,85,0,0,0,0,0,85,0,0,0,0,0,85,0,0,0,0,85,0,0,0,0,85,0,0,85,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,0,93,0,32,0,93,0,0,0,0,0,93,0,141,141,141,141,141,141,141,141,141,141,485,486,486,486,486,486,486,486,486,486,486,486,486,486,486,487,141,0,0,0,0,122,123,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,149,149,149,149,149,149,149,149,493,494,494,170,170,494,494,492,492,494,494,494,170,170,494,495,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,157,157,0,0,0,0,0,0,0,0,493,494,494,494,494,494,494,500,500,494,494,494,494,494,494,495,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,0,0,296,0,0,0,0,0,501,502,502,502,508,494,494,494,494,494,494,511,502,502,502,503,157,480,481,482,480,481,482,0,0,0,0,0,0,0,0,0,32,0,0,57,57,0,57,57,0,498,157,157,0,0,0,289,0,0,0,0,0,0,60,60,501,502,502,502,502,502,502,503,60,60,0,0,157,488,489,490,488,489,490,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,506,141,141,0,289,0,0,0,0,0,0,0,472,473,473,474,0,60,60,60,60,0,472,473,473,474,0,157,0,0,0,85,0,496,497,0,85,0,0,0,0,85,0,0,0,85,0,0,0,0,0,85,0,149,149,0,0,0,0,270,0,0,0,0,0,68,68,0,472,473,473,473,473,474,0,68,68,0,0,157,0,0,0,93,0,504,505,186,93,0,351,0,184,93,44,44,44,93,0,0,134,135,0,93,0,0,0,0,0,85,0,0,0,85,0,0,0,76,76,0,0,68,56,56,68,0,0,76,76,0,0,157,0,0,0,0,0,192,193,0,0,0,0,0,0,52,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,93,0,0,0,0,351,133,0,76,0,0,76,0,0,0,0,0,0,157,0,0,0,0,0,200,201,0,0,0,0,0,0,52,0,41,0,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,40,0,40,0,40,0,40,0,40,0,40,0,0,52,0,49,0,52,0,40,0,40,0,40,0,40,0,40,0,40,0,40,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,85,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,85,0,0,0,0,0,0,0,0,0,52,0,0,0,52,0,0,0,0,0,85,0,0,0,0,0,93,0,0,0,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,93,0,0,0,0,93,0,0,0,0,93,0,0,0,93,0,0,134,135,0,93,0,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,141,141,141,141,141,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,141,157,157,0,0,0,0,0,0,0,0,0,0,0,155,155,0,0,0,0,0,0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"events":[null,{"id":1,"name":"EV001","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"!Door1","direction":2,"pattern":0,"characterIndex":4},"list":[{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":42,"y":41},{"id":2,"name":"EV002","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"!Door1","direction":2,"pattern":0,"characterIndex":4},"list":[{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":43,"y":41},{"id":3,"name":"EV003","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"Actor1","direction":6,"pattern":2,"characterIndex":2},"list":[{"code":101,"indent":0,"parameters":["",0,0,2]},{"code":401,"indent":0,"parameters":["rwesffhrdrhfgre"]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":10,"indent":null},{"code":45,"parameters":["this._chaseRange = 200;this._chaseSpeed = 2;this._seePlayer=true;"],"indent":null},{"code":0,"parameters":[]}],"repeat":false,"skippable":false,"wait":false},"moveSpeed":3,"moveType":3,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true},{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":true,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"Vehicle","direction":2,"pattern":0,"characterIndex":0},"list":[{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":16,"y":6},{"id":4,"name":"EV004","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"characterIndex":0,"characterName":"","direction":2,"pattern":0,"tileId":0},"list":[{"code":127,"indent":0,"parameters":[1,0,0,10,false]},{"code":311,"indent":0,"parameters":[0,2,1,0,9999,true]},{"code":126,"indent":0,"parameters":[5,0,0,10]},{"code":214,"indent":0,"parameters":[]},{"code":318,"indent":0,"parameters":[0,0,0,12]},{"code":301,"indent":0,"parameters":[0,1,true,true]},{"code":601,"indent":0,"parameters":[]},{"code":0,"indent":1,"parameters":[]},{"code":602,"indent":0,"parameters":[]},{"code":0,"indent":1,"parameters":[]},{"code":603,"indent":0,"parameters":[]},{"code":0,"indent":1,"parameters":[]},{"code":604,"indent":0,"parameters":[]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":2,"stepAnime":false,"through":false,"trigger":3,"walkAnime":true}],"x":7,"y":5}]} \ No newline at end of file diff --git a/data/MapInfos.json b/data/MapInfos.json index bc4fee8..be2cf1f 100644 --- a/data/MapInfos.json +++ b/data/MapInfos.json @@ -2,5 +2,5 @@ null, {"id":1,"expanded":false,"name":"MAP001","order":2,"parentId":0,"scrollX":2457,"scrollY":1368}, null, -{"id":3,"expanded":true,"name":"南郊(有水泵站)","order":1,"parentId":0,"scrollX":1390.2857142857142,"scrollY":1219.7142857142856} +{"id":3,"expanded":true,"name":"南郊(有水泵站)","order":1,"parentId":0,"scrollX":534,"scrollY":323} ] \ No newline at end of file diff --git a/data/Skills.json b/data/Skills.json index 0d3a446..5c19034 100644 --- a/data/Skills.json +++ b/data/Skills.json @@ -11,7 +11,7 @@ null, {"id":9,"animationId":66,"damage":{"critical":false,"elementId":2,"formula":"100 + a.mat * 2 - b.mdf * 2","type":1,"variance":20},"description":"","effects":[],"hitType":2,"iconIndex":64,"message1":"吟唱了%1!","message2":"","mpCost":5,"name":"火焰","note":"","occasion":1,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":1,"speed":0,"stypeId":1,"successRate":100,"tpCost":0,"tpGain":10}, {"id":10,"animationId":78,"damage":{"critical":false,"elementId":4,"formula":"100 + a.mat * 2 - b.mdf * 2","type":1,"variance":20},"description":"","effects":[],"hitType":2,"iconIndex":66,"message1":"吟唱了%1!","message2":"","mpCost":5,"name":"闪电","note":"","occasion":1,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":2,"speed":0,"stypeId":2,"successRate":100,"tpCost":0,"tpGain":10}, {"id":11,"animationId":0,"damage":{"critical":false,"elementId":0,"formula":"0","type":0,"variance":20},"description":"","effects":[],"hitType":0,"iconIndex":0,"message1":"","message2":"","mpCost":0,"name":"","note":"","occasion":0,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":1,"speed":0,"stypeId":1,"successRate":100,"tpCost":0,"tpGain":0}, -{"id":12,"animationId":0,"damage":{"critical":false,"elementId":0,"formula":"0","type":0,"variance":20},"description":"","effects":[],"hitType":0,"iconIndex":0,"message1":"","message2":"","mpCost":0,"name":"1,1","note":"","occasion":0,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":1,"speed":0,"stypeId":1,"successRate":100,"tpCost":0,"tpGain":0}, +{"id":12,"animationId":0,"damage":{"critical":false,"elementId":0,"formula":"0","type":0,"variance":20},"description":"","effects":[],"hitType":0,"iconIndex":0,"message1":"","message2":"","mpCost":0,"name":"1,1","note":"\n","occasion":0,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":11,"speed":0,"stypeId":1,"successRate":100,"tpCost":0,"tpGain":0}, {"id":13,"animationId":0,"damage":{"critical":false,"elementId":0,"formula":"0","type":0,"variance":20},"description":"","effects":[],"hitType":0,"iconIndex":0,"message1":"","message2":"","mpCost":0,"name":"1,2","note":"","occasion":0,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":1,"speed":0,"stypeId":1,"successRate":100,"tpCost":0,"tpGain":0}, {"id":14,"animationId":0,"damage":{"critical":false,"elementId":0,"formula":"0","type":0,"variance":20},"description":"","effects":[],"hitType":0,"iconIndex":0,"message1":"","message2":"","mpCost":0,"name":"1,3","note":"","occasion":0,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":1,"speed":0,"stypeId":1,"successRate":100,"tpCost":0,"tpGain":0}, {"id":15,"animationId":0,"damage":{"critical":false,"elementId":0,"formula":"0","type":0,"variance":20},"description":"","effects":[],"hitType":0,"iconIndex":0,"message1":"","message2":"","mpCost":0,"name":"1,4","note":"","occasion":0,"repeats":1,"requiredWtypeId1":0,"requiredWtypeId2":0,"scope":1,"speed":0,"stypeId":2,"successRate":100,"tpCost":0,"tpGain":0}, diff --git a/data/System.json b/data/System.json index 28c576d..b283de9 100644 --- a/data/System.json +++ b/data/System.json @@ -1 +1 @@ -{"airship":{"bgm":{"name":"Ship3","pan":0,"pitch":100,"volume":90},"characterIndex":3,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"armorTypes":["","轻甲","重甲","魔法护甲","普通饰品","魔法饰品","魔法球"],"attackMotions":[{"type":0,"weaponImageId":0},{"type":1,"weaponImageId":1},{"type":1,"weaponImageId":2},{"type":1,"weaponImageId":3},{"type":1,"weaponImageId":4},{"type":1,"weaponImageId":5},{"type":1,"weaponImageId":6},{"type":2,"weaponImageId":7},{"type":2,"weaponImageId":8},{"type":2,"weaponImageId":9},{"type":0,"weaponImageId":10},{"type":0,"weaponImageId":11},{"type":0,"weaponImageId":12}],"battleBgm":{"name":"Battle1","pan":0,"pitch":100,"volume":90},"battleback1Name":"Grassland","battleback2Name":"Grassland","battlerHue":0,"battlerName":"Dragon","boat":{"bgm":{"name":"Ship1","pan":0,"pitch":100,"volume":90},"characterIndex":0,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"currencyUnit":"G","defeatMe":{"name":"Defeat1","pan":0,"pitch":100,"volume":90},"editMapId":3,"elements":["","物理","地","风","水","火","电","冰","圣","暗","精神","力场","混沌","幽能"],"equipTypes":["","武器","副手","帽子","甲衣","靴子","项链","戒指"],"gameTitle":"异常生物见闻录","gameoverMe":{"name":"Gameover1","pan":0,"pitch":100,"volume":90},"locale":"zh_CN","magicSkills":[1],"menuCommands":[true,true,true,true,true,true],"optDisplayTp":true,"optDrawTitle":true,"optExtraExp":false,"optFloorDeath":false,"optFollowers":true,"optSideView":false,"optSlipDeath":false,"optTransparent":false,"partyMembers":[1,2,3,4],"ship":{"bgm":{"name":"Ship2","pan":0,"pitch":100,"volume":90},"characterIndex":1,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"skillTypes":["","特技","魔法","神术"],"sounds":[{"name":"Cursor2","pan":0,"pitch":100,"volume":90},{"name":"Decision1","pan":0,"pitch":100,"volume":90},{"name":"Cancel2","pan":0,"pitch":100,"volume":90},{"name":"Buzzer1","pan":0,"pitch":100,"volume":90},{"name":"Equip1","pan":0,"pitch":100,"volume":90},{"name":"Save","pan":0,"pitch":100,"volume":90},{"name":"Load","pan":0,"pitch":100,"volume":90},{"name":"Battle1","pan":0,"pitch":100,"volume":90},{"name":"Run","pan":0,"pitch":100,"volume":90},{"name":"Attack3","pan":0,"pitch":100,"volume":90},{"name":"Damage4","pan":0,"pitch":100,"volume":90},{"name":"Collapse1","pan":0,"pitch":100,"volume":90},{"name":"Collapse2","pan":0,"pitch":100,"volume":90},{"name":"Collapse3","pan":0,"pitch":100,"volume":90},{"name":"Damage5","pan":0,"pitch":100,"volume":90},{"name":"Collapse4","pan":0,"pitch":100,"volume":90},{"name":"Recovery","pan":0,"pitch":100,"volume":90},{"name":"Miss","pan":0,"pitch":100,"volume":90},{"name":"Evasion1","pan":0,"pitch":100,"volume":90},{"name":"Evasion2","pan":0,"pitch":100,"volume":90},{"name":"Reflection","pan":0,"pitch":100,"volume":90},{"name":"Shop1","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90}],"startMapId":3,"startX":15,"startY":28,"switches":["","","","","","","","","","","","","","","","","","","","",""],"terms":{"basic":["等级","Lv","HP","HP","MP","MP","TP","TP","经验值","EXP"],"commands":["战斗","逃跑","攻击","防御","物品","技能","装备","状态","整队","保存","游戏结束","设置","武器","护甲","重要物品","装备","最强装备","清空","开始游戏","继续游戏",null,"回到标题","取消",null,"购买","出售"],"params":["最大 HP","最大 MP","攻击力","防御力","魔法攻击","魔法防御","敏捷","幸运","命中率","回避率"],"messages":{"actionFailure":"对%1没有效果!","actorDamage":"%1受到了 %2 点伤害!","actorDrain":"%1被吸收了 %3 点 %2!","actorGain":"%1的 %2 增加了 %3 点!","actorLoss":"%1的 %2 减少了 %3 点!","actorNoDamage":"%1没有受到伤害!","actorNoHit":"Miss! %1没有受到伤害!","actorRecovery":"%1恢复了 %3 点 %2!","alwaysDash":"始终跑步","bgmVolume":"BGM 音量","bgsVolume":"BGS 音量","buffAdd":"%1的%2上升了!","buffRemove":"%1的%2恢复正常了!","commandRemember":"记住指令","counterAttack":"%1的反击!","criticalToActor":"痛恨一击!","criticalToEnemy":"会心一击!","debuffAdd":"%1的%2下降了!","defeat":"%1被击败了。","emerge":"%1出现了!","enemyDamage":"%1受到了 %2 点伤害!","enemyDrain":"%1被吸收了 %3 点 %2!","enemyGain":"%1的 %2 增加了 %3 点!","enemyLoss":"%1的 %2 减少了 %3 点!","enemyNoDamage":"没有对%1造成伤害!","enemyNoHit":"Miss!没有对%1造成伤害!","enemyRecovery":"%1恢复了 %3 点 %2!","escapeFailure":"但是没有逃跑成功!","escapeStart":"%1开始逃跑了!","evasion":"%1躲开了攻击!","expNext":"距离下一%1","expTotal":"现在的%1","file":"文件","levelUp":"%1升到了 %2 %3!","loadMessage":"读取哪个文件?","magicEvasion":"%1抵消了魔法!","magicReflection":"%1反射了魔法!","meVolume":"ME 音量","obtainExp":"获得了 %1 点%2!","obtainGold":"获得了 %1\\G!","obtainItem":"获得了%1!","obtainSkill":"学会了%1!","partyName":"%1的队伍","possession":"持有数","preemptive":"%1先发制人!","saveMessage":"保存到哪个文件?","seVolume":"SE 音量","substitute":"%1保护了%2!","surprise":"%1被偷袭了!","useItem":"%1使用了%2!","victory":"%1胜利了!"}},"testBattlers":[{"actorId":1,"equips":[1,1,2,3,0],"level":1},{"actorId":2,"equips":[2,1,2,3,0],"level":1},{"actorId":3,"equips":[3,0,2,3,4],"level":1},{"actorId":4,"equips":[4,0,2,3,4],"level":1}],"testTroopId":4,"title1Name":"Plain","title2Name":"","titleBgm":{"name":"Theme6","pan":0,"pitch":100,"volume":90},"variables":["","","","","","","","","","","","","","","","","","","","",""],"versionId":38264107,"victoryMe":{"name":"Victory1","pan":0,"pitch":100,"volume":90},"weaponTypes":["","剑","匕首","爪","长枪","短斧","双手武器","热武器","莉莉的爪子","魔王佩剑","战法师手套"],"windowTone":[0,0,0,0]} \ No newline at end of file +{"airship":{"bgm":{"name":"Ship3","pan":0,"pitch":100,"volume":90},"characterIndex":3,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"armorTypes":["","轻甲","重甲","魔法护甲","普通饰品","魔法饰品","魔法球"],"attackMotions":[{"type":0,"weaponImageId":0},{"type":1,"weaponImageId":1},{"type":1,"weaponImageId":2},{"type":1,"weaponImageId":3},{"type":1,"weaponImageId":4},{"type":1,"weaponImageId":5},{"type":1,"weaponImageId":6},{"type":2,"weaponImageId":7},{"type":2,"weaponImageId":8},{"type":2,"weaponImageId":9},{"type":0,"weaponImageId":10},{"type":0,"weaponImageId":11},{"type":0,"weaponImageId":12}],"battleBgm":{"name":"Battle1","pan":0,"pitch":100,"volume":90},"battleback1Name":"Grassland","battleback2Name":"Grassland","battlerHue":0,"battlerName":"Dragon","boat":{"bgm":{"name":"Ship1","pan":0,"pitch":100,"volume":90},"characterIndex":0,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"currencyUnit":"G","defeatMe":{"name":"Defeat1","pan":0,"pitch":100,"volume":90},"editMapId":3,"elements":["","物理","地","风","水","火","电","冰","圣","暗","精神","力场","混沌","幽能"],"equipTypes":["","武器","副手","帽子","甲衣","靴子","项链","戒指"],"gameTitle":"异常生物见闻录","gameoverMe":{"name":"Gameover1","pan":0,"pitch":100,"volume":90},"locale":"zh_CN","magicSkills":[1],"menuCommands":[true,true,true,true,true,true],"optDisplayTp":true,"optDrawTitle":true,"optExtraExp":false,"optFloorDeath":false,"optFollowers":true,"optSideView":false,"optSlipDeath":false,"optTransparent":false,"partyMembers":[1,2,3,4],"ship":{"bgm":{"name":"Ship2","pan":0,"pitch":100,"volume":90},"characterIndex":1,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"skillTypes":["","特技","魔法","神术"],"sounds":[{"name":"Cursor2","pan":0,"pitch":100,"volume":90},{"name":"Decision1","pan":0,"pitch":100,"volume":90},{"name":"Cancel2","pan":0,"pitch":100,"volume":90},{"name":"Buzzer1","pan":0,"pitch":100,"volume":90},{"name":"Equip1","pan":0,"pitch":100,"volume":90},{"name":"Save","pan":0,"pitch":100,"volume":90},{"name":"Load","pan":0,"pitch":100,"volume":90},{"name":"Battle1","pan":0,"pitch":100,"volume":90},{"name":"Run","pan":0,"pitch":100,"volume":90},{"name":"Attack3","pan":0,"pitch":100,"volume":90},{"name":"Damage4","pan":0,"pitch":100,"volume":90},{"name":"Collapse1","pan":0,"pitch":100,"volume":90},{"name":"Collapse2","pan":0,"pitch":100,"volume":90},{"name":"Collapse3","pan":0,"pitch":100,"volume":90},{"name":"Damage5","pan":0,"pitch":100,"volume":90},{"name":"Collapse4","pan":0,"pitch":100,"volume":90},{"name":"Recovery","pan":0,"pitch":100,"volume":90},{"name":"Miss","pan":0,"pitch":100,"volume":90},{"name":"Evasion1","pan":0,"pitch":100,"volume":90},{"name":"Evasion2","pan":0,"pitch":100,"volume":90},{"name":"Reflection","pan":0,"pitch":100,"volume":90},{"name":"Shop1","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90}],"startMapId":3,"startX":15,"startY":28,"switches":["","","","","","","","","","","","","","","","","","","","",""],"terms":{"basic":["等级","Lv","HP","HP","MP","MP","TP","TP","经验值","EXP"],"commands":["战斗","逃跑","攻击","防御","物品","技能","装备","状态","整队","保存","游戏结束","设置","武器","护甲","重要物品","装备","最强装备","清空","开始游戏","继续游戏",null,"回到标题","取消",null,"购买","出售"],"params":["最大 HP","最大 MP","攻击力","防御力","魔法攻击","魔法防御","敏捷","幸运","命中率","回避率"],"messages":{"actionFailure":"对%1没有效果!","actorDamage":"%1受到了 %2 点伤害!","actorDrain":"%1被吸收了 %3 点 %2!","actorGain":"%1的 %2 增加了 %3 点!","actorLoss":"%1的 %2 减少了 %3 点!","actorNoDamage":"%1没有受到伤害!","actorNoHit":"Miss! %1没有受到伤害!","actorRecovery":"%1恢复了 %3 点 %2!","alwaysDash":"始终跑步","bgmVolume":"BGM 音量","bgsVolume":"BGS 音量","buffAdd":"%1的%2上升了!","buffRemove":"%1的%2恢复正常了!","commandRemember":"记住指令","counterAttack":"%1的反击!","criticalToActor":"痛恨一击!","criticalToEnemy":"会心一击!","debuffAdd":"%1的%2下降了!","defeat":"%1被击败了。","emerge":"%1出现了!","enemyDamage":"%1受到了 %2 点伤害!","enemyDrain":"%1被吸收了 %3 点 %2!","enemyGain":"%1的 %2 增加了 %3 点!","enemyLoss":"%1的 %2 减少了 %3 点!","enemyNoDamage":"没有对%1造成伤害!","enemyNoHit":"Miss!没有对%1造成伤害!","enemyRecovery":"%1恢复了 %3 点 %2!","escapeFailure":"但是没有逃跑成功!","escapeStart":"%1开始逃跑了!","evasion":"%1躲开了攻击!","expNext":"距离下一%1","expTotal":"现在的%1","file":"文件","levelUp":"%1升到了 %2 %3!","loadMessage":"读取哪个文件?","magicEvasion":"%1抵消了魔法!","magicReflection":"%1反射了魔法!","meVolume":"ME 音量","obtainExp":"获得了 %1 点%2!","obtainGold":"获得了 %1\\G!","obtainItem":"获得了%1!","obtainSkill":"学会了%1!","partyName":"%1的队伍","possession":"持有数","preemptive":"%1先发制人!","saveMessage":"保存到哪个文件?","seVolume":"SE 音量","substitute":"%1保护了%2!","surprise":"%1被偷袭了!","useItem":"%1使用了%2!","victory":"%1胜利了!"}},"testBattlers":[{"actorId":1,"equips":[1,1,2,3,0],"level":1},{"actorId":2,"equips":[2,1,2,3,0],"level":1},{"actorId":3,"equips":[3,0,2,3,4],"level":1},{"actorId":4,"equips":[4,0,2,3,4],"level":1}],"testTroopId":4,"title1Name":"Plain","title2Name":"","titleBgm":{"name":"Theme6","pan":0,"pitch":100,"volume":90},"variables":["","","","","","","","","","","","","","","","","","","","",""],"versionId":72472648,"victoryMe":{"name":"Victory1","pan":0,"pitch":100,"volume":90},"weaponTypes":["","剑","匕首","爪","长枪","短斧","双手武器","热武器","莉莉的爪子","魔王佩剑","战法师手套"],"windowTone":[0,0,0,0]} \ No newline at end of file diff --git a/data/Troops.json b/data/Troops.json index 8a5ad78..b1f093d 100644 --- a/data/Troops.json +++ b/data/Troops.json @@ -1,6 +1,6 @@ [ null, -{"id":1,"members":[{"enemyId":1,"x":336,"y":436,"hidden":false},{"enemyId":1,"x":480,"y":436,"hidden":false}],"name":"蝙蝠*2","pages":[{"conditions":{"actorHp":50,"actorId":1,"actorValid":false,"enemyHp":50,"enemyIndex":0,"enemyValid":false,"switchId":1,"switchValid":false,"turnA":0,"turnB":0,"turnEnding":false,"turnValid":true},"list":[{"code":311,"indent":0,"parameters":[0,0,1,0,1000,true]},{"code":0,"indent":0,"parameters":[]}],"span":2}]}, +{"id":1,"members":[{"enemyId":1,"x":336,"y":436,"hidden":false},{"enemyId":1,"x":480,"y":436,"hidden":false}],"name":"蝙蝠*2","pages":[{"conditions":{"actorHp":50,"actorId":1,"actorValid":false,"enemyHp":50,"enemyIndex":0,"enemyValid":false,"switchId":1,"switchValid":false,"turnA":0,"turnB":0,"turnEnding":false,"turnValid":false},"list":[{"code":0,"indent":0,"parameters":[]}],"span":1}]}, {"id":2,"members":[{"enemyId":2,"x":337,"y":436,"hidden":false},{"enemyId":2,"x":480,"y":436,"hidden":false}],"name":"史莱姆*2","pages":[{"conditions":{"actorHp":50,"actorId":1,"actorValid":false,"enemyHp":50,"enemyIndex":0,"enemyValid":false,"switchId":1,"switchValid":false,"turnA":0,"turnB":0,"turnEnding":false,"turnValid":false},"list":[{"code":0,"indent":0,"parameters":[]}],"span":0}]}, {"id":3,"members":[{"enemyId":3,"x":408,"y":436,"hidden":false}],"name":"兽人","pages":[{"conditions":{"actorHp":50,"actorId":1,"actorValid":false,"enemyHp":50,"enemyIndex":0,"enemyValid":false,"switchId":1,"switchValid":false,"turnA":0,"turnB":0,"turnEnding":false,"turnValid":false},"list":[{"code":0,"indent":0,"parameters":[]}],"span":0}]}, {"id":4,"members":[{"enemyId":4,"x":408,"y":436,"hidden":false}],"name":"牛头怪","pages":[{"conditions":{"actorHp":50,"actorId":1,"actorValid":false,"enemyHp":50,"enemyIndex":0,"enemyValid":false,"switchId":1,"switchValid":false,"turnA":0,"turnB":0,"turnEnding":false,"turnValid":false},"list":[{"code":0,"indent":0,"parameters":[]}],"span":0}]} diff --git a/img/scene_ui/scene_menu/skill_cold.png b/img/scene_ui/scene_menu/skill_cold.png new file mode 100644 index 0000000000000000000000000000000000000000..07b761b6f6b8d4a01f06251cf547951abd9b8559 GIT binary patch literal 2151 zcmV-t2$=VYP)Px-AxT6*RCr$PU4KXwSrquBjcmN~ljX)p}z{to5{C+>WySq_aTRQ=u z1waLWF>_BV*}nyFv$(i8+w1jW>C&Zwvmo$AAuus9f#b)Iqq@49o<0}AW2JzZ>|X=u zC@(M1sI9I2q7;4Y-6(s}#B5?5FL7Y8%wj983itNpejg5sxMMZ*;AfOcj zFJ8RB!i5Wm0enxgM+0~>HZ~R;8yl;YqN0o-Km^j$)6vz{l}@rJCnqNl3=9kiGJ=4X z2$YqT;q>X#Wh8rMW@ct*XJ@CDii%Q#0E;dM4jiZ_*>iGoa@yP5+XWRtKuZLgnwqe0 z-@YaxyO!n^rOXHj*@X|TK|sjv8dHm+LU!SRYY-5!yT;U_sE}Pa;2H#k?5;7jC@N$Z z4!8yZA-ii#Es6@+g#)fZK*;VIQ;VWPcHw|)5D>Dv#?+#ykUatp^z`&#aBvX2ckd2) z70N7Hv!d<3d#*;U9Mfmy9&rncMQ^%Y!^J`)=I0(FkGqPr%=I#5+rWo);m8p%DI#y;jSg*&hDmB@Sd z?(r>n;}U1ioWY?(hm7k}mSn$v{km~ZO(1KiGn;$6RYu4jrsY+rVb_g&4O-)86|-;K zwk@cOS&nf!Ck?&yiWMuSh7A(CJJ?dl z9wyo8*-7dJ3lIB_COZQLa;WRJk!A2UInsj8yRseb?_u=D24Ge+Lu-*3e3*03l7 zwY2RjWRJkKX0p@E(=*f4n;Va3WMl+|9ZWE-2_@t6-rio@(I|P6Ud8NYL2e^1397Rp zh3w84g_KZaCz)TpdIg3fB<$6z+y@`nv13P2U*&~|hK8nvJWM_rl34q2@+hy(>$9oq zOaw!BWmh5l2blf&^XIsH`LeP2^X%C(qf|(*u98lAX~x-4pFRz``nq-N3=eOPxs`w_ zEAm?A#st?~jj_h;Oqi`@%nwk>6?m$%lafBOOq+#%?R%+|v8BfR_9$rDxPNhe+D$2M%)blRpnBA_@!t*o5 z>=6v#bzOz*5tw`?vNPOalFAiOwotLUH9>U>W2^}(e{&pCesngZklh)hkP_2A6BySdQYA_nR?KS6GW|` znxC`bgy1-21=ZP*LUw12rb)1j*wD~`l`B_b=gyr*?VKK#NhptP+O)~GIzpMdckdb# zW$)g-K_y5#vL8Kq)bQB+L?^2~c8?HqaID44+e^-d6tX*GBodk+AY|9XkfMe&0z!6Y zj6^~c1cdCG7*f=5MnK5!jFCuaf`E`+6GMs`&IkzEoiP##O%M>WYhp-I!x;e~yE8^2 zp$P&)c1;W^YB(bxWOv3$Bs4)l$gYVYMGa>JgzU~3iG(Hy2-!6;q^RMHfRNo8BazSq z0W;at($dm;_^h@xK|n_YYHDh@Ic!Z7fbRf|PEJlnMMd$aG(kWw1PTfY(AwHspxE8l z*VmWIcN(P$0y-fuIXQ{w=;%oRNs8=Vuh-kaSI(pf0y-hUZ&Vc)7IpymNs&DUz@M$H zt)Be+e4TU^U0jU7>({RlA0JPz{v&{1bC8|};E%4Zu5Z??S>s}eM0H&d;0|hyjg7wo zFuvAc%}DtT!r$B4+M+ja-mHtxqKC^67#D$r6MpsK5p!i=JWaf0Z;{?S`j@I*?FAbGARM@OG-*gg2&@AwprsoCDH_e z&k2D*AYgp!%J27c!>Dlp{BlDrfI;gxoeJwbzYKr}KqB|$`J5D$u?PYH0suw;_yP0* d_&XFT{{dvQi{-=R!h!$*002ovPDHLkV1g!B{)hko literal 0 HcmV?d00001 diff --git a/img/scene_ui/scene_menu/skill_hot.png b/img/scene_ui/scene_menu/skill_hot.png new file mode 100644 index 0000000000000000000000000000000000000000..07b761b6f6b8d4a01f06251cf547951abd9b8559 GIT binary patch literal 2151 zcmV-t2$=VYP)Px-AxT6*RCr$PU4KXwSrquBjcmN~ljX)p}z{to5{C+>WySq_aTRQ=u z1waLWF>_BV*}nyFv$(i8+w1jW>C&Zwvmo$AAuus9f#b)Iqq@49o<0}AW2JzZ>|X=u zC@(M1sI9I2q7;4Y-6(s}#B5?5FL7Y8%wj983itNpejg5sxMMZ*;AfOcj zFJ8RB!i5Wm0enxgM+0~>HZ~R;8yl;YqN0o-Km^j$)6vz{l}@rJCnqNl3=9kiGJ=4X z2$YqT;q>X#Wh8rMW@ct*XJ@CDii%Q#0E;dM4jiZ_*>iGoa@yP5+XWRtKuZLgnwqe0 z-@YaxyO!n^rOXHj*@X|TK|sjv8dHm+LU!SRYY-5!yT;U_sE}Pa;2H#k?5;7jC@N$Z z4!8yZA-ii#Es6@+g#)fZK*;VIQ;VWPcHw|)5D>Dv#?+#ykUatp^z`&#aBvX2ckd2) z70N7Hv!d<3d#*;U9Mfmy9&rncMQ^%Y!^J`)=I0(FkGqPr%=I#5+rWo);m8p%DI#y;jSg*&hDmB@Sd z?(r>n;}U1ioWY?(hm7k}mSn$v{km~ZO(1KiGn;$6RYu4jrsY+rVb_g&4O-)86|-;K zwk@cOS&nf!Ck?&yiWMuSh7A(CJJ?dl z9wyo8*-7dJ3lIB_COZQLa;WRJk!A2UInsj8yRseb?_u=D24Ge+Lu-*3e3*03l7 zwY2RjWRJkKX0p@E(=*f4n;Va3WMl+|9ZWE-2_@t6-rio@(I|P6Ud8NYL2e^1397Rp zh3w84g_KZaCz)TpdIg3fB<$6z+y@`nv13P2U*&~|hK8nvJWM_rl34q2@+hy(>$9oq zOaw!BWmh5l2blf&^XIsH`LeP2^X%C(qf|(*u98lAX~x-4pFRz``nq-N3=eOPxs`w_ zEAm?A#st?~jj_h;Oqi`@%nwk>6?m$%lafBOOq+#%?R%+|v8BfR_9$rDxPNhe+D$2M%)blRpnBA_@!t*o5 z>=6v#bzOz*5tw`?vNPOalFAiOwotLUH9>U>W2^}(e{&pCesngZklh)hkP_2A6BySdQYA_nR?KS6GW|` znxC`bgy1-21=ZP*LUw12rb)1j*wD~`l`B_b=gyr*?VKK#NhptP+O)~GIzpMdckdb# zW$)g-K_y5#vL8Kq)bQB+L?^2~c8?HqaID44+e^-d6tX*GBodk+AY|9XkfMe&0z!6Y zj6^~c1cdCG7*f=5MnK5!jFCuaf`E`+6GMs`&IkzEoiP##O%M>WYhp-I!x;e~yE8^2 zp$P&)c1;W^YB(bxWOv3$Bs4)l$gYVYMGa>JgzU~3iG(Hy2-!6;q^RMHfRNo8BazSq z0W;at($dm;_^h@xK|n_YYHDh@Ic!Z7fbRf|PEJlnMMd$aG(kWw1PTfY(AwHspxE8l z*VmWIcN(P$0y-fuIXQ{w=;%oRNs8=Vuh-kaSI(pf0y-hUZ&Vc)7IpymNs&DUz@M$H zt)Be+e4TU^U0jU7>({RlA0JPz{v&{1bC8|};E%4Zu5Z??S>s}eM0H&d;0|hyjg7wo zFuvAc%}DtT!r$B4+M+ja-mHtxqKC^67#D$r6MpsK5p!i=JWaf0Z;{?S`j@I*?FAbGARM@OG-*gg2&@AwprsoCDH_e z&k2D*AYgp!%J27c!>Dlp{BlDrfI;gxoeJwbzYKr}KqB|$`J5D$u?PYH0suw;_yP0* d_&XFT{{dvQi{-=R!h!$*002ovPDHLkV1g!B{)hko literal 0 HcmV?d00001 diff --git a/img/scene_ui/scene_splash/spalsh_health_tip.png b/img/scene_ui/scene_splash/spalsh_health_tip.png new file mode 100755 index 0000000000000000000000000000000000000000..10d23c3f0cd511ac5f7a3a920e3cf0000dff440e GIT binary patch literal 35545 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 literal 0 HcmV?d00001 diff --git a/img/scene_ui/scene_splash/spalsh_logo.png b/img/scene_ui/scene_splash/spalsh_logo.png new file mode 100755 index 0000000000000000000000000000000000000000..03d9d15eb4fd929f94c57800820f5fcd6fd06fb5 GIT binary patch literal 49549 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 C3F4~& literal 0 HcmV?d00001 diff --git a/img/scene_ui/scene_splash/splash_adapted.png b/img/scene_ui/scene_splash/splash_adapted.png new file mode 100755 index 0000000000000000000000000000000000000000..5e4336fa88d02708a0c9cb1a594054c9c4acecda GIT binary patch literal 25752 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 z +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ÐBf}p&6+cOwL*66vh`7N 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 literal 0 HcmV?d00001 diff --git a/js/plugins.js b/js/plugins.js index 110119c..7c0d59a 100644 --- a/js/plugins.js +++ b/js/plugins.js @@ -3,16 +3,16 @@ var $plugins = [ {"name":"Community_Basic","status":true,"description":"Plugin used to set basic parameters.","parameters":{"cacheLimit":"20","screenWidth":"1024","screenHeight":"560","changeWindowWidthTo":"","changeWindowHeightTo":"","renderingMode":"auto","alwaysDash":"off"}}, -{"name":"MadeWithMv","status":false,"description":"Show a Splash Screen \"Made with MV\" and/or a Custom Splash Screen before going to main screen.","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":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"SF_Core","status":true,"description":"core lib for salted fish plugins","parameters":{}}, {"name":"SF_Objects","status":true,"description":"objects lib for salted fish plugins","parameters":{}}, {"name":"SF_Managers","status":true,"description":"Managers lib for salted fish plugins","parameters":{}}, -{"name":"SF_SkipLoadError","status":true,"description":"try to skip load errors","parameters":{}}, {"name":"SF_Sprites","status":true,"description":"sprite base for salted fish plugins","parameters":{}}, {"name":"SF_Windows","status":true,"description":"window base for salted fish plugins","parameters":{}}, {"name":"SF_Scenes","status":true,"description":"scenes lib for salted fish plugins","parameters":{}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, +{"name":"SF_SkipLoadError","status":true,"description":"try to skip load errors","parameters":{}}, +{"name":"SF_AutoUpdate","status":true,"description":"v1.0.0 - Automatically update the game.","parameters":{}}, {"name":"SF_WindowScrollCommand","status":true,"description":"v1.0 Allows you to scroll text in selected commands.","parameters":{}}, {"name":"SF_InputBindControl","status":true,"description":"v1.0 support add anf remove input event listener","parameters":{}}, {"name":"SF_AutoRevive","status":true,"description":"v1.0.0 - Automatically revive dead party members.","parameters":{}}, @@ -28,14 +28,15 @@ var $plugins = {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"YEP_X_SkillCooldowns","status":true,"description":"v1.11 技能冷却☁️","parameters":{"---冷却时间---":"","Cooldown Format":"%1CD","Cooldown Font Size":"20","Cooldown Text Color":"6","Cooldown Icon":"75","Cooldown After Battle":"-10","Cooldown Steps":"5","Cooldown Bypass":"1 2 3 4 5 6 7","---热身---":"","Warmup Format":"%1WU","Warmup Font Size":"20","Warmup Text Color":"4","Warmup Icon":"75","---战斗核心---":"","Time Based":"false","Turn Time":"100"}}, {"name":"YEP_X_SkillCostItems","status":true,"description":"v1.03 技能消耗物品☁️","parameters":{"---全局---":"","Cost Style":"2","Font Size":"20","Amount Format":"×%1","Amount Y Buffer":"4","---计量表---":"","Gauge Color 1":"13","Gauge Color 2":"5","Display Name":"true","Text Color":"16"}}, +{"name":"YEP_AbsorptionBarrier","status":true,"description":"v1.05 吸收屏障☁️","parameters":{"Barrier State":"0","Barrier Color 1":"13","Barrier Color 2":"5","Barrier Animation":"0","Break Animation":"0","Barrier Popup":"255, 0, 255, 160","Display 0 HP Damage":"false","Clear Per Battle":"true","Clear on Death":"true","Default Penetration Rate":"0","Default Penetration Flat":"0"}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"SF_SkillUpdate","status":true,"description":"v1.0 Allows you to auto Update skills.","parameters":{}}, {"name":"SF_QuestSystem","status":true,"description":"v1.0 Allows you to show quests.","parameters":{"Quest List Window":"","Quest List Window X":"260","Quest List Window Y":"90","Quest List Window Width":"120","Quest List Window Height":"370","Quest List Window Font Size":"18","Quest Detail Window":"","Quest Detail Window X":"380","Quest Detail Window Y":"90","Quest Detail Window Width":"440","Quest Detail Window Height":"370","Quest Detail Window Font Size":"18","Quest Editor":"","Quest Editor Enable":"false","Quest List Info X":"0","Quest List Info Y":"90","Quest List Info Width":"240","Quest List Info Height":"370","Quest List Info Font Size":"18"}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"MOG_ActorHud","status":true,"description":"(v2.0 *) Adiciona uma Hud com os parâmetros do personagem.","parameters":{"-> MAIN <<<<<<<<<<<<<<<<<<<<<<<":"","Initial Visible":"true","Hud X-Axis":"0","Hud Y-Axis":"0","Smart Fade":"true","Auto Fade":"true","":"","-> LAYOUT 2 <<<<<<<<<<<<<<<<<<<<<<<":"","Layout Overlay Visible":"false","Layout Overlay X-Axis":"0","Layout Overlay Y-Axis":"0","-> FACE <<<<<<<<<<<<<<<<<<<<<<<":"","Face Visible":"true","Face X-Axis":"51","Face Y-Axis":"50","Face Priority":"1","-> NAME <<<<<<<<<<<<<<<<<<<<<<<":"","Name Visible":"false","Name X-Axis":"5","Name Y-Axis":"20","Name Font Size":"20","Name Bold Size":"4","Name Font Italic":"false","-> HP <<<<<<<<<<<<<<<<<<<<<<<":"","HP Meter Visible":"true","HP Meter X-Axis":"110","HP Meter Y-Axis":"33","HP Meter Angle":"0","HP Meter Flow Anime":"true","HP Meter Flow Speed":"4","HP Number Visible":"false","HP Number Align":"0","HP Number X-Axis":"270","HP Number Y-Axis":"70","MaxHP Number Visible":"false","MaxHP Number X-Axis":"185","MaxHP Number Y-Axis":"40","HP Icon Visible":"false","HP Icon Half Mode":"false","HP Icon Max Colors":"2","HP Icon Max Rows":"10","HP Icon Max Columns":"2","HP Icon X-Axis":"143","HP Icon Y-Axis":"85","HP Icon Space X":"0","HP Icon Space Y":"0","HP Icon Zoom Anime":"true","-> MP <<<<<<<<<<<<<<<<<<<<<<<":"","MP Meter Visible":"true","MP Meter X-Axis":"110","MP Meter Y-Axis":"48","MP Meter Angle":"0","MP Meter Flow Anime":"true","MP Meter Flow Speed":"4","MP Number Visible":"false","MP Number Align":"0","MP Number X-Axis":"287","MP Number Y-Axis":"100","MaxMP Number Visible":"false","MaxMP Number X-Axis":"196","MaxMP Number Y-Axis":"78","MP Icon Visible":"false","MP Icon Half Mode":"false","MP Icon Max Colors":"2","MP Icon Max Rows":"10","MP Icon Max Columns":"2","MP Icon X-Axis":"143","MP Icon Y-Axis":"120","MP Icon Space X":"0","MP Icon Space Y":"0","MP Icon Zoom Anime":"true","-> TP <<<<<<<<<<<<<<<<<<<<<<<":"","TP Meter Visible":"false","TP Meter X-Axis":"143","TP Meter Y-Axis":"50","TP Meter Angle":"0","TP Meter Flow Anime":"true","TP Meter Flow Speed":"4","TP Number Visible":"false","TP Number Align":"0","TP Number X-Axis":"270","TP Number Y-Axis":"130","MaxTP Number Visible":"false","MaxTP Number X-Axis":"185","MaxTP Number Y-Axis":"116","TP Icon Visible":"false","TP Icon Half Mode":"false","TP Icon Max Colors":"2","TP Icon Max Rows":"10","TP Icon Max Columns":"2","TP Icon X-Axis":"143","TP Icon Y-Axis":"50","TP Icon Space X":"0","TP Icon Space Y":"0","TP Icon Zoom Anime":"true","-> EXP <<<<<<<<<<<<<<<<<<<<<<<":"","EXP Meter Visible":"true","EXP Meter X-Axis":"110","EXP Meter Y-Axis":"63","EXP Meter Angle":"0","Level Number Visible":"false","Level Number Align":"1","Level Number X-Axis":"65","Level Number Y-Axis":"153","-> STATES <<<<<<<<<<<<<<<<<<<<<<<":"","States Visible":"false","States X-Axis":"5","States Y-Axis":"64"}}, -{"name":"MOG_ATB","status":true,"description":"(v0.3 *) Sistema de batalha em tempo real.","parameters":{"ATB Mode":"0","ATB Max Value":"4000","Turn Duration":"480","States Duration":"180","Escape Duration":"180","Skip Emerge Message":"true","Full SE":"audio/se/Book1","Change Actor Left":"pagedown","Change Actor Right":"pageup","Escape Button":"cancel","Escape Layout X":"600","Escape Layout Y":"64","Escape Gauge X":"6","Escape Gauge Y":"16"}}, -{"name":"MOG_ATB_Gauge","status":true,"description":"(v1.0) Apresenta a Hud de ATB para MOG_ATB.","parameters":{"Hud Angle":"0","Hud X-Axis":"740","Hud Y-Axis":"45","Enemy X-Axis Offset":"16","Actor X-Axis Offset":"-16","Active X-Axis":"-3","Active Y-Axis":"30","Gauge Size":"160","Skill Visible":"true","Skill Zoom":"0.6","Skill X-Axis":"0","Skill Y-Axis":"0"}}, -{"name":"MOG_BattleHud","status":true,"description":"(v5.04 *) Permite customizar o layout de batalha.","parameters":{"-> MAIN <<<<<<<<<<<<<<<<<<<<<<<":"","Hud X-Axis":"-90","Hud Y-Axis":"500","Hud Space X":"0","Hud Space Y":"0","Hud Slide X":"0","Hud Slide Y":"0","Vertical Mode":"false","Max Battle Members":"6","":"","-> LAYOUT OVERLAY <<<<<<<<<<<<<<<<<<<<<<<":"","Layout2 Visible":"true","Layout2 X-Axis":"0","Layout2 Y-Axis":"0","-> TURN <<<<<<<<<<<<<<<<<<<<<<<":"","Turn Visible":"true","Turn X-Axis":"-5","Turn Y-Axis":"-5","Turn Rotation Speed":"0","Turn Zoom Animation":"false","-> FACE <<<<<<<<<<<<<<<<<<<<<<<":"","Face Visible":"true","Face X-Axis":"70","Face Y-Axis":"29","Face Shake Animation":"true","Face Zoom Animation":"true","Face Frame Animation":"false","Face Priority":"1","-> NAME <<<<<<<<<<<<<<<<<<<<<<<":"","Name Visible":"false","Name X-Axis":"0","Name Y-Axis":"0","Name Align":"0","Name Font Size":"20","Name Bold Size":"4","Name Font Italic":"false","-> HP <<<<<<<<<<<<<<<<<<<<<<<":"","HP Meter Visible":"true","HP Meter X-Axis":"124","HP Meter Y-Axis":"13","HP Meter Angle":"0","HP Meter Flow Anime":"false","HP Number Visible":"true","HP Number Align type":"0","HP Number X-Axis":"220","HP Number Y-Axis":"0","MaxHP Number Visible":"false","MaxHP Number X-Axis":"0","MaxHP Number Y-Axis":"0","-> MP <<<<<<<<<<<<<<<<<<<<<<<":"","MP Meter Visible":"true","MP Meter X-Axis":"124","MP Meter Y-Axis":"32","MP Meter Angle":"0","MP Meter Flow Anime":"false","MP Number Visible":"true","MP Number Align type":"0","MP Number X-Axis":"220","MP Number Y-Axis":"19","MaxMP Number Visible":"false","MaxMP Number X-Axis":"0","MaxMP Number Y-Axis":"0","-> TP <<<<<<<<<<<<<<<<<<<<<<<":"","TP Meter Visible":"true","TP Meter X-Axis":"124","TP Meter Y-Axis":"51","TP Meter Angle":"0","TP Meter Flow Anime":"false","TP Number Visible":"true","TP Number Align type":"0","TP Number X-Axis":"220","TP Number Y-Axis":"38","MaxTP Number Visible":"false","MaxTP Number X-Axis":"0","MaxTP Number Y-Axis":"0","-> ATB <<<<<<<<<<<<<<<<<<<<<<<":"","ATB Meter Visible":"true","ATB Meter X-Axis":"0","ATB Meter Y-Axis":"61","ATB Meter Angle":"0","ATB Meter Flow Anime":"false","-> STATES <<<<<<<<<<<<<<<<<<<<<<<":"","States Visible":"true","States X-Axis":"3","States Y-Axis":"24","States Mode":"0","States Max":"4","States Align":"0","-> W COMMAND <<<<<<<<<<<<<<<<<<<<<<<":"","Command Auto Adjust":"1","W Command X-Axis":"20","W Command Y-Axis":"270","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":"325","W Party Y-Axis":"170","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":"816","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":"816","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":"816","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":"816","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":"816","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":"25,465","Custom Position 2":"290,465","Custom Position 3":"555,465","Custom Position 4":"25,545","Custom Position 5":"290,545","Custom Position 6":"555,545","Custom Position 7":"","Custom Position 8":""}}, +{"name":"MOG_ATB","status":false,"description":"(v0.3 *) Sistema de batalha em tempo real.","parameters":{"ATB Mode":"0","ATB Max Value":"4000","Turn Duration":"480","States Duration":"180","Escape Duration":"180","Skip Emerge Message":"true","Full SE":"audio/se/Book1","Change Actor Left":"pagedown","Change Actor Right":"pageup","Escape Button":"cancel","Escape Layout X":"600","Escape Layout Y":"64","Escape Gauge X":"6","Escape Gauge Y":"16"}}, +{"name":"MOG_ATB_Gauge","status":false,"description":"(v1.0) Apresenta a Hud de ATB para MOG_ATB.","parameters":{"Hud Angle":"0","Hud X-Axis":"740","Hud Y-Axis":"45","Enemy X-Axis Offset":"16","Actor X-Axis Offset":"-16","Active X-Axis":"-3","Active Y-Axis":"30","Gauge Size":"160","Skill Visible":"true","Skill Zoom":"0.6","Skill X-Axis":"0","Skill Y-Axis":"0"}}, +{"name":"MOG_BattleHud","status":false,"description":"(v5.04 *) Permite customizar o layout de batalha.","parameters":{"-> MAIN <<<<<<<<<<<<<<<<<<<<<<<":"","Hud X-Axis":"-90","Hud Y-Axis":"500","Hud Space X":"0","Hud Space Y":"0","Hud Slide X":"0","Hud Slide Y":"0","Vertical Mode":"false","Max Battle Members":"6","":"","-> LAYOUT OVERLAY <<<<<<<<<<<<<<<<<<<<<<<":"","Layout2 Visible":"true","Layout2 X-Axis":"0","Layout2 Y-Axis":"0","-> TURN <<<<<<<<<<<<<<<<<<<<<<<":"","Turn Visible":"true","Turn X-Axis":"-5","Turn Y-Axis":"-5","Turn Rotation Speed":"0","Turn Zoom Animation":"false","-> FACE <<<<<<<<<<<<<<<<<<<<<<<":"","Face Visible":"true","Face X-Axis":"70","Face Y-Axis":"29","Face Shake Animation":"true","Face Zoom Animation":"true","Face Frame Animation":"false","Face Priority":"1","-> NAME <<<<<<<<<<<<<<<<<<<<<<<":"","Name Visible":"false","Name X-Axis":"0","Name Y-Axis":"0","Name Align":"0","Name Font Size":"20","Name Bold Size":"4","Name Font Italic":"false","-> HP <<<<<<<<<<<<<<<<<<<<<<<":"","HP Meter Visible":"true","HP Meter X-Axis":"124","HP Meter Y-Axis":"13","HP Meter Angle":"0","HP Meter Flow Anime":"false","HP Number Visible":"true","HP Number Align type":"0","HP Number X-Axis":"220","HP Number Y-Axis":"0","MaxHP Number Visible":"false","MaxHP Number X-Axis":"0","MaxHP Number Y-Axis":"0","-> MP <<<<<<<<<<<<<<<<<<<<<<<":"","MP Meter Visible":"true","MP Meter X-Axis":"124","MP Meter Y-Axis":"32","MP Meter Angle":"0","MP Meter Flow Anime":"false","MP Number Visible":"true","MP Number Align type":"0","MP Number X-Axis":"220","MP Number Y-Axis":"19","MaxMP Number Visible":"false","MaxMP Number X-Axis":"0","MaxMP Number Y-Axis":"0","-> TP <<<<<<<<<<<<<<<<<<<<<<<":"","TP Meter Visible":"true","TP Meter X-Axis":"124","TP Meter Y-Axis":"51","TP Meter Angle":"0","TP Meter Flow Anime":"false","TP Number Visible":"true","TP Number Align type":"0","TP Number X-Axis":"220","TP Number Y-Axis":"38","MaxTP Number Visible":"false","MaxTP Number X-Axis":"0","MaxTP Number Y-Axis":"0","-> ATB <<<<<<<<<<<<<<<<<<<<<<<":"","ATB Meter Visible":"true","ATB Meter X-Axis":"0","ATB Meter Y-Axis":"61","ATB Meter Angle":"0","ATB Meter Flow Anime":"false","-> STATES <<<<<<<<<<<<<<<<<<<<<<<":"","States Visible":"true","States X-Axis":"3","States Y-Axis":"24","States Mode":"0","States Max":"4","States Align":"0","-> W COMMAND <<<<<<<<<<<<<<<<<<<<<<<":"","Command Auto Adjust":"1","W Command X-Axis":"20","W Command Y-Axis":"270","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":"325","W Party Y-Axis":"170","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":"816","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":"816","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":"816","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":"816","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":"816","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":"25,465","Custom Position 2":"290,465","Custom Position 3":"555,465","Custom Position 4":"25,545","Custom Position 5":"290,545","Custom Position 6":"555,545","Custom Position 7":"","Custom Position 8":""}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"XdRs_MiniMap","status":true,"description":"实景小地图 。","parameters":{"key":"77","width":"Graphics.width / 6","height":"Graphics.height / 6","miniSize":"24","dpFollower":"Y","dpHide":"Y","dpDc1":"Y","dpDc2":"Y","dpMapName":"Y","dpPlace":"Y","dpScale":"Y","color1":"200,0,200","color2":"0,200,0","color3":"0,255,200","icon1":"320","icon2":"320","icon3":"65","icon4":"324","icon5":"117","icon6":"32","icon7":"48"}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, @@ -43,7 +44,8 @@ var $plugins = {"name":"SF_MapNameWindow","status":true,"description":"v1.0 Adds a window to the map screen that displays the name of the map.","parameters":{"Map Name Window":"","Map Name Window X":"Math.round(Graphics.boxWidth*5/6)-110","Map Name Window Y":"0","Map Name Window Width":"100","Map Name Window Height":"36","Map Name Window Font Size":"12"}}, {"name":"--------------------","status":true,"description":"------------------------------------------------------------","parameters":{}}, {"name":"SF_SceneTitle","status":true,"description":"Scene Title","parameters":{}}, -{"name":"SF_SceneMenu","status":true,"description":"Scene Menu","parameters":{}}, +{"name":"SF_SceneMenu","status":false,"description":"Scene Menu","parameters":{}}, {"name":"SF_SceneActorSelect","status":true,"description":"v1.0.0 Allows you to select an actor from the scene.","parameters":{}}, +{"name":"SF_SceneSplash","status":true,"description":"v1.0.0 - Scene Splash","parameters":{}}, {"name":"SF_TestPlugins","status":true,"description":"","parameters":{}} ]; diff --git a/js/plugins/SF_AutoUpdate.js b/js/plugins/SF_AutoUpdate.js new file mode 100644 index 0000000..b02e20b --- /dev/null +++ b/js/plugins/SF_AutoUpdate.js @@ -0,0 +1,408 @@ +//============================================================================= +// Salted Fish Plugins - Auto Update +// SF_AutoUpdate.js +//============================================================================= + +"use strict"; +var Imported = Imported || {}; +Imported.SF_AutoUpdate = true; + +var SF_Plugins = SF_Plugins || {}; + +//============================================================================= +/*: + * @plugindesc v1.0.0 - Automatically update the game. + * @author Salted Fish + * + * @help + * + * =========================================================================== + * Introduction + * =========================================================================== + * + * This plugin automatically updates the game. + * + * =========================================================================== + * Requires + * =========================================================================== + * + * You need use ycrpg2-android-client to run on android. + * otherwise, you can use ycrpg2-pc-client to run on pc. + * This is not supported on ios and web, but web also use the newest version. + * + * =========================================================================== + * How to use + * =========================================================================== + * + * ycrpg2-android-client provide FileUtils and UpdateUtils. + * FileUtils is used to read and write Text files, and UpdateUtils is used to + * update the game. + * + * FileUtils provide the following functions: + * public void evaluateJavascript(String script) + * public boolean canExecute(String fileName) + * public boolean canRead(String fileName) + * public boolean canWrite(String fileName) + * public boolean createNewFile(String fileName) + * public boolean delete(String fileName) + * public boolean exists(String fileName) + * public String getAbsolutePath(String fileName) + * public String getCanonicalPath(String fileName) + * public String getName(String fileName) + * public String getParent(String fileName) + * public String getPath(String fileName) + * public boolean isAbsolute(String fileName) + * public boolean isDirectory(String fileName) + * public boolean isFile(String fileName) + * public long lastModified(String fileName) + * public long length(String fileName) + * public String list(String fileName) + * public boolean mkdir(String fileName) + * public boolean mkdirs(String fileName) + * public boolean renameTo(String srcName, String dstName) + * public String toString(String fileName) + * public String readTextFile(String fileName) + * public boolean writeTextFile(String fileName,String content) + * public String getFileHashHex(String fileName, String algorithm) + * public String getFileHashHex(String fileName) + * + * UpdateUtils provide the following functions: + * public void evaluateJavascript(String script) + * public void downloadFullUrl(String fileName, String urlString, String success, String fail) + * public void downloadRelativeUrl(String fileName, String urlString, String success, String fail) + * public void updateFileCompleted(boolean bool) + * public String getHashInfoJson() + * public void updateFile(String fileName, String success, String fail) + */ +//============================================================================= + +(function () { + var SF_AutoUpdate = {}; + SF_Plugins.SF_AutoUpdate = SF_AutoUpdate; + + SF_AutoUpdate.version = 1.0; + + SF_AutoUpdate.remoteFileInfoName = "file_info_remote.json"; + SF_AutoUpdate.localFileInfoName = "file_info_local.json"; + SF_AutoUpdate.remoteFileInfoUrl = "https://ycrpg.xyzzgame.com/ycrpg2/file_info_remote.json"; + SF_AutoUpdate.remoteUrlRoot = "https://ycrpg.xyzzgame.com/YCrpg2/"; + SF_AutoUpdate.emptyFileInfoStr = `{"is_file":false,"is_dir":"true","files":[],"dirs":[],"sha_512":""}`; + + SF_AutoUpdate.enableAutoUpdate = false; + + SF_AutoUpdate.isAndroid = function () { + return !!window.FileUtils && !!window.UpdateUtils && !SF_AutoUpdate.isPC(); + } + + SF_AutoUpdate.isPC = function () { + return !!Utils.isNwjs(); + } + + SF_AutoUpdate.isWeb = function () { + return !SF_AutoUpdate.isPC() && !SF_AutoUpdate.isAndroid(); + } + + SF_AutoUpdate.isSupported = function () { + return SF_AutoUpdate.enableAutoUpdate && (SF_AutoUpdate.isAndroid() || SF_AutoUpdate.isPC()); + } + + if (!SF_AutoUpdate.isSupported()) { return; } + + SF_AutoUpdate.FileUtils = window.FileUtils || {}; + SF_AutoUpdate.UpdateUtils = window.UpdateUtils || {}; + + if (SF_AutoUpdate.isPC()) { + window.FileUtils = SF_AutoUpdate.FileUtils; + window.UpdateUtils = SF_AutoUpdate.UpdateUtils; + + var fs = require('fs'); + var path = require('path'); + var os = require('os'); + var crypto = require('crypto'); + var http = require('http'); + + SF_AutoUpdate.FileUtils.evaluateJavascript = function (script) { + (new Function(script)).call(window); + } + + SF_AutoUpdate.FileUtils.canExecute = function (fileName) { + try { + fs.accessSync(fileName, fs.X_OK); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.canRead = function (fileName) { + try { + fs.accessSync(fileName, fs.R_OK); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.canWrite = function (fileName) { + try { + fs.accessSync(fileName, fs.W_OK); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.createNewFile = function (fileName) { + try { + fs.writeFileSync(fileName, ""); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.delete = function (fileName) { + try { + fs.unlinkSync(fileName); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.exists = function (fileName) { + try { + fs.accessSync(fileName, fs.F_OK); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.getAbsolutePath = function (fileName) { + return path.resolve(fileName); + } + + SF_AutoUpdate.FileUtils.getCanonicalPath = function (fileName) { + return path.resolve(fileName); + } + + SF_AutoUpdate.FileUtils.getName = function (fileName) { + return path.basename(fileName); + } + + SF_AutoUpdate.FileUtils.getParent = function (fileName) { + return path.dirname(fileName); + } + + SF_AutoUpdate.FileUtils.getPath = function (fileName) { + return path.resolve(fileName); + } + + SF_AutoUpdate.FileUtils.isAbsolute = function (fileName) { + return path.isAbsolute(fileName); + } + + SF_AutoUpdate.FileUtils.isDirectory = function (fileName) { + return fs.statSync(fileName).isDirectory(); + } + + SF_AutoUpdate.FileUtils.isFile = function (fileName) { + return fs.statSync(fileName).isFile(); + } + + SF_AutoUpdate.FileUtils.lastModified = function (fileName) { + return fs.statSync(fileName).mtime.getTime(); + } + + SF_AutoUpdate.FileUtils.length = function (fileName) { + return fs.statSync(fileName).size; + } + + SF_AutoUpdate.FileUtils.mkdir = function (fileName) { + try { + fs.mkdirSync(fileName); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.mkdirs = function (fileName) { + try { + fs.mkdirSync(fileName, { recursive: true }); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.reanmeTo = function (srcName, dstName) { + try { + fs.renameSync(oldFileName, newFileName); + return true; + } catch (e) { + return false; + } + } + + SF_AutoUpdate.FileUtils.toString = function (fileName) { + return path.resolve(fileName); + } + + SF_AutoUpdate.FileUtils.readTextFile = function (fileName) { + return fs.readFileSync(fileName, 'utf-8'); + } + + SF_AutoUpdate.FileUtils.writeTextFile = function (fileName, text) { + return fs.writeFileSync(fileName, text, 'utf-8'); + } + + SF_AutoUpdate.FileUtils.getFileHashHex = function (fileName, algorithm) { + var hash = crypto.createHash(algorithm || 'SHA512'); + var data = fs.readFileSync(fileName); + hash.update(data); + return hash.digest('hex'); + } + + SF_AutoUpdate.UpdateUtils.evaluateJavascript = function (script) { + (new Function(script)).call(window); + } + + SF_AutoUpdate.UpdateUtils.downloadFullUrl = function (fileName, url, success, fail) { + var file = fs.createWriteStream(fileName); + http.get(url, function (response) { + response.pipe(file); + file.on('finish', function () { + file.close(SF_AutoUpdate.UpdateUtils.evaluateJavascript.bind(SF_AutoUpdate.UpdateUtils, success)); + }); + }).on('error', function (err) { + SF_AutoUpdate.UpdateUtils.evaluateJavascript.bind(SF_AutoUpdate.UpdateUtils, fail)(err.message); + }); + } + + SF_AutoUpdate.UpdateUtils.downloadRelativeUrl = function (fileName, url, success, fail) { + SF_AutoUpdate.UpdateUtils.downloadFullUrl(fileName, SF_AutoUpdate.remoteUrlRoot + url, success, fail); + } + + SF_AutoUpdate.UpdateUtils.updateFileCompleted = function (result) { + // todo + } + + SF_AutoUpdate.UpdateUtils.getHashInfoJson = function () { + try { + return fs.readFileSync(SF_AutoUpdate.localFileInfoName) || SF_AutoUpdate.emptyFileInfoStr; + } catch (e) { + return SF_AutoUpdate.emptyFileInfoStr; + } + } + + SF_AutoUpdate.UpdateUtils.updateFile = function (fileName, success, fail) { + SF_AutoUpdate.UpdateUtils.downloadRelativeUrl(fileName, fileName, success, fail); + } + } + + //============================================================================= + // Scene_AutoUpdate + //============================================================================= + + function Scene_AutoUpdate() { + this.initialize.apply(this, arguments); + } + window.Scene_AutoUpdate = Scene_AutoUpdate; + SF_AutoUpdate.Scene_AutoUpdate = Scene_AutoUpdate; + + Scene_AutoUpdate.prototype = Object.create(Scene_Base.prototype); + Scene_AutoUpdate.prototype.constructor = Scene_AutoUpdate; + + Scene_AutoUpdate.prototype.initialize = function () { + Scene_Base.prototype.initialize.call(this); + this._localFileInfo = JsonEx.parse(UpdateUtils.readTextFile(SF_AutoUpdate.localFileInfoName)); + this._remoteFileInfo = {}; + this._updateFileList = []; + this._updateFileIndex = 0; + this._updateFileCount = 0; + this._updateFileName = ""; + + this._status = "completed"; // "working", "completed" + this._job = ""; // "fetch remote file info", "compare file info", "update file" + this._nextJob = "fetched remote file info"; + }; + + Scene_AutoUpdate.prototype.create = function () { + Scene_Base.prototype.create.call(this); + } + + Scene_AutoUpdate.prototype.start = function () { + Scene_Base.prototype.start.call(this); + } + + Scene_AutoUpdate.prototype.update = function () { + Scene_Base.prototype.update.call(this); + this.updateJob(); + this.updateLoading(); + } + + Scene_AutoUpdate.prototype.updateLoading = function () { + console.log(this._job, this._status); + } + + Scene_AutoUpdate.prototype.updateJob = function () { + if (this._status === "working") { return; } + if (this._nextJob === "") { + SceneManager.pop(); + } + this._job = this._nextJob; + this._status = "working"; + switch (this._job) { + case "fetched remote file info": + this.fetchRemoteFileInfo(); + this._nextJob = "compare file info"; + break; + case "compare file info": + this.compareFileInfo(); + this._nextJob = "update file"; + break; + case "update file": + this.updateFile(); + this._nextJob = ""; + break; + } + } + + Scene_AutoUpdate.prototype.fetchRemoteFileInfo = function () { + var success = (function () { + this._remoteFileInfo = JsonEx.parse(UpdateUtils.readTextFile(SF_AutoUpdate.remoteFileInfoName)); + this._status = "completed"; + this._nextJob = "compare file info"; + }).bind(this); + + var fail = (function () { + this._status = "completed"; + this._nextJob = ""; + }).bind(this); + + UpdateUtils.downloadRelativeUrl( + SF_AutoUpdate.remoteFileInfoName, + SF_AutoUpdate.remoteFileInfoName, + CallBack.registerOneTime(success), + CallBack.registerOneTime(fail) + ); + } + + Scene_AutoUpdate.prototype.compareFileInfo = function () { + + } + //============================================================================= + // SceneManager + //============================================================================= + + SF_AutoUpdate.SceneManager_initialize = SceneManager.initialize; + SceneManager.initialize = function () { + SF_AutoUpdate.SceneManager_initialize.call(this); + this.addSceneBefore(Scene_AutoUpdate, Scene_Title); + } + + + +})(); \ No newline at end of file diff --git a/js/plugins/SF_CompareFileInfoWorker.js b/js/plugins/SF_CompareFileInfoWorker.js new file mode 100644 index 0000000..9a2bd2b --- /dev/null +++ b/js/plugins/SF_CompareFileInfoWorker.js @@ -0,0 +1,24 @@ +onmessage = function (e) { + var local_file_info = e.data[0]; + var remote_file_info = e.data[1]; + + local_file_info.is_dir = local_file_info.is_dir || false; + remote_file_info.is_dir = remote_file_info.is_dir || false; +} + +function compare_file_info(local_file_info, remote_file_info) { +} + +function compare_file_file(local_file_info, remote_file_info) { + console.assert(local_file_info.is_file === remote_file_info.is_file); + +} + +function generate_delete_file_list(file_info) { + var delete_file_list = []; + if (file_info.is_dir) { + for (var i = 0; i < file_info.children.length; i++) { + delete_file_list = delete_file_list.concat(generate_delete_file_list(file_info.children[i])); + } + } +} \ No newline at end of file diff --git a/js/plugins/SF_Core.js b/js/plugins/SF_Core.js index 3ba53be..6dbdff5 100644 --- a/js/plugins/SF_Core.js +++ b/js/plugins/SF_Core.js @@ -379,4 +379,53 @@ var SF_Plugins = SF_Plugins || {}; } throw new Error(message); }; + + //============================================================================= + // CallBack Scope Transport + //============================================================================= + + function CallBack() { + throw new Exception("this is static method"); + } + window.CallBack = CallBack; + + CallBack.initialize = function () { + this.clear(); + } + + // Return closureIndex + CallBack.getNew = function () { + var closureIndex = this._closureIndex++; + return closureIndex; + } + + CallBack.setByClosureIndex = function (closureIndex, closureFunction) { + this._closureFunction[closureIndex] = closureFunction; + } + + CallBack.unregister = function (closureIndex) { + delete this._closureFunction[closureIndex]; + } + + CallBack.callByClosureIndex = function (closureIndex) { + if (this._closureFunction[closureIndex]) { + this._closureFunction[closureIndex](); + } + } + + CallBack.convertToString = function (closureIndex) { + return "CallBack.callByClosureIndex(" + closureIndex + ")"; + } + + CallBack.clear = function () { + this._closureFunction = {}; + this._closureIndex = 0; + } + + CallBack.registerOneTime = function (closureFunction) { + var closureIndex = this.getNew(); + this.setByClosureIndex(closureIndex, (function () { closureFunction(); this.unregister(closureIndex); }).bind(this)); + return this.convertToString(closureIndex); + } + })(); \ No newline at end of file diff --git a/js/plugins/SF_Managers.js b/js/plugins/SF_Managers.js index fec4dc9..eca2584 100644 --- a/js/plugins/SF_Managers.js +++ b/js/plugins/SF_Managers.js @@ -40,4 +40,51 @@ var SF_Plugins = SF_Plugins || {}; return this.loadBitmap('img/scene_ui/scene_menu/', filename, 0, true); }; + ImageManager.loadSceneSplash = function (filename) { + return this.loadBitmap('img/scene_ui/scene_splash/', filename, 0, true); + } + + //============================================================================= + // SceneManager + //============================================================================= + + SceneManager._sceneBeforeClasses = {}; + + SF_Managers.SceneManager_initialize = SceneManager.initialize; + SceneManager.initialize = function () { + SF_Managers.SceneManager_initialize.call(this); + this._sceneBeforeClasses = {}; + this.initCallBack(); + }; + + SF_Managers.SceneManager_goto = SceneManager.goto; + SceneManager.goto = function (sceneClass) { + if (this._sceneBeforeClasses[sceneClass]) { + var beforeSceneList = this._sceneBeforeClasses[sceneClass]; + var index = beforeSceneList.indexOf(this._scene.constructor); + if (index == -1) { // if the scene is not in the array + this._stack.push(sceneClass); + SF_Managers.SceneManager_goto.call(this, beforeSceneList[0]); + } else if (index == beforeSceneList.length - 1) { + SF_Managers.SceneManager_goto.call(this, sceneClass); + } else { + SF_Managers.SceneManager_goto.call(this, beforeSceneList[index + 1]); + } + } else { + SF_Managers.SceneManager_goto.call(this, sceneClass); + } + } + + SceneManager.addSceneBefore = function (beforeSceneClass, sceneClass) { + if (this._sceneBeforeClasses[sceneClass]) { + this._sceneBeforeClasses[sceneClass].push(beforeSceneClass); + } else { + this._sceneBeforeClasses[sceneClass] = [beforeSceneClass]; + } + } + + SceneManager.initCallBack = function () { + CallBack.initialize(); + } + })(); \ No newline at end of file diff --git a/js/plugins/SF_SceneMenu.js b/js/plugins/SF_SceneMenu.js index 80fda4e..bf2d268 100644 --- a/js/plugins/SF_SceneMenu.js +++ b/js/plugins/SF_SceneMenu.js @@ -84,6 +84,7 @@ var SF_Plugins = SF_Plugins || {}; 'help': [814, 33], 'cancel': [678, 463], 'database': [438, 348], + 'skill': [438, 94] }; } @@ -146,7 +147,7 @@ var SF_Plugins = SF_Plugins || {}; this.pivot.y = Graphics.boxHeight / 2; this.x = Graphics.boxWidth / 2; this.y = Graphics.boxHeight / 2; - this.rotation = -0.03; + // this.rotation = -0.03; } Scene_Menu.prototype.update = function () { @@ -195,5 +196,8 @@ var SF_Plugins = SF_Plugins || {}; SceneManager.push(Scene_Database); } + Scene_Menu.prototype.on_skill_button = function () { + SceneManager.push(Scene_Skill); + } })(); \ No newline at end of file diff --git a/js/plugins/SF_SceneSkill.js b/js/plugins/SF_SceneSkill.js new file mode 100644 index 0000000..b2da680 --- /dev/null +++ b/js/plugins/SF_SceneSkill.js @@ -0,0 +1,60 @@ +//============================================================================= +// Salted Fish Plugins - Scene SKill +// SF_SceneSkill.js +//============================================================================= + +"use strict"; +var Imported = Imported || {}; +Imported.SF_SceneSkill = true; + +var SF_Plugins = SF_Plugins || {}; + +//============================================================================= +/*: + * @plugindesc v1.0.0 - Scene Skill + * @author Salted Fish + * + * + * @help + * + * =========================================================================== + * Introduction + * =========================================================================== + * + * This plugin is used to show the skill list. + * Any config just change the file. + * + */ +//============================================================================= + +(function () { + var SF_SceneSkill = {}; + SF_Plugins.SF_SceneSkill = SF_SceneSkill; + + SF_SceneSkill.version = 1.0; + + //============================================================================= + // Window_UserSelect + //============================================================================= + + function Window_UserSelect() { + this.initialize.apply(this, arguments); + } + + SF_SceneSkill.Window_UserSelect = Window_UserSelect; + window.Window_UserSelect = Window_UserSelect; + + Window_UserSelect.prototype = Object.create(Window_PagingBase.prototype); + Window_UserSelect.prototype.constructor = Window_UserSelect; + + Window_UserSelect.prototype.initialize = function () { + Window_PagingBase.prototype.initialize.apply(this, arguments); + this.refresh(); + } + + //============================================================================= + // Scene_Skill + //============================================================================= + + +})(); \ No newline at end of file diff --git a/js/plugins/SF_SceneSplash.js b/js/plugins/SF_SceneSplash.js new file mode 100644 index 0000000..45b226b --- /dev/null +++ b/js/plugins/SF_SceneSplash.js @@ -0,0 +1,250 @@ +//============================================================================= +// Salted Fish Plugins - Scene Splash +// SF_SceneSplash.js +//============================================================================= + +"use strict"; +var Imported = Imported || {}; +Imported.SF_SceneSplash = true; + +var SF_Plugins = SF_Plugins || {}; + +//============================================================================= +/*: + * @plugindesc v1.0.0 - Scene Splash + * @author Salted Fish + * + * @help + * + * =========================================================================== + * Introduction + * =========================================================================== + * + * This plugin adds a splash scene after Scene_Boot. + */ +//============================================================================= + +(function () { + var SF_SceneSplash = {}; + SF_Plugins.SF_SceneSplash = SF_SceneSplash; + + SF_SceneSplash.version = 1.0; + + SF_SceneSplash.FADE_IN_FRAMES = 60; // Number of frames for the fade in effect. + SF_SceneSplash.FADE_OUT_FRAMES = 60;// Number of frames for the fade out effect. + SF_SceneSplash.SHOW_TIME = 150;// Number of frames for the splash to be shown. + + //============================================================================= + // Sprite_SplashBase + //============================================================================= + + function Sprite_SplashBase() { + this.initialize.apply(this, arguments); + } + + Sprite_SplashBase.prototype = Object.create(Sprite.prototype); + Sprite_SplashBase.prototype.constructor = Sprite_SplashBase; + + Sprite_SplashBase.prototype.initialize = function (index) { + Sprite.prototype.initialize.call(this); + this.state = "fadeIn";// "fadeIn", "show", "fadeOut" + this.FADE_IN_FRAMES = SF_SceneSplash.FADE_IN_FRAMES; + this.FADE_OUT_FRAMES = SF_SceneSplash.FADE_OUT_FRAMES; + this.SHOW_TIME = SF_SceneSplash.SHOW_TIME; + this.index = index; + this.showTime = 0; + this.opacity = 0; + } + + Sprite_SplashBase.prototype.update = function () { + Sprite.prototype.update.call(this); + + if (TouchInput.isTriggered()) { + this.state = "fadeOut"; + } + + if (this.state === "fadeIn") { + this.updateFadeIn(); + } else if (this.state === "show") { + this.updateShow(); + } else if (this.state === "fadeOut") { + this.updateFadeOut(); + } + } + + Sprite_SplashBase.prototype.updateFadeIn = function () { + this.opacity += 255 / this.FADE_IN_FRAMES; + if (this.opacity >= 255) { + this.opacity = 255; + this.state = "show"; + } + } + + Sprite_SplashBase.prototype.updateShow = function () { + this.opacity = 255; + this.updateShowTime(); + } + + Sprite_SplashBase.prototype.updateShowTime = function () { + this.showTime++; + if (this.showTime >= this.SHOW_TIME) { + this.state = "fadeOut"; + } + } + + Sprite_SplashBase.prototype.updateFadeOut = function () { + this.opacity -= 255 / this.FADE_OUT_FRAMES; + if (this.opacity <= 0) { + this.opacity = 0; + this.state = "fadeIn"; + this.showTime = 0; + + if (this.index + 1 < SF_SceneSplash.SpriteClassList.length) { + var spriteClass = SF_SceneSplash.SpriteClassList[this.index + 1]; + var sprite = new spriteClass(this.index + 1); + this.parent.addChild(sprite); + } else { + SceneManager.pop(); + } + + this.parent.removeChild(this); + } + } + + Sprite_SplashBase.prototype.centerSelf = function () { + this.anchor.x = 0.5; + this.anchor.y = 0.5; + this.x = Graphics.width / 2; + this.y = Graphics.height / 2; + } + + //============================================================================= + // Sprite_SplashLogo + //============================================================================= + + function Sprite_SplashLogo() { + this.initialize.apply(this, arguments); + } + + Sprite_SplashLogo.prototype = Object.create(Sprite_SplashBase.prototype); + Sprite_SplashLogo.prototype.constructor = Sprite_SplashLogo; + + Sprite_SplashLogo.prototype.initialize = function (index) { + Sprite_SplashBase.prototype.initialize.call(this, index); + this.bitmap = ImageManager.loadSceneSplash("spalsh_logo"); + this.centerSelf(); + } + + //============================================================================= + // Sprite_SplashHealthTip + //============================================================================= + + function Sprite_SplashHealthTip() { + this.initialize.apply(this, arguments); + } + + Sprite_SplashHealthTip.prototype = Object.create(Sprite_SplashBase.prototype); + Sprite_SplashHealthTip.prototype.constructor = Sprite_SplashHealthTip; + + Sprite_SplashHealthTip.prototype.initialize = function (index) { + Sprite_SplashBase.prototype.initialize.call(this, index); + this.bitmap = ImageManager.loadSceneSplash("spalsh_health_tip"); + this.centerSelf(); + } + + //============================================================================= + // Sprite_SplashAdapted + //============================================================================= + + function Sprite_SplashAdapted() { + this.initialize.apply(this, arguments); + } + + Sprite_SplashAdapted.prototype = Object.create(Sprite_SplashBase.prototype); + Sprite_SplashAdapted.prototype.constructor = Sprite_SplashAdapted; + + Sprite_SplashAdapted.prototype.initialize = function (index) { + Sprite_SplashBase.prototype.initialize.call(this, index); + this.bitmap = ImageManager.loadSceneSplash("splash_adapted"); + this.centerSelf(); + } + + //============================================================================= + // Sprite_SplashEnd + //============================================================================= + + function Sprite_SplashEnd() { + this.initialize.apply(this, arguments); + } + + Sprite_SplashEnd.prototype = Object.create(Sprite_SplashBase.prototype); + Sprite_SplashEnd.prototype.constructor = Sprite_SplashEnd; + + Sprite_SplashEnd.prototype.initialize = function (index) { + Sprite_SplashBase.prototype.initialize.call(this, index); + SceneManager.pop(); + } + + //============================================================================= + // Sprite Class for Scene Splash + //============================================================================= + + SF_SceneSplash.SpriteClassList = [ + Sprite_SplashLogo, Sprite_SplashHealthTip, Sprite_SplashAdapted, Sprite_SplashEnd + ]; + + //============================================================================= + // Scene_Splash + //============================================================================= + + function Scene_Splash() { + this.initialize.apply(this, arguments); + } + window.Scene_Splash = Scene_Splash; + SF_SceneSplash.Scene_Splash = Scene_Splash; + + 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); + } + + Scene_Splash.prototype.create = function () { + Scene_Base.prototype.create.call(this); + this.createBackground(); + this.createSplash(); + } + + Scene_Splash.prototype.createBackground = function () { + var bitmap = new Bitmap(Graphics.width, Graphics.height); + bitmap.fillAll("white"); + this._backgroundSprite = new Sprite(bitmap); + this.addChild(this._backgroundSprite); + } + + Scene_Splash.prototype.createSplash = function () { + var spriteClass = SF_SceneSplash.SpriteClassList[0]; + var sprite = new spriteClass(0); + this.addChild(sprite); + } + + Scene_Splash.prototype.start = function () { + Scene_Base.prototype.start.call(this); + } + + Scene_Splash.prototype.update = function () { + Scene_Base.prototype.update.call(this); + } + + //============================================================================= + // SceneManager + //============================================================================= + + SF_SceneSplash.SceneManager_initialize = SceneManager.initialize; + SceneManager.initialize = function () { + SF_SceneSplash.SceneManager_initialize.apply(this, arguments); + this.addSceneBefore(Scene_Splash, Scene_Title); + } + +})(); \ No newline at end of file diff --git a/js/plugins/YEP_AbsorptionBarrier.js b/js/plugins/YEP_AbsorptionBarrier.js new file mode 100755 index 0000000..ed5350c --- /dev/null +++ b/js/plugins/YEP_AbsorptionBarrier.js @@ -0,0 +1,1433 @@ +//============================================================================= +// Yanfly Engine Plugins - Absorption Barrier +// YEP_AbsorptionBarrier.js +//============================================================================= + +var Imported = Imported || {}; +Imported.YEP_AbsorptionBarrier = true; + +var Yanfly = Yanfly || {}; +Yanfly.ABR = Yanfly.ABR || {}; +Yanfly.ABR.version = 1.05; + +//============================================================================= + /*: + * @plugindesc v1.05 吸收屏障☁️ + * @author Yanfly Engine Plugins + * + * @param Barrier State + * @text 屏障状态 + * @desc 如果一个战士有一个障碍点,他将受到这个状态的影响。在0处离开,不进入任何状态。 + * @default 0 + * + * @param Barrier Color 1 + * @text 屏障文本颜色1 + * @desc The text code color 1 used for the barriers. + * @default 13 + * + * @param Barrier Color 2 + * @text 屏障文本颜色2 + * @desc The text code color 2 used for the barriers. + * @default 5 + * + * @param Barrier Animation + * @text 屏障动画 + * @desc Animation played when barrier points are lost. + * Leave at 0 for no animation. + * @default 0 + * + * @param Break Animation + * @text 打断动画 + * @desc Animation played when barrier points are emptied. + * Leave at 0 for no animation. + * @default 0 + * + * @param Barrier Popup + * @text 屏障破坏弹出窗口 + * @desc If using the Battle Engine Core, this is the popup color + * shown for barrier damage. Red, Green, Blue, Opacity + * @default 255, 0, 255, 160 + * + * @param Display 0 HP Damage + * @text 显示0点生命伤害 + * @desc Display 0 HP Damage if 0 Damage is dealt to HP? + * NO - false YES - true + * @default false + * + * @param Clear Per Battle + * @text 每次战斗清除屏障 + * @desc Clear barrier points at the start and end of battle? + * NO - false YES - true + * @default true + * + * @param Clear on Death + * @text 死亡时清除屏障 + * @desc Clear barrier points if the battler dies? + * NO - false YES - true + * @default true + * + * @param Default Penetration Rate + * @text 默认穿透率 + * @desc The default Barrier Penetration Rate for all actions. + * Example: if you want 50%, use 0.50. + * @default 0 + * + * @param Default Penetration Flat + * @text 默认穿透平面 + * @desc The default Barrier Penetration Flat for all actions. + * Example: if you want 100 flat penetration, use 100. + * @default 0 + * + * @help + * ============================================================================ + * Introduction + * ============================================================================ + * + * 屏障吸收是一个新的战斗技巧。屏障值是一个新的状态,为玩家提供一层保护。 + * 直接攻击将不会作用在血量上,而是先消减屏障值,剩余的在作用给玩家 + * + * 借助这个可以开发很多功能,更多请看下一部分 + * + * ============================================================================ + * Barrier Points - Explanation + * ============================================================================ + * + * 屏障值是一个血量增益状态。任何来自技能或者物品的攻击将会先削减屏障值 + * 让我们看看它是怎么工作的 + * + * --- Example 1 ---- + * + * 例如,这里有100屏障值,150伤害 + * + * 150 DMG vs 100 Barrier Points: 50 DMG goes through + * + * 屏障值最后为0,受到50伤害 + * + * --- Example 2--- + * + * 这里有100屏障值,50伤害 + * + * 50 DMG vs 100 Barrier Points: 0 DMG goes through + * + * 屏障值最后为50,受到0伤害 + * + * ============================================================================ + * Barrier Penetration - Explanation + * ============================================================================ + * + * 技能或者物品有个独特的特性叫做穿透屏障。这个允许部分伤害忽略屏障直接造 + * 成伤害 + * + * --- Example --- + * + * 这里有500屏障值,100伤害,75%穿透 + * + * 100 DMG vs 500 Barrier Points: 75 DMG goes through + * + * 屏障值最后为475,受到75伤害 + * + * ============================================================================ + * Unexpiring Barriers vs Timed Barriers - Explanation + * ============================================================================ + * + * 这里有2种类型的屏障:永久屏障和临时屏障。 + * + * --- Example --- + * + * Turn 1 - 100 Barrier Points + * Turn 2 - 200 Barrier Points + * Turn 3 - 300 Barrier Points + * + * Right now, the user has 600 Barrier Points total. After the Regeneration + * Phase, it will become this: + * + * Turn 1 - 200 Barrier Points + * Turn 2 - 300 Barrier Points + * + * And the user will have 500 Barrier Points total. + * + * --- + * + * 伤害优先给与最低回合数,然后慢慢变高,最后是永久屏障: + * + * --- Example --- + * + * Turn 1 - 100 Barrier Points + * Turn 2 - 200 Barrier Points + * Unexpiring - 300 Barrier Points + * + * Now, let's suppose 500 damage will be dealt. It will result in this: + * + * Turn 1 - 0 Barrier Points + * Turn 2 - 0 Barrier Points + * Unexpiring - 100 Barrier Points + * + * ============================================================================ + * Notetags + * ============================================================================ + * + * 使用下面标签来设置 + * + * Skill and Item Notetags: + * + * + * + * This adjusts the Barrier Points for user or the target respectively by +x. + * The Barrier Points altered for this notetag are unexpiring Barrier Points + * that do not remove themselves as time passes.设置永久屏障值 + * + * + * + * This will remove x barrier points from the user or the target. This is + * applied to unexpiring and temporary barrier points alike. + * + * + * + * This adjusts the Barrier Points for the user or target respectively at x + * turns by +y amount. These Barrier Points will expire after x turns. Each + * turn goes by during the battler's regeneration timing.设置临时屏障值 + * + * + * + * This will remove y barrier points from the user or target up to x turns. + * + * + * This causes this skill to be able to bypass Barrier Points to directly + * deal damage to the target.忽略屏障 + * + * + * Causes x% of this skill or item's damage to bypass the action target's + * Barrier Points. If the target does not have enough Barrier Points, more + * damage will be dealt. This is a percentile value.屏障穿透百分比 + * + * + * Causes x value of this skill or item's damage to bypass action target's + * Barrier Points. If the target does not have enough Barrier Points, more + * damage will be dealt. This is a flat value.屏障穿透值 + * + * Actor, Class, Enemy, Weapon, Armor, State Notetags: + * + * + * + * This makes any damaging action by the attacker to have +x% or -x% bonus + * Barrier Penetration. This is a multiplicative bonus and applied before + * flat bonuses have been made.屏障穿透百分比 + * + * + * + * This makes any damaging action by the attacker to have +x or -x bonus + * Barrier Penetration. This is a flat bonus and applied after multiplicative + * changes have been made.屏障穿透值 + * + * + * + * The amount of unexpiring Barrier Points are gained at the start of a new + * battle for the affected user.设置永久屏障值 + * + * + * + * The amount of Barrier Points are gained at the start of a new battle for + * the affected user that will last x turns.设置临时屏障值 + * + * + * + * During the regeneration phase, the user will regenerate +x/-x unexpiring + * Barrier Points.屏障更新值 + * + * + * + * During the regeneration phase, the user will regenerate Barrier Points + * that last x turns with a +y/-y value.屏障每回合更新值 + * + * ============================================================================ + * Lunatic Mode - Custom Barrier Points + * ============================================================================ + * + * For those with JavaScript proficiency, you can utilize these notetags to + * allow your skills and items to give battlers custom Barrier Point totals. + * + * Skill and Item Notetags: + * + * --- Target --- + * + * + * value = target.level; + * + * The 'value' variable determines the total amount of Barrier Points that + * will be added to the target's unexpiring Barrier Point total. + * + * + * value = target.level; + * + * The 'value' variable determines the total amount of Barrier Points that + * will be added to the target for x amount of turns. + * + * --- User --- + * + * + * value = user.level; + * + * The 'value' variable determines the total amount of Barrier Points that + * will be added to the user's unexpiring Barrier Point total. + * + * + * value = user.level; + * + * The 'value' variable determines the total amount of Barrier Points that + * will be added to the user for x amount of turns. + * + * ============================================================================ + * Lunatic Mode - Custom Barrier Penetration + * ============================================================================ + * + * For those with JavaScript proficiency, you can utilize these notetags to + * give your skills, items, actors, classes, enemies, weapons, armors, and + * states custom Barrier Penetration effects. + * + * Skill, Item, Actor, Class, Enemy, Weapon, Armor, State Notetags: + * + * --- Rate --- + * + * + * rate = target.hpRate(); + * + * The 'rate' variable determines the percentile amount of damage the user + * will bypass for the target's Barrier Points. This is a multiplicative + * bonus and will be applied before any flat bonuses. + * + * --- Flat --- + * + * + * flat = target.level; + * + * The 'flat' variable determines the flat amount of damage the user will + * bypass for the target's Barrier Points. This is a flat bonus and will be + * applied after all multiplicative bonuses. + * + * ============================================================================ + * Lunatic Mode - Custom Barrier Points on Battle Start + * ============================================================================ + * + * For those with JavaScript proficiency, you can utilize these notetags to + * add a dynamic amount of Barrier Points during the start up of a battle. + * + * Actor, Class, Enemy, Weapon, Armor, and State Notetags: + * + * --- Unexpiring --- + * + * + * value += user.hp; + * + * The 'value' variable determines how many Barrier Points the user will + * start a battle with. The Barrier Points added through this notetag are + * unexpiring Barrier Points. + * + * --- Timed --- + * + * + * value += user.hp; + * + * The 'value' variable determines how many Barrier Points the user will + * start a battle with but expires after x turns. + * + * ============================================================================ + * Lunatic Mode - Custom Barrier Regeneration + * ============================================================================ + * + * For those with JavaScript proficiency, you can utilize these notetags to + * add a dynamic amount of Barrier Points during the user's regeneration phase. + * + * Actor, Class, Enemy, Weapon, Armor, and State Notetags: + * + * --- Unexpiring --- + * + * + * value += user.hp / 4; + * + * The 'value' variable determines how many Barrier Points the user will + * gain during the user's regeneration phase. The Barrier Points added with + * this notetag are unexpiring Barrier Points. + * + * --- Timed --- + * + * + * value += user.hp / 4; + * + * The 'value' variable determines how many Barrier Points the user will + * gain during the user's regeneration phase. The Barrier Points added with + * this notetag will last x turns. + * + * ============================================================================ + * Lunatic Mode - New JavaScript Functions + * ============================================================================ + * + * For those familiar with JavaScript, here is a quick reference list of new + * JavaScript functions you can use for your own code and/or Lunatic Mode. + * + * JavaScript functions: + * + * battler.barrierPoints() + * - Returns the total amount of Barrier Points the battler has. + * + * battler.barrierPoints(-1) + * - Returns the amount of unexpiring Barrier Points the battler has. + * + * battler.barrierPoints(x) + * - Returns the amount of Barrier Points the battler has for that turn. + * + * battler.gainBarrier(value, turn) + * - Makes battler gain barrier points equal to 'value' that lasts a certain + * amount of 'turns'. If turns is left at 0, the value will be unexpiring + * Barrier Points. + * + * battler.loseBarrier(value) + * - Makes the battler lose 'value' worth of Barrier Points. + * + * battler.startBarrierAnimation() + * - Makes the battler play the barrier struck animation. + * + * battler.updateBarrierTurns() + * - Makes the battler's Barrier Points update their turns. + * + * ============================================================================ + * Changelog + * ============================================================================ + * + * Version 1.05: + * - Lunatic Mode fail safes added. + * + * Version 1.04: + * - , , , and + * notetags have been revamped. They will also + * show popups now. If is used, it will remove y + * barrier points up to x turns. + * + * Version 1.03: + * - Updated for RPG Maker MV version 1.1.0. + * + * Version 1.02: + * - Fixed a bug where if Barrier Penetration was at 100%, it would be treated + * as 0%. + * - Added 'Barrier State' parameter. This parameter will passively apply a + * certain state to the battler if the battler has barrier points. This can be + * turned off by leaving this plugin parameter value at 0. + * + * Version 1.01: + * - Fixed a bug that prevented Barrier Points to be gained at the start of + * battle properly. + * - When a user grants an Absorption Barrier to itself, the user will gain 1 + * additional turn for the Barrier to stay up so it won't dissolve immediately. + * + * Version 1.00: + * - Finished Plugin! + */ +//============================================================================= + +//============================================================================= +// Parameter Variables +//============================================================================= + +Yanfly.Parameters = PluginManager.parameters('YEP_AbsorptionBarrier'); +Yanfly.Param = Yanfly.Param || {}; + +Yanfly.Param.ABRState = Number(Yanfly.Parameters['Barrier State']); +Yanfly.Param.ABRColor1 = Number(Yanfly.Parameters['Barrier Color 1']); +Yanfly.Param.ABRColor2 = Number(Yanfly.Parameters['Barrier Color 2']); +Yanfly.Param.ABRAni1 = Number(Yanfly.Parameters['Barrier Animation']); +Yanfly.Param.ABRAni2 = Number(Yanfly.Parameters['Break Animation']); +Yanfly.Param.ABRPop = String(Yanfly.Parameters['Barrier Popup']); +Yanfly.Param.ABRPop = eval('[' + Yanfly.Param.ABRPop + ']'); +Yanfly.Param.ABRDisplay0 = String(Yanfly.Parameters['Display 0 HP Damage']); +Yanfly.Param.ABRDisplay0 = eval(Yanfly.Param.ABRDisplay0); +Yanfly.Param.ABRClear = eval(String(Yanfly.Parameters['Clear Per Battle'])); +Yanfly.Param.ABRDeath = eval(String(Yanfly.Parameters['Clear on Death'])); +Yanfly.Param.ABRPenRate = Number(Yanfly.Parameters['Default Penetration Rate']); +Yanfly.Param.ABRPenFlat = Number(Yanfly.Parameters['Default Penetration Flat']); + +//============================================================================= +// DataManager +//============================================================================= + +Yanfly.ABR.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded; +DataManager.isDatabaseLoaded = function() { + if (!Yanfly.ABR.DataManager_isDatabaseLoaded.call(this)) return false; + if (!Yanfly._loaded_YEP_AbsorptionBarrier) { + this.processABRNotetags1($dataSkills); + this.processABRNotetags1($dataItems); + this.processABRNotetags2($dataActors); + this.processABRNotetags2($dataClasses); + this.processABRNotetags2($dataEnemies); + this.processABRNotetags2($dataWeapons); + this.processABRNotetags2($dataArmors); + this.processABRNotetags2($dataStates); + Yanfly._loaded_YEP_AbsorptionBarrier = true; + } + return true; +}; + +DataManager.processABRNotetags1 = function(group) { + var noteA1 = //i; + var noteA2 = //i; + var noteB1 = //i; + var noteB2 = //i; + var noteC1 = //i; + var noteC2 = /<\/CUSTOM TARGET BARRIER[ ](\d+)[ ](?:TURN|TURNS)>/i; + var noteD1 = //i; + var noteD2 = /<\/CUSTOM USER BARRIER[ ](\d+)[ ](?:TURN|TURNS)>/i; + for (var n = 1; n < group.length; n++) { + var obj = group[n]; + var notedata = obj.note.split(/[\r\n]+/); + + obj.targetBarrier = []; + obj.userBarrier = []; + obj.barrierPenetrationRate = Yanfly.Param.ABRPenRate; + obj.barrierPenetrationFlat = Yanfly.Param.ABRPenFlat; + var evalMode = 'none'; + var evalTurn = 0; + obj.targetBarrierEval = []; + obj.userBarrierEval = []; + obj.barrierPenetrationRateEval = ''; + obj.barrierPenetrationFlatEval = ''; + + for (var i = 0; i < notedata.length; i++) { + var line = notedata[i]; + if (line.match(noteA1)) { + obj.targetBarrier[0] = parseInt(RegExp.$1); + } else if (line.match(noteA2)) { + var index = parseInt(RegExp.$1); + var value = parseInt(RegExp.$2); + obj.targetBarrier[index] = value; + } else if (line.match(noteB1)) { + obj.userBarrier[0] = parseInt(RegExp.$1); + } else if (line.match(noteB2)) { + var index = parseInt(RegExp.$1); + var value = parseInt(RegExp.$2); + obj.userBarrier[index] = value; + } else if (line.match(//i)) { + obj.barrierPenetrationRate = 1; + } else if (line.match(//i)) { + obj.barrierPenetrationRate = parseFloat(RegExp.$1) * 0.01; + } else if (line.match(//i)) { + obj.barrierPenetrationFlat = parseInt(RegExp.$1); + } else if (line.match(//i)) { + evalMode = 'custom target barrier'; + evalTurn = 0; + obj.targetBarrierEval[0] = ''; + } else if (line.match(/<\/CUSTOM TARGET BARRIER>/i)) { + evalMode = 'none'; + evalTurn = 0; + } else if (line.match(noteC1)) { + evalMode = 'custom target barrier'; + evalTurn = parseInt(RegExp.$1); + obj.targetBarrierEval[evalTurn] = ''; + } else if (line.match(noteC2)) { + evalMode = 'none'; + evalTurn = 0; + } else if (evalMode === 'custom target barrier') { + obj.targetBarrierEval[evalTurn] = obj.targetBarrierEval[evalTurn] + + line + '\n'; + } else if (line.match(//i)) { + evalMode = 'custom user barrier'; + evalTurn = 0; + obj.userBarrierEval[0] = ''; + } else if (line.match(/<\/CUSTOM USER BARRIER>/i)) { + evalMode = 'none'; + evalTurn = 0; + } else if (line.match(noteD1)) { + evalMode = 'custom user barrier'; + evalTurn = parseInt(RegExp.$1); + obj.userBarrierEval[evalTurn] = ''; + } else if (line.match(noteD2)) { + evalMode = 'none'; + evalTurn = 0; + } else if (evalMode === 'custom user barrier') { + obj.userBarrierEval[evalTurn] = obj.userBarrierEval[evalTurn] + + line + '\n'; + } else if (line.match(//i)) { + evalMode = 'custom barrier penetration rate'; + } else if (line.match(/<\/CUSTOM BARRIER PENETRATION RATE>/i)) { + evalMode = 'none'; + } else if (evalMode === 'custom barrier penetration rate') { + obj.barrierPenetrationRateEval = obj.barrierPenetrationRateEval + + line + '\n'; + } else if (line.match(//i)) { + evalMode = 'custom barrier penetration flat'; + } else if (line.match(/<\/CUSTOM BARRIER PENETRATION flat>/i)) { + evalMode = 'none'; + } else if (evalMode === 'custom barrier penetration flat') { + obj.barrierPenetrationFlatEval = obj.barrierPenetrationFlatEval + + line + '\n'; + } + } + } +}; + +DataManager.processABRNotetags2 = function(group) { + var noteA1 = //i; + var noteA2 = //i; + var noteB1 = //i; + var noteB2 = /<\/CUSTOM BARRIER POINTS[ ](\d+)[ ](?:TURN|TURNS)>/i; + var noteC1 = //i; + var noteC2 = //i; + var noteD1 = //i; + var noteD2 = /<\/CUSTOM BARRIER REGEN>/i; + var noteE1 = //i; + var noteE2 = /<\/CUSTOM BARRIER REGEN[ ](\d+)[ ](?:TURN|TURNS)>/i; + for (var n = 1; n < group.length; n++) { + var obj = group[n]; + var notedata = obj.note.split(/[\r\n]+/); + + obj.barrierPenetrationRate = 0; + obj.barrierPenetrationFlat = 0; + obj.battleStartBarrierPoints = []; + obj.barrierRegen = []; + var evalMode = 'none'; + var evalTurn = 0; + obj.barrierPenetrationRateEval = ''; + obj.barrierPenetrationFlatEval = ''; + obj.battleStartBarrierPointsEval = []; + obj.barrierRegenEval = []; + + for (var i = 0; i < notedata.length; i++) { + var line = notedata[i]; + if (line.match(//i)) { + obj.barrierPenetrationRate = parseFloat(RegExp.$1) * 0.01; + } else if (line.match(//i)) { + obj.barrierPenetrationFlat = parseInt(RegExp.$1); + } else if (line.match(noteA1)) { + obj.battleStartBarrierPoints[0] = parseInt(RegExp.$1); + } else if (line.match(noteA2)) { + var id = parseInt(RegExp.$1); + var value = parseInt(RegExp.$2); + obj.battleStartBarrierPoints[id] = value; + } else if (line.match(//i)) { + evalMode = 'custom barrier penetration rate'; + } else if (line.match(/<\/CUSTOM BARRIER PENETRATION RATE>/i)) { + evalMode = 'none'; + } else if (evalMode === 'custom barrier penetration rate') { + obj.barrierPenetrationRateEval = obj.barrierPenetrationRateEval + + line + '\n'; + } else if (line.match(//i)) { + evalMode = 'custom barrier penetration flat'; + } else if (line.match(/<\/CUSTOM BARRIER PENETRATION flat>/i)) { + evalMode = 'none'; + } else if (evalMode === 'custom barrier penetration flat') { + obj.barrierPenetrationFlatEval = obj.barrierPenetrationFlatEval + + line + '\n'; + } else if (line.match(//i)) { + evalMode = 'custom barrier points'; + evalTurn = 0; + obj.battleStartBarrierPointsEval[0] = ''; + } else if (line.match(/<\/CUSTOM BARRIER POINTS>/i)) { + evalMode = 'none'; + evalTurn = 0; + } else if (line.match(noteB1)) { + evalMode = 'custom barrier points'; + evalTurn = parseInt(RegExp.$1); + obj.battleStartBarrierPointsEval[evalTurn] = ''; + } else if (line.match(noteB2)) { + evalMode = 'none'; + evalTurn = 0; + } else if (evalMode === 'custom barrier points') { + obj.battleStartBarrierPointsEval[evalTurn] = + obj.battleStartBarrierPointsEval[evalTurn] + line + '\n'; + } else if (line.match(noteC1)) { + obj.barrierRegen[0] = parseInt(RegExp.$1); + } else if (line.match(noteC2)) { + var id = parseInt(RegExp.$1); + var value = parseInt(RegExp.$2); + obj.barrierRegen[id] = value; + } else if (line.match(noteD1)) { + evalMode = 'custom barrier regen'; + evalTurn = 0; + obj.barrierRegenEval[0] = ''; + } else if (line.match(noteD2)) { + evalMode = 'none'; + evalTurn = 0; + } else if (line.match(noteE1)) { + evalMode = 'custom barrier regen'; + evalTurn = parseInt(RegExp.$1); + obj.barrierRegenEval[evalTurn] = ''; + } else if (line.match(noteE2)) { + evalMode = 'none'; + evalTurn = 0; + } else if (evalMode === 'custom barrier regen') { + obj.barrierRegenEval[evalTurn] = obj.barrierRegenEval[evalTurn] + + line + '\n'; + } + } + } +}; + +//============================================================================= +// Game_BattlerBase +//============================================================================= + +Yanfly.ABR.Game_BattlerBase_initMembers = + Game_BattlerBase.prototype.initMembers; +Game_BattlerBase.prototype.initMembers = function() { + Yanfly.ABR.Game_BattlerBase_initMembers.call(this); + this.clearAbsorptionBarrier(); +}; + +Game_BattlerBase.prototype.clearAbsorptionBarrier = function() { + this._turnBarrier = []; + this._permBarrier = 0; +}; + +Game_BattlerBase.prototype.initAbsorptionBarrier = function() { + this._turnBarrier = this._turnBarrier || []; + this._permBarrier = this._permBarrier || 0; +}; + +if (Yanfly.Param.ABRState) { + +Yanfly.ABR.Game_BattlerBase_refresh = Game_BattlerBase.prototype.refresh; +Game_BattlerBase.prototype.refresh = function() { + this._barrierState = undefined; + Yanfly.ABR.Game_BattlerBase_refresh.call(this); +}; + +Yanfly.ABR.Game_BattlerBase_states = Game_BattlerBase.prototype.states; +Game_BattlerBase.prototype.states = function() { + var array = Yanfly.ABR.Game_BattlerBase_states.call(this); + if (this._barrierState === undefined) { + this._barrierState = this.barrierPoints() > 0; + } + if (this._barrierState) { + array.push($dataStates[Yanfly.Param.ABRState]); + this.sortBarrierStates(array); + } + return array; +}; + +Game_BattlerBase.prototype.sortBarrierStates = function(array) { + array.sort(function(a, b) { + var p1 = a.priority; + var p2 = b.priority; + if (p1 !== p2) return p2 - p1; + return a - b; + }); +}; + +}; // Yanfly.Param.ABRState + +//============================================================================= +// Game_Battler +//============================================================================= + +Game_Battler.prototype.barrierPoints = function(turn) { + this.initAbsorptionBarrier(); + if (turn < 0) { + return this._permBarrier; + } else if (turn >= 0) { + this._turnBarrier[turn] = this._turnBarrier[turn] || 0; + return this._turnBarrier[turn]; + } + var value = this._permBarrier; + var length = this._turnBarrier.length; + for (var i = 0; i < length; ++i) { + this._turnBarrier[i] = this._turnBarrier[i] || 0; + value += this._turnBarrier[i]; + } + return value; +}; + +Game_Battler.prototype.barrierPointsTotal = function(turn) { + this.initAbsorptionBarrier(); + var total = this._permBarrier || 0; + var length = turn; + for (var i = 0; i < length; ++i) { + total += this._turnBarrier[i] || 0; + } + return total; +}; + +Game_Battler.prototype.gainBarrier = function(value, turn) { + this.initAbsorptionBarrier(); + value = Math.floor(value); + if (turn > 0) { + turn -= 1; + this._turnBarrier[turn] = this._turnBarrier[turn] || 0; + this._turnBarrier[turn] += value; + this._turnBarrier[turn] = Math.max(0, this._turnBarrier[turn]); + } else { + this._permBarrier = this._permBarrier || 0; + this._permBarrier += value; + this._permBarrier = Math.max(0, this._permBarrier); + } + this._barrierAltered = true; + this.refresh(); +}; + +Game_Battler.prototype.gainBarrierEval = function(formula, turn, user, target) { + if (formula === '') return 0; + this.initAbsorptionBarrier(); + value = 0; + var a = user; + var b = target; + var subject = user; + var s = $gameSwitches._data; + var v = $gameVariables._data; + try { + eval(formula); + } catch (e) { + Yanfly.Util.displayError(e, formula, 'GAIN BARRIER CUSTOM CODE ERROR'); + } + value = Math.floor(value); + return value; +}; + +Game_Battler.prototype.loseBarrier = function(value, penRate, penFlat) { + if (penRate === undefined) penRate = 1; + if (penFlat === undefined) penFlat = 0; + value = Math.ceil(value); + if (value <= 0) return 0; + this.initAbsorptionBarrier(); + var initValue = value; + var result = JsonEx.makeDeepCopy(this._result); + var calcValue = Math.ceil(value * penRate - penFlat); + this._result = new Game_ActionResult(); + var length = this._turnBarrier.length; + for (var i = 0; i < length; ++i) { + this._turnBarrier[i] = this._turnBarrier[i] || 0; + var reduction = Math.min(this._turnBarrier[i], calcValue); + if (reduction > 0) { + this._turnBarrier[i] -= reduction; + this._result.hpDamage += reduction; + value -= reduction; + calcValue -= reduction; + } + if (value <= 0) break; + } + var reduction = Math.min(this._permBarrier, calcValue); + if (reduction > 0) { + this._permBarrier -= reduction; + this._result.hpDamage += reduction; + value -= reduction; + calcValue -= reduction; + } + if (initValue !== value) { + this._barrierAltered = true; + this.startBarrierAnimation(); + if (Imported.YEP_BattleEngineCore) { + this._result._barrierAffected = true; + this._result.hpAffected = true; + this.startDamagePopup(); + } + } + this._result = result; + return value; +}; + +Game_Battler.prototype.loseBarrierTurn = function(value, turn) { + value = Math.abs(value); + var barrierPoints = this.barrierPointsTotal(turn); + var dmg = Math.min(value, barrierPoints); + this.loseBarrier(dmg); +}; + +Game_Battler.prototype.startBarrierAnimation = function() { + if (this.barrierPoints() > 0) { + if (Yanfly.Param.ABRAni1 > 0) this.startAnimation(Yanfly.Param.ABRAni1); + } else { + if (Yanfly.Param.ABRAni2 > 0) this.startAnimation(Yanfly.Param.ABRAni2); + } +}; + +Yanfly.ABR.Game_Battler_regenerateAll = Game_Battler.prototype.regenerateAll; +Game_Battler.prototype.regenerateAll = function() { + Yanfly.ABR.Game_Battler_regenerateAll.call(this); + if (this.isAlive()) { + this.updateBarrierTurns(); + this.regenBarriers(); + } +}; + +Game_Battler.prototype.updateBarrierTurns = function() { + this.initAbsorptionBarrier(); + if (this.barrierPoints() <= 0) return; + this._turnBarrier.shift(); + this.initAbsorptionBarrier(); + this._barrierAltered = true; + this.refresh(); +}; + +Yanfly.ABR.Game_Battler_onBattleStart = Game_Battler.prototype.onBattleStart; +Game_Battler.prototype.onBattleStart = function() { + if (Yanfly.Param.ABRClear) this.clearAbsorptionBarrier(); + Yanfly.ABR.Game_Battler_onBattleStart.call(this); + this.makeOnBattleStartBarrierPoints(); +}; + +Yanfly.ABR.Game_Battler_onBattleEnd = Game_Battler.prototype.onBattleEnd; +Game_Battler.prototype.onBattleEnd = function() { + if (Yanfly.Param.ABRClear) this.clearAbsorptionBarrier(); + Yanfly.ABR.Game_Battler_onBattleEnd.call(this); +}; + +Game_Battler.prototype.barrierPenetrationRate = function() { + var rate = 1; + var length = this.states().length; + for (var i = 0; i < length; ++i) { + var obj = this.states()[i]; + if (obj && obj.barrierPenetrationRate !== undefined) { + rate *= (1 - obj.barrierPenetrationRate); + } + } + return 1 - rate; +}; + +Game_Battler.prototype.barrierPenetrationRateEval = function(c1, c2, c3, c4) { + var rate = 1; + var length = this.states().length; + for (var i = 0; i < length; ++i) { + var obj = this.states()[i]; + if (obj && obj.barrierPenetrationRateEval !== undefined) { + var formula = obj.barrierPenetrationRateEval; + rate *= (1 - this.getbarrierPenRateEval(formula, c1, c2, c3, c4)); + } + } + return 1 - rate; +}; + +Game_Battler.prototype.getbarrierPenRateEval = function(f1, c1, c2, c3, c4) { + if (f1 === '') return 0; + var rate = 0; + var item = c1; + var skill = c1; + var a = c2; + var user = c2; + var subject = c2; + var b = c3; + var target = c3; + var value = c4; + var damage = c4; + var s = $gameSwitches._data; + var v = $gameVariables._data; + try { + eval(f1); + } catch (e) { + Yanfly.Util.displayError(e, f1, 'BARRIER PEN RATE CUSTOM CODE ERROR'); + } + return rate; +}; + +Game_Battler.prototype.barrierPenetrationFlat = function() { + var value = 0; + var length = this.states().length; + for (var i = 0; i < length; ++i) { + var obj = this.states()[i]; + if (obj && obj.barrierPenetrationFlat !== undefined) { + value += obj.barrierPenetrationFlat; + } + } + return value; +}; + +Game_Battler.prototype.barrierPenetrationFlatEval = function(c1, c2, c3, c4) { + var value = 0; + var length = this.states().length; + for (var i = 0; i < length; ++i) { + var obj = this.states()[i]; + if (obj && obj.barrierPenetrationFlatEval !== undefined) { + var formula = obj.barrierPenetrationFlatEval; + value += this.getbarrierPenFlatEval(formula, c1, c2, c3, c4); + } + } + return value; +}; + +Game_Battler.prototype.getbarrierPenFlatEval = function(f1, c1, c2, c3, c4) { + if (f1 === '') return 0; + var flat = 0; + var item = c1; + var skill = c1; + var a = c2; + var user = c2; + var subject = c2; + var b = c3; + var target = c3; + var value = c4; + var damage = c4; + var s = $gameSwitches._data; + var v = $gameVariables._data; + try { + eval(f1); + } catch (e) { + Yanfly.Util.displayError(e, f1, 'BARRIER PEN FLAT CUSTOM CODE ERROR'); + } + return flat; +}; + +if (Yanfly.Param.ABRDeath) { + +Yanfly.ABR.Game_Battler_addState = Game_Battler.prototype.addState; +Game_Battler.prototype.addState = function(stateId) { + var deathState = (stateId === this.deathStateId()); + var lifeState = this.isAlive(); + Yanfly.ABR.Game_Battler_addState.call(this, stateId); + if (deathState && lifeState !== this.isAlive()) this.clearAbsorptionBarrier(); +}; + +}; // Yanfly.Param.ABRDeath + +Game_Battler.prototype.makeOnBattleStartBarrierPoints = function() { + var barriers = this.battleStartBarrierPoints(); + var length = barriers.length; + for (var i = 0; i < length; ++i) { + var value = barriers[i] || 0; + this.gainBarrier(value, i); + } +}; + +Game_Battler.prototype.battleStartBarrierPoints = function() { + var array = []; + var length = this.states().length; + for (var i = 0; i < length; ++i) { + var obj = this.states()[i]; + if (obj) this.makeBattleStartBarrierPoints(array, obj); + } + return array; +}; + +Game_Battler.prototype.makeBattleStartBarrierPoints = function(array, obj) { + if (obj.battleStartBarrierPoints !== undefined) { + var length = obj.battleStartBarrierPoints.length; + for (var i = 0; i < length; ++i) { + var iteration = obj.battleStartBarrierPoints[i] || 0; + array[i] = array[i] || 0; + array[i] += iteration; + } + } + if (obj.battleStartBarrierPointsEval !== undefined) { + var length = obj.battleStartBarrierPointsEval.length; + for (var i = 0; i < length; ++i) { + var formula = obj.battleStartBarrierPointsEval[i] || ''; + array[i] = array[i] || 0; + array[i] += this.makeBattleStartBarrierPointsEval(formula); + } + } + return array; +}; + +Game_Battler.prototype.makeBattleStartBarrierPointsEval = function(formula) { + var value = 0; + var a = this; + var user = this; + var subject = this; + var s = $gameSwitches._data; + var v = $gameVariables._data; + try { + eval(formula); + } catch (e) { + Yanfly.Util.displayError(e, formula, 'BARRIER START CUSTOM CODE ERROR'); + } + return value; +}; + +Game_Battler.prototype.regenBarriers = function() { + var barriers = this.getRegenBarriers(); + var length = barriers.length; + for (var i = 0; i < length; ++i) { + var value = barriers[i] || 0; + this.gainBarrier(value, i); + } +}; + +Game_Battler.prototype.getRegenBarriers = function() { + var array = []; + var length = this.states().length; + for (var i = 0; i < length; ++i) { + var obj = this.states()[i]; + if (obj) this.makeRegenBarrierPoints(array, obj); + } + return array; +}; + +Game_Battler.prototype.makeRegenBarrierPoints = function(array, obj) { + if (obj.barrierRegen !== undefined) { + var length = obj.barrierRegen.length; + for (var i = 0; i < length; ++i) { + var iteration = obj.barrierRegen[i] || 0; + array[i] = array[i] || 0; + array[i] += iteration; + } + } + if (obj.barrierRegenEval !== undefined) { + var length = obj.barrierRegenEval.length; + for (var i = 0; i < length; ++i) { + var formula = obj.barrierRegenEval[i] || ''; + array[i] = array[i] || 0; + array[i] += this.makeBattleStartBarrierPointsEval(formula); + } + } +}; + +Game_Battler.prototype.makeRegenBarrierPointsEval = function(formula) { + var value = 0; + var a = this; + var user = this; + var subject = this; + var s = $gameSwitches._data; + var v = $gameVariables._data; + try { + eval(formula); + } catch (e) { + Yanfly.Util.displayError(e, formula, 'BARRIER REGEN CUSTOM CODE ERROR'); + } + return value; +}; + +//============================================================================= +// Game_Actor +//============================================================================= + +Yanfly.ABR.Game_Actor_setup = Game_Actor.prototype.setup; +Game_Actor.prototype.setup = function(actorId) { + Yanfly.ABR.Game_Actor_setup.call(this, actorId); + this.clearAbsorptionBarrier(); +}; + +Game_Actor.prototype.barrierPenetrationRate = function() { + var rate = 1 - Game_Battler.prototype.barrierPenetrationRate.call(this); + var length = this.equips().length; + for (var i = 0; i < length; ++i) { + var obj = this.equips()[i]; + if (obj && obj.barrierPenetrationRate !== undefined) { + rate *= (1 - obj.barrierPenetrationRate); + } + } + rate *= (1 - this.actor().barrierPenetrationRate); + rate *= (1 - this.currentClass().barrierPenetrationRate); + return 1 - rate; +}; + +Game_Actor.prototype.barrierPenetrationRateEval = function(c1, c2, c3, c4) { + var rate = 1 - Game_Battler.prototype.barrierPenetrationRateEval.call(this, + c1, c2, c3, c4); + var length = this.equips().length; + for (var i = 0; i < length; ++i) { + var obj = this.equips()[i]; + if (obj && obj.barrierPenetrationRateEval !== undefined) { + var formula = obj.barrierPenetrationRateEval; + rate *= (1 - this.getbarrierPenRateEval(formula, c1, c2, c3, c4)); + } + } + var formula = this.actor().barrierPenetrationRateEval; + rate *= (1 - this.getbarrierPenRateEval(formula, c1, c2, c3, c4)); + var formula = this.currentClass().barrierPenetrationRateEval; + rate *= (1 - this.getbarrierPenRateEval(formula, c1, c2, c3, c4)); + return 1 - rate; +}; + +Game_Actor.prototype.barrierPenetrationFlat = function() { + var value = Game_Battler.prototype.barrierPenetrationFlat.call(this); + var length = this.equips().length; + for (var i = 0; i < length; ++i) { + var obj = this.equips()[i]; + if (obj && obj.barrierPenetrationFlat !== undefined) { + value += obj.barrierPenetrationFlat; + } + } + value += this.actor().barrierPenetrationFlat; + value += this.currentClass().barrierPenetrationFlat; + return value; +}; + +Game_Actor.prototype.barrierPenetrationFlatEval = function(c1, c2, c3, c4) { + var value = Game_Battler.prototype.barrierPenetrationFlatEval.call(this, + c1, c2, c3, c4); + var length = this.equips().length; + for (var i = 0; i < length; ++i) { + var obj = this.equips()[i]; + if (obj && obj.barrierPenetrationFlatEval !== undefined) { + var formula = obj.barrierPenetrationFlatEval; + value += this.getbarrierPenFlatEval(formula, c1, c2, c3, c4); + } + } + var formula = this.actor().barrierPenetrationFlatEval; + value += this.getbarrierPenFlatEval(formula, c1, c2, c3, c4); + var formula = this.currentClass().barrierPenetrationFlatEval; + value += this.getbarrierPenFlatEval(formula, c1, c2, c3, c4); + return value; +}; + +Game_Actor.prototype.battleStartBarrierPoints = function() { + var array = Game_Battler.prototype.battleStartBarrierPoints.call(this); + var length = this.equips().length; + for (var i = 0; i < length; ++i) { + var obj = this.equips()[i]; + if (obj) this.makeBattleStartBarrierPoints(array, obj); + } + this.makeBattleStartBarrierPoints(array, this.actor()); + this.makeBattleStartBarrierPoints(array, this.currentClass()); + return array; +}; + +Game_Actor.prototype.getRegenBarriers = function() { + var array = Game_Battler.prototype.getRegenBarriers.call(this); + var length = this.equips().length; + for (var i = 0; i < length; ++i) { + var obj = this.equips()[i]; + if (obj) this.makeRegenBarrierPoints(array, obj); + } + this.makeRegenBarrierPoints(array, this.actor()); + this.makeRegenBarrierPoints(array, this.currentClass()); + return array; +}; + +//============================================================================= +// Game_Enemy +//============================================================================= + +Game_Enemy.prototype.barrierPenetrationRate = function() { + var rate = 1 - Game_Battler.prototype.barrierPenetrationRate.call(this); + rate *= (1 - this.enemy().barrierPenetrationRate); + return 1 - rate; +}; + +Game_Enemy.prototype.barrierPenetrationRateEval = function(c1, c2, c3, c4) { + var rate = 1 - Game_Battler.prototype.barrierPenetrationRateEval.call(this, + c1, c2, c3, c4); + var formula = this.enemy().barrierPenetrationRateEval; + rate *= (1 - this.getbarrierPenRateEval(formula, c1, c2, c3, c4)); + return 1 - rate; +}; + +Game_Enemy.prototype.barrierPenetrationFlat = function() { + var value = Game_Battler.prototype.barrierPenetrationFlat.call(this); + value += this.enemy().barrierPenetrationFlat; + return value; +}; + +Game_Enemy.prototype.barrierPenetrationFlatEval = function(c1, c2, c3, c4) { + var value = Game_Battler.prototype.barrierPenetrationFlatEval.call(this, + c1, c2, c3, c4); + var formula = this.enemy().barrierPenetrationFlatEval; + value += this.getbarrierPenFlatEval(formula, c1, c2, c3, c4); + return value; +}; + +Game_Enemy.prototype.battleStartBarrierPoints = function() { + var array = Game_Battler.prototype.battleStartBarrierPoints.call(this); + this.makeBattleStartBarrierPoints(array, this.enemy()); + return array; +}; + +Game_Enemy.prototype.getRegenBarriers = function() { + var array = Game_Battler.prototype.getRegenBarriers.call(this); + this.makeRegenBarrierPoints(array, this.enemy()); + return array; +}; + +//============================================================================= +// Game_Action +//============================================================================= + +Yanfly.ABR.Game_Action_applyItemUserEffect = + Game_Action.prototype.applyItemUserEffect; +Game_Action.prototype.applyItemUserEffect = function(target) { + Yanfly.ABR.Game_Action_applyItemUserEffect.call(this, target); + if (this.item()) this.applyItemBarrierEffect(target); +}; + +Game_Action.prototype.applyItemBarrierEffect = function(target) { + var item = this.item(); + if (target) this.gainBarrierBonus(target, true); + this.gainBarrierBonus(this.subject(), false); +}; + +Game_Action.prototype.gainBarrierBonus = function(target, isTarget) { + var item = this.item(); + var barriers = isTarget ? item.targetBarrier : item.userBarrier; + var evalBarriers = isTarget ? item.targetBarrierEval : item.userBarrierEval; + var length = Math.max(barriers.length, evalBarriers.length); + if (length <= 0) return; + for (var i = 0; i < length; ++i) { + var t = i; + if (t > 0 && target === this.subject()) t += 1; + var value = barriers[i] || 0; + value += target.gainBarrierEval(evalBarriers[i] || '', t, this.subject(), + target); + if (value > 0) { + target.gainBarrier(value, t); + } else if (value < 0) { + target.loseBarrierTurn(value, t); + } + } + target.refresh(); +}; + +Yanfly.ABR.Game_Action_executeHpDamage = Game_Action.prototype.executeHpDamage; +Game_Action.prototype.executeHpDamage = function(target, value) { + var barrier = false; + if (this.isAffectBarrierPoints(target, value)) { + barrier = true; + var penRate = this.calcBarrierPenetrationRate(target, value); + var penFlat = this.calcBarrierPenetrationFlat(target, value); + value = target.loseBarrier(value, penRate, penFlat); + } + Yanfly.ABR.Game_Action_executeHpDamage.call(this, target, value); + if (Yanfly.Param.ABRDisplay0) return; + if (barrier && target && target._result.hpDamage === 0) { + target._result.hpAffected = false; + } +}; + +Game_Action.prototype.isAffectBarrierPoints = function(target, value) { + if (value <= 0) return false; + return target.barrierPoints() > 0; +}; + +Game_Action.prototype.calcBarrierPenetrationRate = function(target, value) { + var value = 1 - this.item().barrierPenetrationRate; + value *= 1 - this.barrierPenetrationRateEval(target, value); + value *= 1 - this.subject().barrierPenetrationRate(); + value *= 1 - this.subject().barrierPenetrationRateEval(this, this.subject(), + target, value); + return value.clamp(0, 1); +}; + +Game_Action.prototype.barrierPenetrationRateEval = function(target, value) { + var item = this.item(); + if (item.barrierPenetrationRateEval === '') return 0; + var rate = 0; + var skill = item; + var a = this.subject(); + var user = this.subject(); + var subject = this.subject(); + var b = target; + var damage = value; + var s = $gameSwitches._data; + var v = $gameVariables._data; + var code = item.barrierPenetrationRateEval; + try { + eval(code); + } catch (e) { + Yanfly.Util.displayError(e, code, 'BARRIER PEN RATE CUSTOM CODE ERROR'); + } + return rate; +}; + +Game_Action.prototype.calcBarrierPenetrationFlat = function(target, value) { + var value = this.item().barrierPenetrationFlat; + value += this.barrierPenetrationFlatEval(target, value); + value += this.subject().barrierPenetrationFlat(); + value += this.subject().barrierPenetrationFlatEval(this, this.subject(), + target, value); + return value.clamp(0, target.barrierPoints()); +}; + +Game_Action.prototype.barrierPenetrationFlatEval = function(target, value) { + var item = this.item(); + if (item.barrierPenetrationFlatEval === '') return 0; + var flat = 0; + var a = this.subject(); + var user = this.subject(); + var subject = this.subject(); + var b = target; + var s = $gameSwitches._data; + var v = $gameVariables._data; + var code = item.barrierPenetrationFlatEval; + try { + eval(code); + } catch (e) { + Yanfly.Util.displayError(e, code, 'BARRIER PEN FLAT CUSTOM CODE ERROR'); + } + return flat; +}; + +//============================================================================= +// Sprite_Damage +//============================================================================= + +if (Imported.YEP_BattleEngineCore) { + +Yanfly.ABR.Sprite_Damage_setup = Sprite_Damage.prototype.setup; +Sprite_Damage.prototype.setup = function(target) { + var result = target._damagePopup[0]; + Yanfly.ABR.Sprite_Damage_setup.call(this, target); + if (result._barrierAffected) this.setupBarrierEffect(); +}; + +} // Imported.YEP_BattleEngineCore + +Sprite_Damage.prototype.setupBarrierEffect = function() { + this._flashColor = Yanfly.Param.ABRPop.slice(); + this._flashDuration = 180; +}; + +//============================================================================= +// Window_Base +//============================================================================= + +Window_Base.prototype.drawActorHp = function(actor, wx, wy, ww) { + ww = ww || 186; + var color1 = this.hpGaugeColor1(); + var color2 = this.hpGaugeColor2(); + if (actor.barrierPoints() > 0) { + ww = this.drawBarrierGauge(actor, wx, wy, ww); + } else { + this.drawGauge(wx, wy, ww, actor.hpRate(), color1, color2); + } + this.changeTextColor(this.systemColor()); + this.drawText(TextManager.hpA, wx, wy, 44); + var c1 = this.hpColor(actor); + var c2 = this.normalColor(); + this.drawCurrentAndMax(actor.hp, actor.mhp, wx, wy, ww, c1, c2); +}; + +Window_Base.prototype.barrierColor1 = function() { + return this.textColor(Yanfly.Param.ABRColor1); +}; + +Window_Base.prototype.barrierColor2 = function() { + return this.textColor(Yanfly.Param.ABRColor2); +}; + +Window_Base.prototype.drawBarrierGauge = function(actor, wx, wy, ww) { + if (actor.hp + actor.barrierPoints() > actor.mhp) { + var max = actor.mhp + actor.barrierPoints(); + var rate1 = actor.hp / max; + } else { + var max = actor.mhp; + var rate1 = actor.hpRate(); + } + var rate2 = (actor.barrierPoints() + actor.hp) / max; + var color1 = this.barrierColor1(); + var color2 = this.barrierColor2(); + this.drawGauge(wx, wy, ww, rate2, color1, color2); + var color1 = this.hpGaugeColor1(); + var color2 = this.hpGaugeColor2(); + var ww2 = ww * rate1; + this.drawGauge(wx, wy, ww2, 1, color1, color2); + return ww; +}; + +//============================================================================= +// Utilities +//============================================================================= + +Yanfly.Util = Yanfly.Util || {}; + +if (!Yanfly.Util.toGroup) { + Yanfly.Util.toGroup = function(inVal) { + return inVal; + } +}; + +Yanfly.Util.displayError = function(e, code, message) { + console.log(message); + console.log(code || 'NON-EXISTENT'); + console.error(e); + if (Utils.isNwjs() && Utils.isOptionValid('test')) { + if (!require('nw.gui').Window.get().isDevToolsOpen()) { + require('nw.gui').Window.get().showDevTools(); + } + } +}; + +//============================================================================= +// End of File +//============================================================================= diff --git a/worker.js b/worker.js new file mode 100644 index 0000000..18d9fb6 --- /dev/null +++ b/worker.js @@ -0,0 +1,3 @@ +onmessage = function (e) { + debugger +} \ No newline at end of file