Commit 69cbddab authored by 杨一航's avatar 杨一航

首次提交

parent 9f5f5457
// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
CCEffect %{
techniques:
- passes:
- vert: vs
frag: fs
blendState:
targets:
- blend: true
rasterizerState:
cullMode: none
properties:
texture: { value: white }
alphaThreshold: { value: 0.5 }
}%
CCProgram vs %{
precision highp float;
#include <cc-global>
#include <cc-local>
in vec3 a_position;
in vec4 a_color;
out vec4 v_color;
#if USE_TEXTURE
in vec2 a_uv0;
out vec2 v_uv0;
#endif
void main () {
vec4 pos = vec4(a_position, 1);
#if CC_USE_MODEL
pos = cc_matViewProj * cc_matWorld * pos;
#else
pos = cc_matViewProj * pos;
#endif
#if USE_TEXTURE
v_uv0 = a_uv0;
#endif
v_color = a_color;
gl_Position = pos;
}
}%
CCProgram fs %{
precision highp float;
#include <alpha-test>
#include <texture>
in vec4 v_color;
#if USE_TEXTURE
in vec2 v_uv0;
uniform sampler2D texture;
#endif
void main () {
vec4 o = vec4(1, 1, 1, 1);
vec4 t = vec4(1, 1, 1, 1);
#if USE_TEXTURE
CCTexture(texture, v_uv0, o);
#endif
o *= v_color;
if(distance(o.rgb, t.rgb)<0.3)
o.a =0.0;
ALPHA_TEST(o);
gl_FragColor = o;
}
}%
{
"ver": "1.0.25",
"uuid": "ef2f70bc-84a5-48b7-aa8a-bf495c7a1402",
"compiledShaders": [
{
"glsl1": {
"vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}",
"frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n vec4 t = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n if(distance(o.rgb, t.rgb)<0.3)\n o.a =0.0;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"
},
"glsl3": {
"vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}",
"frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n vec4 t = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n if(distance(o.rgb, t.rgb)<0.3)\n o.a =0.0;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"
}
}
],
"subMetas": {}
}
\ No newline at end of file
{
"__type__": "cc.Material",
"_name": "New Material",
"_objFlags": 0,
"_native": "",
"_effectAsset": {
"__uuid__": "ef2f70bc-84a5-48b7-aa8a-bf495c7a1402"
},
"_techniqueIndex": 0,
"_techniqueData": {
"0": {
"defines": {
"USE_TEXTURE": true
}
}
}
}
\ No newline at end of file
{
"ver": "1.0.3",
"uuid": "c4fd8197-4506-45a8-84a5-887e2c4e71ed",
"dataAsSubAsset": null,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "cb9fa4ea-66ca-45af-ad31-e445c7b0ef32",
"uuid": "4e04c6f6-d507-4b03-b5d5-0228776e0e02",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "2.0.1",
"uuid": "537c47fc-8421-4043-8465-69956a09594f",
"downloadMode": 0,
"duration": 3.448163,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "beb9ebd0-f1eb-462f-a629-f8de8c06dc7a",
"downloadMode": 0,
"duration": 0.873878,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "cea5587b-af50-40ca-b249-8adf586ed31c",
"downloadMode": 0,
"duration": 3.474286,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "ab4124ed-e3fd-4436-8c94-1fe388f215ae",
"downloadMode": 0,
"duration": 0.372875,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "cc6df8ec-94fa-43c7-99cf-3e6ca74283eb",
"downloadMode": 0,
"duration": 0.45102,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "095ead76-b9b5-47ef-b562-3eb09bd10b31",
"downloadMode": 0,
"duration": 1.808583,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "61c90b3d-7147-46b8-a8e9-b7f19726196f",
"downloadMode": 0,
"duration": 0.6818,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "0853721c-3f55-4eb2-873d-e3081cfadd4b",
"uuid": "370539af-88f9-4070-b05f-839ef4d1f6fd",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{"frameRate":24,"name":"grow","version":"5.5","compatibleVersion":"5.5","armature":[{"type":"Armature","frameRate":24,"name":"Armature","aabb":{"x":-12.03,"y":87.9,"width":114,"height":114},"bone":[{"name":"root","transform":{"skX":0.8267,"skY":0.8267}},{"name":"bone","parent":"root","transform":{"x":1040.062,"y":-391.2294}},{"name":"point10","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point9","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point8","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point7","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point6","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point1","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point2","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point4","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point5","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point3","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}},{"name":"point","parent":"bone","transform":{"skX":-2.9955,"skY":-2.9955}}],"slot":[{"name":"生长光点","parent":"point","color":{"aM":0}},{"name":"生长光点1","parent":"point1","color":{"aM":0}},{"name":"生长光点2","parent":"point2","color":{"aM":0}},{"name":"生长光点3","parent":"point3","color":{"aM":0}},{"name":"生长光点4","parent":"point4","color":{"aM":0}},{"name":"生长光点5","parent":"point5","color":{"aM":0}},{"name":"生长光点6","parent":"point6","color":{"aM":0}},{"name":"生长光点7","parent":"point7","color":{"aM":0}},{"name":"生长光点8","parent":"point8","color":{"aM":0}},{"name":"生长光点9","parent":"point9","color":{"aM":0}},{"name":"生长光点10","parent":"point10","color":{"aM":0}}],"skin":[{"slot":[{"name":"生长光点6","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点7","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点9","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点3","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点2","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点5","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点8","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点4","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点1","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]},{"name":"生长光点10","display":[{"name":"生长光点","transform":{"x":-1019.63,"y":482.84}}]}]}],"animation":[{"duration":30,"playTimes":0,"name":"normal","bone":[{"name":"point","translateFrame":[{"duration":17,"tweenEasing":0,"x":-92,"y":175},{"duration":13,"x":-92,"y":-213}]},{"name":"point1","translateFrame":[{"duration":24,"tweenEasing":0,"x":0.5,"y":192.5},{"duration":6,"x":0.5,"y":-376.5}]},{"name":"point2","translateFrame":[{"duration":16,"tweenEasing":0,"x":-46.5,"y":165.5},{"duration":14,"x":-46.5,"y":-339.5}]},{"name":"point3","translateFrame":[{"duration":20,"tweenEasing":0,"x":-132.5,"y":193},{"duration":10,"x":-132.5,"y":-293}]},{"name":"point4","translateFrame":[{"duration":18,"tweenEasing":0,"x":56,"y":200.5},{"duration":12,"x":7.5,"y":-130}]},{"name":"point5","translateFrame":[{"duration":30,"tweenEasing":0,"x":-51,"y":153.5},{"duration":0,"x":-51,"y":-154}]},{"name":"point6","translateFrame":[{"duration":20,"tweenEasing":0,"x":-76,"y":188.5},{"duration":10,"x":-71.5,"y":-407}]},{"name":"point7","translateFrame":[{"duration":22,"tweenEasing":0,"x":27.5,"y":206},{"duration":8,"x":27.5,"y":-242.5}]},{"name":"point8","translateFrame":[{"duration":15,"tweenEasing":0,"x":-105,"y":164},{"duration":15,"x":-105,"y":-112}]},{"name":"point9","translateFrame":[{"duration":26,"tweenEasing":0,"x":-16,"y":180},{"duration":4,"x":-16,"y":-211.5}]},{"name":"point10","translateFrame":[{"duration":28,"tweenEasing":0,"x":-80.5,"y":149.5},{"duration":2,"x":-48,"y":-276.5}]}],"slot":[{"name":"生长光点","colorFrame":[{"duration":3,"tweenEasing":0,"value":{"aM":0}},{"duration":12,"tweenEasing":0},{"duration":2,"tweenEasing":0},{"duration":13,"value":{"aM":0}}]},{"name":"生长光点1","colorFrame":[{"duration":4,"tweenEasing":0,"value":{"aM":0}},{"duration":18,"tweenEasing":0},{"duration":2,"tweenEasing":0},{"duration":6,"value":{"aM":0}}]},{"name":"生长光点2","colorFrame":[{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":8,"tweenEasing":0},{"duration":3,"tweenEasing":0},{"duration":14,"value":{"aM":0}}]},{"name":"生长光点3","colorFrame":[{"duration":4,"tweenEasing":0,"value":{"aM":0}},{"duration":13,"tweenEasing":0},{"duration":3,"tweenEasing":0},{"duration":10,"value":{"aM":0}}]},{"name":"生长光点4","colorFrame":[{"duration":6,"tweenEasing":0,"value":{"aM":0}},{"duration":10,"tweenEasing":0},{"duration":2,"tweenEasing":0},{"duration":12,"value":{"aM":0}}]},{"name":"生长光点5","colorFrame":[{"duration":7,"tweenEasing":0,"value":{"aM":0}},{"duration":19,"tweenEasing":0},{"duration":4,"tweenEasing":0},{"duration":0,"value":{"aM":0}}]},{"name":"生长光点6","colorFrame":[{"duration":6,"tweenEasing":0,"value":{"aM":0}},{"duration":11,"tweenEasing":0},{"duration":3,"tweenEasing":0},{"duration":10,"value":{"aM":0}}]},{"name":"生长光点7","colorFrame":[{"duration":3,"tweenEasing":0,"value":{"aM":0}},{"duration":16,"tweenEasing":0},{"duration":3,"tweenEasing":0},{"duration":8,"value":{"aM":0}}]},{"name":"生长光点8","colorFrame":[{"duration":2,"tweenEasing":0,"value":{"aM":0}},{"duration":10,"tweenEasing":0},{"duration":3,"tweenEasing":0},{"duration":15,"value":{"aM":0}}]},{"name":"生长光点9","colorFrame":[{"duration":4,"tweenEasing":0,"value":{"aM":0}},{"duration":19,"tweenEasing":0},{"duration":3,"tweenEasing":0},{"duration":4,"value":{"aM":0}}]},{"name":"生长光点10","colorFrame":[{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":20,"tweenEasing":0},{"duration":3,"tweenEasing":0},{"duration":2,"value":{"aM":0}}]}]}],"defaultActions":[{"gotoAndPlay":"normal"}],"canvas":{"width":382,"height":756}},{"type":"MovieClip","frameRate":24,"name":"MovieClip","bone":[{"name":"root"}],"defaultActions":[{}]}]}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "2cbc7932-28f4-4d7b-aeb3-91c911b327b8",
"subMetas": {}
}
\ No newline at end of file
{"name":"grow","SubTexture":[{"name":"生长光点","x":1,"height":114,"y":1,"width":114}],"height":128,"imagePath":"grow_tex.png","width":128}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "e47cb5dc-7c1c-40b8-bebd-b5d38b29bd67",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "c226ed40-5543-4c0e-80a0-8541b2742fee",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 128,
"height": 128,
"platformSettings": {},
"subMetas": {
"grow_tex": {
"ver": "1.0.4",
"uuid": "0dd89649-d100-40ec-9896-7c45c353cfb1",
"rawTextureUuid": "c226ed40-5543-4c0e-80a0-8541b2742fee",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -6,
"offsetY": 6,
"trimX": 1,
"trimY": 1,
"width": 114,
"height": 114,
"rawWidth": 128,
"rawHeight": 128,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
This diff is collapsed.
{
"ver": "1.0.1",
"uuid": "54d74dcb-3444-46b6-967a-884d4e8867e9",
"subMetas": {}
}
\ No newline at end of file
This diff is collapsed.
{
"ver": "1.0.1",
"uuid": "2241d503-736a-48c3-b0cb-ce0cb42379f3",
"subMetas": {}
}
\ No newline at end of file
{"width":256,"imagePath":"mao_ske_tex.png","height":512,"name":"mao_ske","SubTexture":[{"width":169,"y":175,"height":33,"name":"猫01/影子","x":64},{"width":88,"y":299,"height":55,"name":"猫01/尾巴","x":1},{"width":52,"y":210,"height":59,"name":"猫01/右腿","x":126},{"width":32,"y":249,"height":58,"name":"猫01/左腿","x":181},{"width":35,"y":335,"height":61,"name":"猫01/右手","x":178},{"width":62,"y":210,"height":37,"name":"猫01/左手","x":180},{"width":84,"y":1,"height":85,"name":"猫01伸/左手伸直","x":151},{"width":84,"y":88,"height":85,"name":"猫01伸/右手伸直","x":151},{"width":61,"y":207,"height":90,"name":"猫01/身体","x":1},{"width":60,"y":210,"height":78,"name":"猫01/领带","x":64},{"width":45,"y":369,"height":38,"name":"猫01/右耳","x":46},{"width":43,"y":356,"height":43,"name":"猫01/左耳","x":1},{"width":148,"y":1,"height":93,"name":"猫01/组_1","x":1},{"width":30,"y":249,"height":30,"name":"猫01/右眼","x":215},{"width":17,"y":285,"height":3,"name":"猫01/右眉毛","x":161},{"width":30,"y":401,"height":30,"name":"猫01/左眼","x":1},{"width":16,"y":290,"height":6,"name":"猫01/左眉毛","x":64},{"width":85,"y":335,"height":32,"name":"猫01/眼镜","x":91},{"width":88,"y":290,"height":43,"name":"猫01/胡子","x":91},{"width":14,"y":271,"height":12,"name":"猫01/鼻子","x":161},{"width":33,"y":271,"height":15,"name":"猫01/嘴","x":126},{"width":79,"y":96,"height":51,"name":"猫01/帽子","x":64},{"width":61,"y":96,"height":109,"name":"猫拿话筒(1)/左小手","x":1}]}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "8ec09651-e5e1-4946-bd0a-226590f5cd22",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a51632dd-73b8-42bd-9ab2-d2b15164086a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 256,
"height": 512,
"platformSettings": {},
"subMetas": {
"mao_ske_tex": {
"ver": "1.0.4",
"uuid": "44fef234-0c33-4a45-97ee-da0241385b79",
"rawTextureUuid": "a51632dd-73b8-42bd-9ab2-d2b15164086a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -5,
"offsetY": 40,
"trimX": 1,
"trimY": 1,
"width": 244,
"height": 430,
"rawWidth": 256,
"rawHeight": 512,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{"name":"mao","imagePath":"mao_tex.png","SubTexture":[{"name":"猫01/影子","x":1,"height":66,"y":343,"width":337},{"name":"猫01/尾巴","x":1,"height":109,"y":188,"width":175},{"name":"猫01/右腿","x":178,"height":117,"y":188,"width":104},{"name":"猫01/左腿","x":1,"height":115,"y":569,"width":64},{"name":"猫01/右手","x":427,"height":122,"y":590,"width":69},{"name":"猫01/左手","x":301,"height":74,"y":590,"width":124},{"name":"猫01伸/左手伸直","x":299,"height":169,"y":1,"width":168},{"name":"猫01伸/右手伸直","x":299,"height":169,"y":172,"width":168},{"name":"猫01/身体","x":340,"height":180,"y":343,"width":122},{"name":"猫01/领带","x":1,"height":156,"y":411,"width":120},{"name":"猫01/右耳","x":155,"height":76,"y":602,"width":90},{"name":"猫01/左耳","x":67,"height":85,"y":602,"width":86},{"name":"猫01/组_1","x":1,"height":185,"y":1,"width":296},{"name":"猫01/右眼","x":1,"height":60,"y":686,"width":59},{"name":"猫01/右眉毛","x":67,"height":5,"y":595,"width":33},{"name":"猫01/左眼","x":247,"height":60,"y":666,"width":59},{"name":"猫01/左眉毛","x":247,"height":12,"y":602,"width":31},{"name":"猫01/眼镜","x":301,"height":63,"y":525,"width":170},{"name":"猫01/胡子","x":123,"height":85,"y":515,"width":176},{"name":"猫01/鼻子","x":67,"height":24,"y":569,"width":28},{"name":"猫01/嘴","x":1,"height":30,"y":299,"width":65},{"name":"猫01/帽子","x":123,"height":102,"y":411,"width":158}],"height":1024,"width":512}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "29e803ff-5143-4001-8188-7de2e95472e9",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "07f61a8c-9ce2-4101-927f-19aeabc68504",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 512,
"height": 1024,
"platformSettings": {},
"subMetas": {
"mao_tex": {
"ver": "1.0.4",
"uuid": "a2a54784-6be0-4320-83fa-c7a00f88808b",
"rawTextureUuid": "07f61a8c-9ce2-4101-927f-19aeabc68504",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -7.5,
"offsetY": 138.5,
"trimX": 1,
"trimY": 1,
"width": 495,
"height": 745,
"rawWidth": 512,
"rawHeight": 1024,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{"frameRate":24,"name":"vs","version":"5.5","compatibleVersion":"5.5","armature":[{"type":"Armature","frameRate":24,"name":"Armature","aabb":{"x":-296.5,"y":-297,"width":593,"height":594},"bone":[{"name":"root"},{"name":"star","parent":"root"},{"name":"vs","parent":"root"},{"name":"star1","parent":"root"},{"name":"star11","parent":"root"},{"name":"star12","parent":"root"},{"name":"star13","parent":"root"},{"name":"star14","parent":"root"},{"name":"star15","parent":"root"},{"name":"star16","parent":"root"},{"name":"star17","parent":"root"},{"name":"star18","parent":"root"},{"name":"star19","parent":"root"},{"name":"star110","parent":"root"}],"slot":[{"name":"star_01","parent":"star","color":{"aM":0}},{"name":"star_011","parent":"star1","color":{"aM":0}},{"name":"star_0111","parent":"star11","color":{"aM":0}},{"name":"star_0112","parent":"star12","color":{"aM":0}},{"name":"star_0113","parent":"star13","color":{"aM":0}},{"name":"star_0114","parent":"star14","color":{"aM":0}},{"name":"star_0115","parent":"star15","color":{"aM":0}},{"name":"star_0116","parent":"star16","color":{"aM":0}},{"name":"star_0117","parent":"star17","color":{"aM":0}},{"name":"star_0118","parent":"star18","color":{"aM":0}},{"name":"star_0119","parent":"star19","color":{"aM":0}},{"name":"star_01110","parent":"star110","color":{"aM":0}},{"name":"img_vs","parent":"vs"}],"skin":[{"slot":[{"name":"star_0115","display":[{"name":"star_01"}]},{"name":"star_0111","display":[{"name":"star_01"}]},{"name":"star_0118","display":[{"name":"star_01"}]},{"name":"star_01","display":[{"name":"star_01"}]},{"name":"star_011","display":[{"name":"star_01"}]},{"name":"img_vs","display":[{"name":"img_vs"}]},{"name":"star_0113","display":[{"name":"star_01"}]},{"name":"star_0117","display":[{"name":"star_01"}]},{"name":"star_0119","display":[{"name":"star_01"}]},{"name":"star_0116","display":[{"name":"star_01"}]},{"name":"star_01110","display":[{"name":"star_01"}]},{"name":"star_0112","display":[{"name":"star_01"}]},{"name":"star_0114","display":[{"name":"star_01"}]}]}],"animation":[{"duration":35,"playTimes":0,"name":"normal","bone":[{"name":"star","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":-293.5}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"vs","scaleFrame":[{"duration":6,"tweenEasing":0},{"duration":8,"tweenEasing":0,"x":1.47,"y":1.47},{"duration":11,"tweenEasing":0,"x":1.47,"y":1.47},{"duration":10}]},{"name":"star1","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":388.5}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star11","translateFrame":[{"duration":20},{"duration":11,"tweenEasing":0},{"duration":4,"x":-315,"y":-153.5}],"scaleFrame":[{"duration":20},{"duration":11,"tweenEasing":0},{"duration":4,"x":-0.36,"y":-0.36}]},{"name":"star12","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":-189,"y":277}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star13","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":-165,"y":-345.5}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star14","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":125,"y":297}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star15","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":129.5,"y":-340}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star16","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":199.5,"y":247.5}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star17","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"y":-389}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star18","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":-32.5,"y":370.5}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star19","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":-311.5,"y":181.5}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]},{"name":"star110","translateFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":321,"y":-202}],"scaleFrame":[{"duration":20},{"duration":15,"tweenEasing":0},{"duration":0,"x":0.01,"y":0.01}]}],"slot":[{"name":"star_01","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":10}]},{"name":"star_011","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0},{"duration":4,"tweenEasing":0},{"duration":0,"value":{"aM":0}}]},{"name":"star_0111","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0},{"duration":4,"tweenEasing":0},{"duration":0,"value":{"aM":0}}]},{"name":"star_0112","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0},{"duration":4,"tweenEasing":0},{"duration":0,"value":{"aM":0}}]},{"name":"star_0113","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0},{"duration":4,"tweenEasing":0},{"duration":0,"value":{"aM":0}}]},{"name":"star_0114","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":10}]},{"name":"star_0115","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0,"value":{"aM":0}},{"duration":10}]},{"name":"star_0116","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0,"value":{"aM":0}},{"duration":9}]},{"name":"star_0117","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0,"value":{"aM":0}},{"duration":9}]},{"name":"star_0118","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0,"value":{"aM":0}},{"duration":9}]},{"name":"star_0119","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0},{"duration":4,"tweenEasing":0},{"duration":0,"value":{"aM":0}}]},{"name":"star_01110","colorFrame":[{"duration":20,"tweenEasing":0,"value":{"aM":0}},{"duration":6,"tweenEasing":0,"value":{"aM":0}},{"duration":5,"tweenEasing":0},{"duration":4,"tweenEasing":0},{"duration":0,"value":{"aM":0}}]}],"zOrder":{"frame":[{"duration":35}]}}],"defaultActions":[{"gotoAndPlay":"normal"}],"canvas":{"width":1024,"height":1024}},{"type":"MovieClip","frameRate":24,"name":"MovieClip","bone":[{"name":"root"}],"defaultActions":[{}]}]}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "b667ff81-473f-4c7a-aa8c-81d83296e459",
"subMetas": {}
}
\ No newline at end of file
{"name":"vs","SubTexture":[{"name":"star_01","x":1,"height":169,"y":597,"width":174},{"name":"img_vs","x":1,"height":594,"y":1,"width":593}],"height":1024,"imagePath":"vs_tex.png","width":1024}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "04b2b9d0-6e85-475c-b5a6-6b7362e8f102",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a87b2222-b749-4279-9454-867458fc27dd",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1024,
"height": 1024,
"platformSettings": {},
"subMetas": {
"vs_tex": {
"ver": "1.0.4",
"uuid": "831eb023-92e7-4fad-9744-02b7acf59eaa",
"rawTextureUuid": "a87b2222-b749-4279-9454-867458fc27dd",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -214.5,
"offsetY": 128.5,
"trimX": 1,
"trimY": 1,
"width": 593,
"height": 765,
"rawWidth": 1024,
"rawHeight": 1024,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "20185448-a1ca-4de2-8b37-7bf6cdfccbae",
"uuid": "3c361c52-67f1-44e4-8413-e4daaeb7e230",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "1.1.2",
"uuid": "0ed6f350-a632-438b-a7cd-ffaa14555c08",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
export as namespace Play;
declare class EventEmitter<T> {
on<K extends keyof T>(event: K, listener: (payload: T[K]) => any): this;
on(evt: string, listener: Function): this;
once<K extends keyof T>(event: K, listener: (payload: T[K]) => any): this;
once(evt: string, listener: Function): this;
off<K extends keyof T>(evt: K | string, listener?: Function): this;
emit<K extends keyof T>(evt: K | string, ...args: any[]): boolean;
}
export enum Event {
/** 断开连接 */
DISCONNECTED = 'disconnected',
/** 加入到大厅 */
LOBBY_JOINED = 'lobbyJoined',
/** 大厅房间列表变化 */
LOBBY_ROOM_LIST_UPDATED = 'lobbyRoomListUpdate',
/** 有新玩家加入房间 */
PLAYER_ROOM_JOINED = 'newPlayerJoinedRoom',
/** 有玩家离开房间 */
PLAYER_ROOM_LEFT = 'playerLeftRoom',
/** 玩家活跃属性变化 */
PLAYER_ACTIVITY_CHANGED = 'playerActivityChanged',
/** 主机变更 */
MASTER_SWITCHED = 'masterSwitched',
/** 离开房间 */
ROOM_LEFT = 'roomLeft',
/** 被踢出房间 */
ROOM_KICKED = 'roomKicked',
/** 房间系统属性变化 */
ROOM_SYSTEM_PROPERTIES_CHANGED = 'roomSystemPropertiesChanged',
/** 房间自定义属性变化 */
ROOM_CUSTOM_PROPERTIES_CHANGED = 'roomCustomPropertiesChanged',
/** 玩家自定义属性变化 */
PLAYER_CUSTOM_PROPERTIES_CHANGED = 'playerCustomPropertiesChanged',
/** 自定义事件 */
CUSTOM_EVENT = 'customEvent',
/** 错误事件 */
ERROR = 'error',
}
export enum ReceiverGroup {
/** 其他人(除了自己之外的所有人) */
Others,
/** 所有人(包括自己) */
All,
/** 主机客户端 */
MasterClient,
}
interface CustomProperties {
[key: string]: any;
}
interface CustomEventData {
[key: string]: any;
}
interface ErrorEvent {
code: number;
detail: string;
}
declare interface PlayEvent {
connected: void;
connectFailed: ErrorEvent;
disconnected: void;
lobbyJoined: void;
lobbyLeft: void;
lobbyRoomListUpdate: void;
roomCreated: void;
roomCreateFailed: ErrorEvent;
roomJoined: void;
roomJoinFailed: ErrorEvent;
newPlayerJoinedRoom: {
newPlayer: Player;
};
playerLeftRoom: {
leftPlayer: Player;
};
playerActivityChanged: {
player: Player;
};
masterSwitched: {
newMaster: Player;
};
roomLeft: void;
roomKicked: {
code: number;
msg: string;
};
roomCustomPropertiesChanged: {
changedProps: CustomProperties;
};
roomSystemPropertiesChanged: {
changedProps: CustomProperties;
};
playerCustomPropertiesChanged: {
player: Player;
changedProps: CustomProperties;
};
customEvent: {
eventId: number;
eventData: CustomEventData;
senderId: number;
};
error: ErrorEvent;
}
export class LobbyRoom {
readonly roomName: string;
readonly maxPlayerCount: number;
readonly expectedUserIds: string[];
readonly emptyRoomTtl: number;
readonly playerTtl: number;
readonly playerCount: number;
readonly customRoomPropertiesForLobby: CustomProperties;
}
export class Player {
readonly userId: string;
readonly actorId: number;
readonly isLocal: boolean;
readonly isMaster: boolean;
readonly isActive: boolean;
setCustomProperties(
properties: CustomProperties,
opts?: {
expectedValues?: CustomProperties;
}
): Promise<void>;
readonly customProperties: CustomProperties;
}
export class Room {
readonly name: string;
readonly open: boolean;
readonly visible: boolean;
readonly maxPlayerCount: number;
readonly master: Player;
readonly masterId: number;
readonly expectedUserIds: string[];
readonly playerList: Player[];
getPlayer(actorId: number): Player;
setCustomProperties(
properties: CustomProperties,
opts?: {
expectedValues?: CustomProperties;
}
): Promise<void>;
readonly customProperties: CustomProperties;
setOpen(open: boolean): Promise<void>;
setVisible(visible: boolean): Promise<void>;
setRoomMaxPlayerCount(count: number): Promise<void>;
setRoomExpectedUserIds(expectedUserIds: string[]): Promise<void>;
clearRoomExpectedUserIds(): Promise<void>;
addRoomExpectedUserIds(expectedUserIds: string[]): Promise<void>;
removeRoomExpectedUserIds(expectedUserIds: string[]): Promise<void>;
setMaster(newMasterId: number): Promise<void>;
sendEvent(
eventId: number,
eventData?: CustomEventData,
options?: {
receiverGroup?: ReceiverGroup;
targetActorIds?: number[];
}
): Promise<void>;
kickPlayer(
actorId: number,
opts?: {
code?: number;
msg?: string;
}
): Promise<void>;
leave(): Promise<void>;
}
export class Client extends EventEmitter<PlayEvent> {
readonly room: Room;
readonly player: Player;
readonly lobbyRoomList: LobbyRoom[];
userId: string;
constructor(opts: {
appId: string;
appKey: string;
userId: string;
ssl?: boolean;
feature?: string;
gameVersion?: string;
playServer?: string;
});
connect(): Promise<Client>;
reconnect(): Promise<Client>;
reconnectAndRejoin(): Promise<Room>;
close(): Promise<void>;
joinLobby(): Promise<void>;
leaveLobby(): Promise<void>;
createRoom(opts?: {
roomName?: string;
roomOptions?: Object;
expectedUserIds?: string[];
}): Promise<Room>;
joinRoom(
roomName: string,
opts?: {
expectedUserIds?: string[];
}
): Promise<Room>;
rejoinRoom(roomName: string): Promise<Room>;
joinOrCreateRoom(
roomName: string,
opts?: {
roomOptions?: Object;
expectedUserIds: string[];
}
): Promise<Room>;
joinRandomRoom(opts?: {
matchProperties?: Object;
expectedUserIds?: string[];
}): Promise<Room>;
matchRandom(
piggybackPeerId: string,
opts?: { matchProperties?: Object; expectedUserIds?: string[] }
): Promise<LobbyRoom>;
setRoomOpen(open: boolean): Promise<void>;
setRoomVisible(visible: boolean): Promise<void>;
setRoomMaxPlayerCount(count: number): Promise<void>;
setRoomExpectedUserIds(expectedUserIds: string[]): Promise<void>;
clearRoomExpectedUserIds(): Promise<void>;
addRoomExpectedUserIds(expectedUserIds: string[]): Promise<void>;
removeRoomExpectedUserIds(expectedUserIds: string[]): Promise<void>;
setMaster(newMasterId: number): Promise<void>;
sendEvent(
eventId: number,
eventData?: CustomEventData,
options?: {
receiverGroup?: ReceiverGroup;
targetActorIds?: number[];
}
): Promise<void>;
leaveRoom(): Promise<void>;
kickPlayer(
actorId: number,
opts?: {
code?: number;
msg?: string;
}
): Promise<void>;
pauseMessageQueue(): void;
resumeMessageQueue(): void;
}
export enum CreateRoomFlag {
FixedMaster = 1,
MasterUpdateRoomProperties = 2,
}
export function setAdapters(newAdapters: { WebSocket: Function }): void;
export enum LogLevel {
Debug = 'Debug',
Warn = 'Warn',
Error = 'Error',
}
export function setLogger(logger: {
Debug: (...args: any[]) => any;
Warn: (...args: any[]) => any;
Error: (...args: any[]) => any;
}): void;
export enum PlayErrorCode {
OPEN_WEBSOCKET_ERROR = 10001,
SEND_MESSAGE_STATE_ERROR = 10002,
}
export function registerType<T>(
type: T,
typeId: number,
serializeMethod: (obj: T) => Uint8Array,
deserializeMethod: (bytes: Uint8Array) => T
): void;
export function serializeObject(obj: Object): Uint8Array;
export function deserializeObject(bytes: Uint8Array): Object;
{
"ver": "2.0.0",
"uuid": "809d5125-8be7-46c1-a074-d261695a1d28",
"subMetas": {}
}
\ No newline at end of file
This diff is collapsed.
{
"ver": "1.0.8",
"uuid": "b54300af-b8e5-4b4e-aa2f-9ac1cef7b598",
"uuid": "cfa7cdc2-c0ee-4c9c-a7c3-7f0ecfbd1fe3",
"isPlugin": true,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"loadPluginInEditor": true,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "ae9d6371-8262-467d-92f7-6e8629daeb39",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "e4adacdc-b69e-4b44-8553-57bf765abe03",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.2.9",
"uuid": "eeb30776-64d3-4ec2-962b-a1f4bee3b27d",
"optimizationPolicy": "SINGLE_INSTANCE",
"asyncLoadAssets": false,
"readonly": false,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "4a90b75e-c76d-4c4a-967f-7eef5822da89",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.0",
"uuid": "343540a1-2609-4367-b74f-cfa6d2e2cb6b",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "e1b4d971-9876-4832-803a-5a321964a78b",
"uuid": "0a933136-2f52-4fa8-ae58-f0de6b381f41",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 720,
"width": 2176,
"height": 1600,
"platformSettings": {},
"subMetas": {
"bg": {
"ver": "1.0.4",
"uuid": "8288e3d4-4c75-4b27-8f01-f7014417f4dd",
"rawTextureUuid": "e1b4d971-9876-4832-803a-5a321964a78b",
"uuid": "f29707ed-4120-4cee-8b97-e7a7ed611557",
"rawTextureUuid": "0a933136-2f52-4fa8-ae58-f0de6b381f41",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 720,
"rawWidth": 1280,
"rawHeight": 720,
"width": 2176,
"height": 1600,
"rawWidth": 2176,
"rawHeight": 1600,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "1.1.0",
"uuid": "34b18543-1119-458b-928b-969e7e48d0fd",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a2433807-efd6-466a-a0a3-3ab3f0a5dbf6",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "point",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1568,
"height": 32,
"platformSettings": {},
"subMetas": {
"progress_bar": {
"ver": "1.0.4",
"uuid": "b435887d-bae1-49a8-bd0c-aeeeda4c6c73",
"rawTextureUuid": "a2433807-efd6-466a-a0a3-3ab3f0a5dbf6",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1568,
"height": 32,
"rawWidth": 1568,
"rawHeight": 32,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "cd5a4b74-7b02-4477-988a-744a7be97b61",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "point",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1578,
"height": 42,
"platformSettings": {},
"subMetas": {
"progress_bg": {
"ver": "1.0.4",
"uuid": "afa1a774-a1cf-4476-b01f-bdc83069f46c",
"rawTextureUuid": "cd5a4b74-7b02-4477-988a-744a7be97b61",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1578,
"height": 42,
"rawWidth": 1578,
"rawHeight": 42,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "37c4e6f0-5f20-4a83-8e31-321837bf1c40",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": true,
"genMipmaps": false,
"packable": true,
"width": 280,
"height": 280,
"platformSettings": {},
"subMetas": {
"tx_01": {
"ver": "1.0.4",
"uuid": "61f66300-e031-447d-9107-251b09648d7a",
"rawTextureUuid": "37c4e6f0-5f20-4a83-8e31-321837bf1c40",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 280,
"height": 280,
"rawWidth": 280,
"rawHeight": 280,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d582359e-924e-4ee9-9964-1fc4bb417e71",
"uuid": "ef6d8c0a-f5c5-42fa-b25d-dcd50f04a3e3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 61,
"height": 67,
"width": 258,
"height": 258,
"platformSettings": {},
"subMetas": {
"btn_right": {
"tx_01zw": {
"ver": "1.0.4",
"uuid": "e5a2dbaa-a677-4a32-90d7-a1b057d7fb59",
"rawTextureUuid": "d582359e-924e-4ee9-9964-1fc4bb417e71",
"uuid": "59b5cf19-b997-4572-b537-8b94f22b26bf",
"rawTextureUuid": "ef6d8c0a-f5c5-42fa-b25d-dcd50f04a3e3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -0.5,
"offsetY": 0.5,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 60,
"height": 66,
"rawWidth": 61,
"rawHeight": 67,
"width": 258,
"height": 258,
"rawWidth": 258,
"rawHeight": 258,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "96aa5a20-e629-42ba-8e51-405e6ab04003",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 388,
"height": 388,
"platformSettings": {},
"subMetas": {
"tx_xuanzhong": {
"ver": "1.0.4",
"uuid": "922c0839-c8d1-4f42-936b-1be1d3bb6af5",
"rawTextureUuid": "96aa5a20-e629-42ba-8e51-405e6ab04003",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 388,
"height": 388,
"rawWidth": 388,
"rawHeight": 388,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "e8bd16b0-3804-45a9-a8ca-f52c02224f55",
"uuid": "72652a56-70f9-425d-beee-3fcebf5156b1",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
const { ccclass, property } = cc._decorator;
@ccclass
export default class BoardCardItem extends cc.Component {
_cardId: number;
_rjumpId: number;
_wjumpId: number;
_cardUrl: string;
_word: string;
letter: string = '';
set cardData(data: { id: number, rJumpId: number, wJumpId?: number, url: string, word: string }) {
this._cardId = data.id;
this._rjumpId = data.rJumpId;
this._wjumpId = data.wJumpId;
this._cardUrl = data.url;
this._word = data.word;
}
get Id() {
return this._cardId;
}
get rjumpId() {
return this._rjumpId;
}
get wjumpId() {
return this._wjumpId;
}
}
{
"ver": "1.0.8",
"uuid": "d0c4be55-8094-4115-abdf-7fb6dec9f838",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
{
"ver": "1.1.2",
"uuid": "b0c008bc-cf92-463b-8360-0984e13c2e4d",
"uuid": "29175a7a-2e58-4ab5-bf16-bb9a736db9af",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
import BoardCardItem from "../scene/boardCardItem";
import { NetworkHelper } from "./NetworkHelper";
import { asyncDelay } from "./util";
export class AI {
networkHelper: NetworkHelper;
playerData: any;
_status = {
state: -1,// -1:未开始 0 准备阶段 1 roll 2 判定
Red: -1,
Blue: 0,
step: 0,
current: "Blue",
jump: null,
};
constructor(networkHelper: NetworkHelper, playerData: any) {
this.networkHelper = networkHelper;
this.playerData = playerData;
}
async onFrameEvent(data) {
console.log("AI get event: " + JSON.stringify(data));
if (data.type == "SERVER_updateStatus") {
this._status = JSON.parse(JSON.stringify(data.status));
if (this.playerData.color != this._status.current) return
if (!this._status.step) {
await asyncDelay(Math.random() * 3 + 2);
console.log("AI rolling");
this.networkHelper.sendFrame({
type: "roll",
uuid: this.playerData.uuid,
});
} else {
await asyncDelay(Math.random() * 3 + 2);
if (Math.random() < 0.7) {
this.networkHelper.sendFrame({
type: "right",
uuid: this.playerData.uuid,
});
} else {
this.networkHelper.sendFrame({
type: "wrong",
uuid: this.playerData.uuid,
});
}
}
}
}
}
{
"ver": "1.0.8",
"uuid": "b34ee12d-9170-469d-8bfc-e972bcfdec10",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
import { asyncPlayDragonBoneAnimation } from "./util";
const { ccclass, property } = cc._decorator;
@ccclass
export default class LoadingLayer extends cc.Component {
ctor() {
}
// 生命周期 onLoad
onLoad() {
// this.initSize();
}
_designSize; // 设计分辨率
_frameSize; // 屏幕分辨率
_mapScaleMin; // 场景中常用缩放(取大值)
_mapScaleMax; // 场景中常用缩放(取小值)
_cocosScale; // cocos 自缩放 (较少用到)
initSize() {
// 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
let screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height
let design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height
let f = screen_size >= design_size
cc.Canvas.instance.fitHeight = f
cc.Canvas.instance.fitWidth = !f
const frameSize = cc.view.getFrameSize();
this._frameSize = frameSize;
this._designSize = cc.view.getDesignResolutionSize();
let sx = cc.winSize.width / frameSize.width;
let sy = cc.winSize.height / frameSize.height;
this._cocosScale = Math.min(sx, sy);
sx = frameSize.width / this._designSize.width;
sy = frameSize.height / this._designSize.height;
this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
}
// 生命周期 start
async start() {
this.updateLabel('创建房间中');
this.progressTo(0.1, 1);
await this.asyncDelay(1);
this.updateLabel('匹配小伙伴中');
}
async initView() {
this.setMaxPlayerNumber(5);
}
_maxPlayerNum;
setMaxPlayerNumber(number) {
this._maxPlayerNum = number;
}
_playerList;
addPlayer(name, isSelf, headUrl, uuid) {
if (!this._playerList) {
this._playerList = [];
}
if (this._playerList.find(player => player.uuid == uuid)) {
return;
}
this._playerList.push({ name, isSelf, headUrl, uuid });
console.log('name = ' + name);
const layout = cc.find('layout', this.node);
const headNode = cc.instantiate(cc.find('head', this.node));
headNode.x = 0;
headNode.y = 0;
headNode.active = true;
const frameSelf = cc.find('frame_self', headNode);
if (!isSelf) {
frameSelf.opacity = 0;
}
const nameLabel = cc.find('name', headNode);
nameLabel.getComponent(cc.Label).string = name;
const headImg = cc.find('mask/headImg', headNode);
this.loadSpriteByUrl(headImg, headUrl, () => {
const scale = Math.max(
headImg.parent.width / headImg.width,
headImg.parent.height / headImg.height
);
headImg.scale = scale;
});
if (this._playerList.length == 1) {
cc.find('left', this.node).addChild(headNode);
} else {
cc.find('right', this.node).addChild(headNode);
const vs = cc.find('vs', this.node);
asyncPlayDragonBoneAnimation(vs, 'normal', 1);
this.playLocalAudio('match');
}
const rate = Math.min(1, this._playerList.length / this._maxPlayerNum);
if (rate == 1) {
this.updateLabel('同步中');
}
this.progressTo(rate, 3);
}
_onLoadFinishFunc;
onLoadFinished(func) {
this._onLoadFinishFunc = func;
}
async asyncDelay(time) {
return new Promise((resolve, reject) => {
try {
this._timeoutIds.push(setTimeout(() => {
resolve(null);
}, time * 1000));
} catch (e) {
reject(e);
}
});
}
updateLabel(str) {
const label = cc.find('label', this.node).getComponent(cc.Label);
if (label['tweenAction']) {
label['tweenAction'].stop();
}
label['tweenAction'] = cc.tween(label)
.set({ string: `${str}` })
.delay(0.4)
.set({ string: `${str}.` })
.delay(0.4)
.set({ string: `${str}..` })
.delay(0.4)
.set({ string: `${str}...` })
.delay(0.4)
.union()
.repeatForever()
.start();
}
_maxRate = 0;
progressTo(rate, time) {
this._maxRate = Math.max(this._maxRate, rate);
const duration = Math.max(time + this.RandomInt(-1, 1), 1);
const progress = cc.find('progressBar', this.node).getComponent(cc.ProgressBar);
if (progress['tweenAction']) {
progress['tweenAction'].stop();
}
const easingList = [
'linear',
'quadInOut',
'cubicInOut',
];
progress['tweenAction'] = cc.tween(progress)
.to(duration, { progress: this._maxRate }, { easing: easingList[this.RandomInt(easingList.length)] })
.call(() => {
if (rate == 1) {
if (this._onLoadFinishFunc) {
this._onLoadFinishFunc();
}
this.node.active = false;
}
})
.start();
}
RandomInt(a, b = 0) {
let max = Math.max(a, b);
let min = Math.min(a, b);
return Math.floor(Math.random() * (max - min) + min);
}
// ------------------------------------------------
loadSpriteByUrl(node, url, cb) {
cc.loader.load({ url }, (err, img) => {
if (!node) {
cb && cb();
}
const spriteFrame = new cc.SpriteFrame(img)
const spr = node.getComponent(cc.Sprite);
spr.spriteFrame = spriteFrame;
cb && cb();
});
}
currentPlayedAudioId;
stopCurrentPlayedAudio() {
if (this.currentPlayedAudioId !== null) {
cc.audioEngine.stop(this.currentPlayedAudioId);
this.currentPlayedAudioId = null;
}
}
playEffect(name, cb) {
this.stopCurrentPlayedAudio();
const audioNode = cc.find(`audios/${name}`);
const audioClip = audioNode.getComponent(cc.AudioSource).clip;
const audioId = cc.audioEngine.play(audioClip, false, 0.8);
this.currentPlayedAudioId = audioId;
if (cb) {
cc.audioEngine.setFinishCallback(audioId, cb);
}
}
playAudioByUrl(audio_url, cb = null) {
if (!audio_url) {
if (cb) {
cb();
}
return;
}
this.stopCurrentPlayedAudio();
cc.assetManager.loadRemote(audio_url.toLowerCase(), (err, audioClip) => {
const audioId = cc.audioEngine.play(audioClip, false, 0.8);
this.currentPlayedAudioId = audioId;
if (cb) {
cc.audioEngine.setFinishCallback(audioId, cb);
}
});
}
playLocalAudio(name) {
return new Promise((resolve, reject) => {
this.stopCurrentPlayedAudio();
const audioNode = cc.find(`res/${name}`, this.node);
if (!audioNode) {
resolve(null);
return;
}
const audioClip = audioNode.getComponent(cc.AudioSource).clip;
const audioId = cc.audioEngine.play(audioClip, false, 0.8);
this.currentPlayedAudioId = audioId;
cc.audioEngine.setFinishCallback(audioId, () => {
resolve(null);
});
});
}
_timeoutIds = [];
_intervalIds = [];
// 生命周期
onDestroy() {
this._timeoutIds.forEach(id => {
clearTimeout(id);
});
this._intervalIds.forEach(id => {
clearInterval(id);
});
}
}
{
"ver": "1.0.8",
"uuid": "4d354824-df0d-4020-ab65-3afd85ca0064",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
cc.Class({
extends: cc.Component,
properties: {
},
start() {
const BtnExit = cc.find('BtnFrame/BtnExit', this.node);
this.buttonOnClick(BtnExit, () => {
const middleLayer = cc.find('middleLayer');
if (middleLayer) {
const middleLayerComponent = middleLayer.getComponent('middleLayer');
if (middleLayerComponent.onClickExitBtn) {
middleLayerComponent.onClickExitBtn();
}
} else {
cc.director.getScene().destroy();
cc.audioEngine.stopAll();
if (window.courseware) {
window.courseware.freeAllOcMethod();
}
var bundle = cc.assetManager.bundles.find((obj) => {
return obj.getSceneInfo('debug_shell');
});
if (bundle) {
cc.director.loadScene("debug_shell", null, null, (err, scene) => { });
} else {
cc.director.loadScene("OXFORDCORE", null, null, (err, scene) => { });
}
}
});
const BtnPlayAgain = cc.find('BtnFrame/BtnPlayAgain', this.node);
this.buttonOnClick(BtnPlayAgain, () => {
const middleLayer = cc.find('middleLayer');
if (middleLayer) {
const middleLayerComponent = middleLayer.getComponent('middleLayer');
if (middleLayerComponent) {
middleLayerComponent.reloadBundle();
}
} else {
const sceneName = cc.director.getScene().name;
cc.director.getScene().destroy();
cc.audioEngine.stopAll();
if (window.courseware) {
window.courseware.freeAllOcMethod();
}
cc.director.loadScene(sceneName, null, null, (err, scene) => { });
}
});
},
buttonOnClick(button, callback, scale = 1.0) {
button.on('click', () => {
if (button['cantClick']) {
return;
}
button['cantClick'] = true;
cc.tween(button)
.to(0.1, { scale: scale * 1.1 })
.to(0.1, { scale: scale })
.call(() => {
button['cantClick'] = false;
callback && callback();
})
.start();
});
}
});
{
"ver": "1.0.8",
"uuid": "72d2fadf-ee6a-43f2-b21a-5a1087fde153",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
......@@ -105,17 +105,17 @@ export class MyCocosSceneComponent extends cc.Component {
});
}
log (str) {
log(str) {
const node = cc.find('middleLayer');
if(node){
if (node) {
node.getComponent('middleLayer').log(str);
}else{
} else {
cc.log(str);
}
}
onLoadEnd() {
}
......@@ -132,7 +132,7 @@ export class MyCocosSceneComponent extends cc.Component {
// ------------------------------------------------
getSprNode(resName) {
const sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
......@@ -172,7 +172,7 @@ export class MyCocosSceneComponent extends cc.Component {
});
}
});
}else{
} else {
cb && cb();
}
}
......
import { RandomInt } from "./util";
export class NetworkHelper {
_eventListeners: any = {};
ctor() { }
on(eventName, func) {
this._eventListeners[eventName] = func;
}
async init(roomType: string, maxPlayers: number) {
await this.initRoom();
return await this.joinRoom(roomType, maxPlayers);
}
async startGame() {
await this.startFrameSync();
await this.closeRoom();
}
async stopGame() {
await this.stopFrameSync();
await this.closeRoom();
await this.leaveRoom();
}
listenerInited = false;
room: any;
client: any;
async initRoom() {
const client = new globalThis.Play.Client({
appId: "JCKc6bU8FywdjIPupjNH8Jwx-gzGzoHsz",
appKey: "WUrRDpb46z2qFLsUNbhknYcP",
userId: `${new Date().getTime()}_${RandomInt(100000000)}`,
playServer: 'https://lyn5nahs.lc-cn-n1-shared.com'
});
console.log('client = ', client);
console.log('开始连接========');
await client.connect();
this.client = client;
console.log('连接成功');
}
player: any;
joinRoom(roomType: string, maxPlayers: number) {
return new Promise((resolve, reject) => {
const roomProp = { roomType, maxPlayers };
this.client.joinRandomRoom({
matchProperties: roomProp,
}).then((room) => {
resolve(this.onJoinRoomSuccess(room));
}).catch((error) => {
console.log('加入房间失败');
if (error.code == 4301) {
const options = {
visible: true,
playerTtl: 0,
emptyRoomTtl: 0,
maxPlayerCount: maxPlayers,
customRoomProperties: roomProp,
customRoomPropertyKeysForLobby: ['roomType', 'maxPlayers'],
flag: globalThis.Play.CreateRoomFlag.MasterUpdateRoomProperties
};
this.client.createRoom({
roomOptions: options,
}).then((room) => {
resolve(this.onJoinRoomSuccess(room));
}).catch((error) => {
console.error(error.code, error.detail);
});
}
});
});
}
onJoinRoomSuccess(room: globalThis.Play.Room) {
console.log('加入房间成功 room = ', room);
const playerMe = room.playerList.find(player => player.isLocal);
const masterPlayer = room.playerList.find(player => player.isMaster);
const masterId = masterPlayer.userId;
const playerId = playerMe.userId;
this.room = new FakeRoom(masterId);
this.room.players.push(this.room.player);
this.player = this.room.player;
this.client.on(globalThis.Play.Event.PLAYER_ROOM_LEFT, (event) => {
this.onLeaveRoom({ data: { leavePlayerId: event.leftPlayer.userId } });
});
this.client.on(globalThis.Play.Event.PLAYER_ROOM_JOINED, (event) => {
this.onJoinRoom({ playerId: event.newPlayer.userId });
});
this.client.on(globalThis.Play.Event.CUSTOM_EVENT, (event) => {
this.onRecvFrame({ data: event.eventData });
});
// this.room.onDisconnect(this.onDisconnect.bind(this));
// this.room.onDismiss(this.onDisconnect.bind(this));
return playerId;
}
async leaveRoom() {
await this.client.close();
console.log("退房成功");
}
async dismissRoom() {
if (this.room.ownerId == this.player.id) {
console.log("房间已解散");
}
}
async closeRoom() {
// 设置房间不可见
await this.client.setRoomVisible(false);
console.log(this.client.room.visible);
}
async startFrameSync() {
console.log("开始帧同步成功");
}
async stopFrameSync() {
console.log("停止帧同步成功");
}
sendFrame(data: any) {
this.client.sendEvent(0, { frame: { items: [{ data: data }] } }, {
receiverGroup: globalThis.Play.ReceiverGroup.All,
});
}
onJoinRoom(event) {
console.log("新玩家加入", event);
if (this._eventListeners["playerJoin"]) {
this._eventListeners["playerJoin"](event);
}
this.room.players.forEach(player => {
console.log('player.playerId = ', player.playerId);
});
}
onLeaveRoom(event) {
console.log("onLeaveRoom");
if (this._eventListeners["playerLeave"]) {
this._eventListeners["playerLeave"](event);
}
console.log("玩家退出", event.data.leavePlayerId);
}
onRecvFromClient() { }
onDisconnect(event) {
this.log("玩家掉线了: " + JSON.stringify(event));
if (this._eventListeners["playerOffLine"]) {
this._eventListeners["playerOffLine"](event);
}
}
onRecvFrame(event) {
if (this._eventListeners["frameEvent"]) {
this._eventListeners["frameEvent"](event);
}
}
onStartFrameSync(event) {
console.log('onStartFrameSync');
if (this._eventListeners["gameStart"]) {
this._eventListeners["gameStart"](event);
}
}
onStopFrameSync(event) { }
onRecvFromGameSvr() { }
async onDestroy() {
try {
console.log("onDestroy1");
// MGOBE.Listener.clear();
this.stopFrameSync();
this.closeRoom();
this.dismissRoom();
this.leaveRoom();
console.log("onDestroy2");
} catch (e) {
console.log(JSON.stringify(e));
}
}
log(str) {
const node = cc.find("middleLayer");
if (node) {
node.getComponent("middleLayer").log(str);
} else {
cc.log(str);
}
}
callNetworkApiGet(baseUrl, uri, data, callBack) {
let queryStr = "?";
const params = [];
for (const key in data) {
if (Object.hasOwnProperty.call(data, key)) {
params.push(`${key}=${data[key]}`);
}
}
queryStr += params.join("&");
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 400) {
callBack(xhr.responseText);
}
};
const url = `${baseUrl}${uri}${queryStr}`;
console.log("url = " + url);
xhr.open("GET", url, true);
xhr.send();
}
}
export function asyncDelay(time) {
return new Promise((resolve, reject) => {
cc.tween(cc.find("Canvas"))
.delay(time)
.call(() => {
resolve(null);
})
.start();
});
}
class FakeRoom {
ownerId;
players = [];
player: any;
roomInfo;
constructor(playerId) {
this.player = { playerId: playerId };
this.ownerId = playerId;
this.roomInfo = { owner: playerId }
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
export const defaultData = {
};
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment