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 0000000..07b761b Binary files /dev/null and b/img/scene_ui/scene_menu/skill_cold.png differ 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 0000000..07b761b Binary files /dev/null and b/img/scene_ui/scene_menu/skill_hot.png differ 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 0000000..10d23c3 Binary files /dev/null and b/img/scene_ui/scene_splash/spalsh_health_tip.png differ 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 0000000..03d9d15 Binary files /dev/null and b/img/scene_ui/scene_splash/spalsh_logo.png differ 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 0000000..5e4336f Binary files /dev/null and b/img/scene_ui/scene_splash/splash_adapted.png differ 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