地图修改
@@ -126,7 +126,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"y": -1.249,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "39dd8f3d-b572-45d7-8c3a-88fcce1783bc",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 30 KiB |
@@ -1,134 +0,0 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "b373d5f8-caad-453e-950c-518597429bf2",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "b373d5f8-caad-453e-950c-518597429bf2@6c48a",
|
||||
"displayName": "Full",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "b373d5f8-caad-453e-950c-518597429bf2",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "b373d5f8-caad-453e-950c-518597429bf2@f9941",
|
||||
"displayName": "Full",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 556,
|
||||
"height": 372,
|
||||
"rawWidth": 556,
|
||||
"rawHeight": 372,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-278,
|
||||
-186,
|
||||
0,
|
||||
278,
|
||||
-186,
|
||||
0,
|
||||
-278,
|
||||
186,
|
||||
0,
|
||||
278,
|
||||
186,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
372,
|
||||
556,
|
||||
372,
|
||||
0,
|
||||
0,
|
||||
556,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-278,
|
||||
-186,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
278,
|
||||
186,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "b373d5f8-caad-453e-950c-518597429bf2@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": false,
|
||||
"type": "sprite-frame",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "b373d5f8-caad-453e-950c-518597429bf2@f9941"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "b47240ec-1ac5-4bda-815a-d0a0302a475e",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 26 KiB |
@@ -1,134 +0,0 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "32fec538-4ce2-421e-8c0d-cab31b1d7c1e",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "32fec538-4ce2-421e-8c0d-cab31b1d7c1e@6c48a",
|
||||
"displayName": "Full",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "32fec538-4ce2-421e-8c0d-cab31b1d7c1e",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "32fec538-4ce2-421e-8c0d-cab31b1d7c1e@f9941",
|
||||
"displayName": "Full",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 556,
|
||||
"height": 372,
|
||||
"rawWidth": 556,
|
||||
"rawHeight": 372,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-278,
|
||||
-186,
|
||||
0,
|
||||
278,
|
||||
-186,
|
||||
0,
|
||||
-278,
|
||||
186,
|
||||
0,
|
||||
278,
|
||||
186,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
372,
|
||||
556,
|
||||
372,
|
||||
0,
|
||||
0,
|
||||
556,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-278,
|
||||
-186,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
278,
|
||||
186,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "32fec538-4ce2-421e-8c0d-cab31b1d7c1e@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": false,
|
||||
"type": "sprite-frame",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "32fec538-4ce2-421e-8c0d-cab31b1d7c1e@f9941"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "54a3e46a-1fca-498c-ac51-7bf907d2b601",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 24 KiB |
@@ -1,134 +0,0 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "52d2441e-f68d-4006-a7cc-aaa447815132",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "52d2441e-f68d-4006-a7cc-aaa447815132@6c48a",
|
||||
"displayName": "Full",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "52d2441e-f68d-4006-a7cc-aaa447815132",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "52d2441e-f68d-4006-a7cc-aaa447815132@f9941",
|
||||
"displayName": "Full",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 556,
|
||||
"height": 372,
|
||||
"rawWidth": 556,
|
||||
"rawHeight": 372,
|
||||
"borderTop": 305,
|
||||
"borderBottom": 63,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-278,
|
||||
-186,
|
||||
0,
|
||||
278,
|
||||
-186,
|
||||
0,
|
||||
-278,
|
||||
186,
|
||||
0,
|
||||
278,
|
||||
186,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
372,
|
||||
556,
|
||||
372,
|
||||
0,
|
||||
0,
|
||||
556,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-278,
|
||||
-186,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
278,
|
||||
186,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "52d2441e-f68d-4006-a7cc-aaa447815132@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": false,
|
||||
"type": "sprite-frame",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "52d2441e-f68d-4006-a7cc-aaa447815132@f9941"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "f39f3d15-14ea-49a3-af82-271aba2b51e0",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 48 KiB |
@@ -1,134 +0,0 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "6ca870bd-0d75-4098-9e85-bec3bab01940",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "6ca870bd-0d75-4098-9e85-bec3bab01940@6c48a",
|
||||
"displayName": "Full",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "6ca870bd-0d75-4098-9e85-bec3bab01940",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "6ca870bd-0d75-4098-9e85-bec3bab01940@f9941",
|
||||
"displayName": "Full",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 556,
|
||||
"height": 372,
|
||||
"rawWidth": 556,
|
||||
"rawHeight": 372,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-278,
|
||||
-186,
|
||||
0,
|
||||
278,
|
||||
-186,
|
||||
0,
|
||||
-278,
|
||||
186,
|
||||
0,
|
||||
278,
|
||||
186,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
372,
|
||||
556,
|
||||
372,
|
||||
0,
|
||||
0,
|
||||
556,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-278,
|
||||
-186,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
278,
|
||||
186,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "6ca870bd-0d75-4098-9e85-bec3bab01940@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": false,
|
||||
"type": "sprite-frame",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "6ca870bd-0d75-4098-9e85-bec3bab01940@f9941"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "9f547f2a-09e1-4114-b025-c0fb13f211f0",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 28 KiB |
@@ -1,134 +0,0 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "ae5b869d-0875-48de-b278-7ed6f74b7c84",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "ae5b869d-0875-48de-b278-7ed6f74b7c84@6c48a",
|
||||
"displayName": "Full",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ae5b869d-0875-48de-b278-7ed6f74b7c84",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "ae5b869d-0875-48de-b278-7ed6f74b7c84@f9941",
|
||||
"displayName": "Full",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 556,
|
||||
"height": 372,
|
||||
"rawWidth": 556,
|
||||
"rawHeight": 372,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-278,
|
||||
-186,
|
||||
0,
|
||||
278,
|
||||
-186,
|
||||
0,
|
||||
-278,
|
||||
186,
|
||||
0,
|
||||
278,
|
||||
186,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
372,
|
||||
556,
|
||||
372,
|
||||
0,
|
||||
0,
|
||||
556,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-278,
|
||||
-186,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
278,
|
||||
186,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ae5b869d-0875-48de-b278-7ed6f74b7c84@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": false,
|
||||
"type": "sprite-frame",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "ae5b869d-0875-48de-b278-7ed6f74b7c84@f9941"
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "ae3068cc-7971-430a-9410-9d7bc64e0d9f",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 21 KiB |
@@ -1,134 +0,0 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "e8cfbeaa-89cc-48cf-aa21-0725cafbad44",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "e8cfbeaa-89cc-48cf-aa21-0725cafbad44@6c48a",
|
||||
"displayName": "Full",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e8cfbeaa-89cc-48cf-aa21-0725cafbad44",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "e8cfbeaa-89cc-48cf-aa21-0725cafbad44@f9941",
|
||||
"displayName": "Full",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 556,
|
||||
"height": 372,
|
||||
"rawWidth": 556,
|
||||
"rawHeight": 372,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-278,
|
||||
-186,
|
||||
0,
|
||||
278,
|
||||
-186,
|
||||
0,
|
||||
-278,
|
||||
186,
|
||||
0,
|
||||
278,
|
||||
186,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
3
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
372,
|
||||
556,
|
||||
372,
|
||||
0,
|
||||
0,
|
||||
556,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-278,
|
||||
-186,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
278,
|
||||
186,
|
||||
0
|
||||
]
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e8cfbeaa-89cc-48cf-aa21-0725cafbad44@6c48a",
|
||||
"atlasUuid": ""
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": false,
|
||||
"type": "sprite-frame",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "e8cfbeaa-89cc-48cf-aa21-0725cafbad44@f9941"
|
||||
}
|
||||
}
|
||||
461
assets/resources/game/map/Backgrounds/mp.plist
Normal file
@@ -0,0 +1,461 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>frames</key>
|
||||
<dict>
|
||||
<key>TX Tileset Ground-0.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{96,96}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{96,96}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{969,113},{96,96}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Tileset Ground-1.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{62,32}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{62,32}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1066,213},{62,32}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-117.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{33,19}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{33,19}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{547,227},{33,19}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-118.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{46,26}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{46,26}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1286,165},{46,26}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>TX Village Props-119.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{21,15}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{21,15}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{582,227},{21,15}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>TX Village Props-145.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{120,138}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{120,138}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1320,1},{120,138}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-146.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{153,162}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{153,162}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1165,1},{153,162}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-155.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{16,12}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{16,12}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{599,227},{16,12}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>TX Village Props-158.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{5,9}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{5,9}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{33,239},{5,9}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-162.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{9,10}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{9,10}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,239},{9,10}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>TX Village Props-169.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{12,14}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{12,14}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{613,227},{12,14}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-170.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{8,8}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{8,8}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{23,239},{8,8}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-171.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{7,6}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{7,6}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{40,239},{7,6}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>TX Village Props-172.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{8,9}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{8,9}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{13,239},{8,9}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-173.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{3,4}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{3,4}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{55,239},{3,4}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-176.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{5,8}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{5,8}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{48,239},{5,8}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-182.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{31,34}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{31,34}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1239,199},{31,34}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>TX Village Props-184.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{57,29}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{57,29}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1130,213},{57,29}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-185.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{89,36}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{89,36}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1145,165},{89,36}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>TX Village Props-186.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{95,37}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{95,37}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{969,211},{95,37}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>clouds.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{544,236}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{544,236}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,1},{544,236}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>far-grounds.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{616,110}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{616,110}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{547,1},{616,110}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>objects-0.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{98,76}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{98,76}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1067,113},{98,76}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>objects-1.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{32,32}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{32,32}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1275,213},{32,32}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>objects-2.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{48,32}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{48,32}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1236,165},{48,32}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>objects-3.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{48,39}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{48,39}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1189,203},{48,39}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>objects-4.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{123,114}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{123,114}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{853,113},{123,114}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>sea.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{112,96}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{112,96}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1320,141},{112,96}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>sky.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{112,304}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{112,304}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{547,113},{112,304}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>metadata</key>
|
||||
<dict>
|
||||
<key>format</key>
|
||||
<integer>3</integer>
|
||||
<key>pixelFormat</key>
|
||||
<string>RGBA8888</string>
|
||||
<key>premultiplyAlpha</key>
|
||||
<false/>
|
||||
<key>realTextureFileName</key>
|
||||
<string>mp.png</string>
|
||||
<key>size</key>
|
||||
<string>{1441,249}</string>
|
||||
<key>smartupdate</key>
|
||||
<string>$TexturePacker:SmartUpdate:ab15ad948061d30d093fcc42aa4e83a3:adbdb1e1f65d83ad5ffc7eb4ba90607b:ec8f585ed16a427e6080bdaa0c10caef$</string>
|
||||
<key>textureFileName</key>
|
||||
<string>mp.png</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
1351
assets/resources/game/map/Backgrounds/mp.plist.meta
Normal file
BIN
assets/resources/game/map/Backgrounds/mp.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
@@ -2,7 +2,7 @@
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "e9988462-8836-48d1-bb42-4cff07b7067e",
|
||||
"uuid": "099a81bb-31a5-4d85-b854-9f2a8b60d279",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
@@ -10,8 +10,8 @@
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
|
||||
"displayName": "backgroud",
|
||||
"uuid": "099a81bb-31a5-4d85-b854-9f2a8b60d279@6c48a",
|
||||
"displayName": "mp",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
@@ -22,7 +22,7 @@
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e",
|
||||
"imageUuidOrDatabaseUri": "099a81bb-31a5-4d85-b854-9f2a8b60d279",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
@@ -37,6 +37,6 @@
|
||||
"hasAlpha": true,
|
||||
"type": "texture",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a"
|
||||
"redirect": "099a81bb-31a5-4d85-b854-9f2a8b60d279@6c48a"
|
||||
}
|
||||
}
|
||||
131
assets/resources/game/map/Backgrounds/mp2.plist
Normal file
@@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>frames</key>
|
||||
<dict>
|
||||
<key>house.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,-3}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{183,159}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{193,165}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,226},{183,159}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>mushroom-brown.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{25,33}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{25,33}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{162,350},{25,33}}</string>
|
||||
<key>textureRotated</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>mushroom-red.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,-2}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{23,24}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{23,28}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{162,377},{23,24}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>plant.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{36,36}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{36,36}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{162,312},{36,36}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>rock.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{49,29}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{49,29}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{162,226},{49,29}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>tree.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{-1,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{211,223}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{213,223}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,1},{211,223}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>vine.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>spriteOffset</key>
|
||||
<string>{-1,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{39,53}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{41,53}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{162,257},{39,53}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>metadata</key>
|
||||
<dict>
|
||||
<key>format</key>
|
||||
<integer>3</integer>
|
||||
<key>pixelFormat</key>
|
||||
<string>RGBA8888</string>
|
||||
<key>premultiplyAlpha</key>
|
||||
<false/>
|
||||
<key>realTextureFileName</key>
|
||||
<string>mp2.png</string>
|
||||
<key>size</key>
|
||||
<string>{213,410}</string>
|
||||
<key>smartupdate</key>
|
||||
<string>$TexturePacker:SmartUpdate:a792dee745a146fbb958f3df04141307:615128ff01514eaf7380038065bbea02:9c26472b8ed2172ac6c3b3ac0c40471f$</string>
|
||||
<key>textureFileName</key>
|
||||
<string>mp2.png</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
339
assets/resources/game/map/Backgrounds/mp2.plist.meta
Normal file
@@ -0,0 +1,339 @@
|
||||
{
|
||||
"ver": "1.0.8",
|
||||
"importer": "sprite-atlas",
|
||||
"imported": true,
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {
|
||||
"2de81": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3@2de81",
|
||||
"displayName": "",
|
||||
"id": "2de81",
|
||||
"name": "house",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": true,
|
||||
"offsetX": 0,
|
||||
"offsetY": -3,
|
||||
"trimX": 1,
|
||||
"trimY": 226,
|
||||
"width": 183,
|
||||
"height": 159,
|
||||
"rawWidth": 193,
|
||||
"rawHeight": 165,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"atlasUuid": "f9082121-7cee-4e52-83df-b8013a345aa3"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"e0eac": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3@e0eac",
|
||||
"displayName": "",
|
||||
"id": "e0eac",
|
||||
"name": "mushroom-brown",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": true,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 162,
|
||||
"trimY": 350,
|
||||
"width": 25,
|
||||
"height": 33,
|
||||
"rawWidth": 25,
|
||||
"rawHeight": 33,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"atlasUuid": "f9082121-7cee-4e52-83df-b8013a345aa3"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"aa433": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3@aa433",
|
||||
"displayName": "",
|
||||
"id": "aa433",
|
||||
"name": "mushroom-red",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": -2,
|
||||
"trimX": 162,
|
||||
"trimY": 377,
|
||||
"width": 23,
|
||||
"height": 24,
|
||||
"rawWidth": 23,
|
||||
"rawHeight": 28,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"atlasUuid": "f9082121-7cee-4e52-83df-b8013a345aa3"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"96a1c": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3@96a1c",
|
||||
"displayName": "",
|
||||
"id": "96a1c",
|
||||
"name": "plant",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 162,
|
||||
"trimY": 312,
|
||||
"width": 36,
|
||||
"height": 36,
|
||||
"rawWidth": 36,
|
||||
"rawHeight": 36,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"atlasUuid": "f9082121-7cee-4e52-83df-b8013a345aa3"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"997cc": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3@997cc",
|
||||
"displayName": "",
|
||||
"id": "997cc",
|
||||
"name": "rock",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 162,
|
||||
"trimY": 226,
|
||||
"width": 49,
|
||||
"height": 29,
|
||||
"rawWidth": 49,
|
||||
"rawHeight": 29,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"atlasUuid": "f9082121-7cee-4e52-83df-b8013a345aa3"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"ccac8": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3@ccac8",
|
||||
"displayName": "",
|
||||
"id": "ccac8",
|
||||
"name": "tree",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -1,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 1,
|
||||
"width": 211,
|
||||
"height": 223,
|
||||
"rawWidth": 213,
|
||||
"rawHeight": 223,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"atlasUuid": "f9082121-7cee-4e52-83df-b8013a345aa3"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"a7cab": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3@a7cab",
|
||||
"displayName": "",
|
||||
"id": "a7cab",
|
||||
"name": "vine",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": -1,
|
||||
"offsetY": 0,
|
||||
"trimX": 162,
|
||||
"trimY": 257,
|
||||
"width": 39,
|
||||
"height": 53,
|
||||
"rawWidth": 41,
|
||||
"rawHeight": 53,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"atlasUuid": "f9082121-7cee-4e52-83df-b8013a345aa3"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"atlasTextureName": "mp2.png",
|
||||
"format": 3,
|
||||
"uuid": "f9082121-7cee-4e52-83df-b8013a345aa3",
|
||||
"textureUuid": "ffe56775-da17-462e-b411-1af2cc305459@6c48a"
|
||||
}
|
||||
}
|
||||
BIN
assets/resources/game/map/Backgrounds/mp2.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
42
assets/resources/game/map/Backgrounds/mp2.png.meta
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "ffe56775-da17-462e-b411-1af2cc305459",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "ffe56775-da17-462e-b411-1af2cc305459@6c48a",
|
||||
"displayName": "mp2",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "repeat",
|
||||
"wrapModeT": "repeat",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "ffe56775-da17-462e-b411-1af2cc305459",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": true,
|
||||
"type": "texture",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "ffe56775-da17-462e-b411-1af2cc305459@6c48a"
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>frames</key>
|
||||
<dict>
|
||||
<key>Layer01.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>anchor</key>
|
||||
<string>{0.5,0.5}</string>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{1775,250}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{1775,250}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,179},{1775,250}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Layer02.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>anchor</key>
|
||||
<string>{0.5,0.5}</string>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{1125,387}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{1125,387}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,431},{1125,387}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Layer03.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>anchor</key>
|
||||
<string>{0.5,0.5}</string>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{1775,176}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{1775,176}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,1},{1775,176}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Layer04.png</key>
|
||||
<dict>
|
||||
<key>aliases</key>
|
||||
<array/>
|
||||
<key>anchor</key>
|
||||
<string>{0.5,0.5}</string>
|
||||
<key>spriteOffset</key>
|
||||
<string>{0,0}</string>
|
||||
<key>spriteSize</key>
|
||||
<string>{1775,543}</string>
|
||||
<key>spriteSourceSize</key>
|
||||
<string>{1775,543}</string>
|
||||
<key>textureRect</key>
|
||||
<string>{{1,820},{1775,543}}</string>
|
||||
<key>textureRotated</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>metadata</key>
|
||||
<dict>
|
||||
<key>format</key>
|
||||
<integer>3</integer>
|
||||
<key>pixelFormat</key>
|
||||
<string>RGBA8888</string>
|
||||
<key>premultiplyAlpha</key>
|
||||
<false/>
|
||||
<key>realTextureFileName</key>
|
||||
<string>backgroud.png</string>
|
||||
<key>size</key>
|
||||
<string>{1777,1364}</string>
|
||||
<key>smartupdate</key>
|
||||
<string>$TexturePacker:SmartUpdate:b0c4cf088e3f86610f129d430d0b767b:b980e467236c0a489aebd5fbb53cdcf3:2971cbda4d170f8c8fc849f191b96de4$</string>
|
||||
<key>textureFileName</key>
|
||||
<string>backgroud.png</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,201 +0,0 @@
|
||||
{
|
||||
"ver": "1.0.8",
|
||||
"importer": "sprite-atlas",
|
||||
"imported": true,
|
||||
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad",
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {
|
||||
"8b0c8": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@8b0c8",
|
||||
"displayName": "",
|
||||
"id": "8b0c8",
|
||||
"name": "Layer01",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 179,
|
||||
"width": 1775,
|
||||
"height": 250,
|
||||
"rawWidth": 1775,
|
||||
"rawHeight": 250,
|
||||
"borderTop": 232,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
|
||||
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"d5384": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@d5384",
|
||||
"displayName": "",
|
||||
"id": "d5384",
|
||||
"name": "Layer02",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 431,
|
||||
"width": 1125,
|
||||
"height": 387,
|
||||
"rawWidth": 1125,
|
||||
"rawHeight": 387,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
|
||||
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"bbc85": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@bbc85",
|
||||
"displayName": "",
|
||||
"id": "bbc85",
|
||||
"name": "Layer03",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 1,
|
||||
"width": 1775,
|
||||
"height": 176,
|
||||
"rawWidth": 1775,
|
||||
"rawHeight": 176,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
|
||||
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
},
|
||||
"61a94": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@61a94",
|
||||
"displayName": "",
|
||||
"id": "61a94",
|
||||
"name": "Layer04",
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 1,
|
||||
"trimY": 820,
|
||||
"width": 1775,
|
||||
"height": 543,
|
||||
"rawWidth": 1775,
|
||||
"rawHeight": 543,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"packable": true,
|
||||
"pixelsToUnit": 100,
|
||||
"pivotX": 0.5,
|
||||
"pivotY": 0.5,
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [],
|
||||
"indexes": [],
|
||||
"uv": [],
|
||||
"nuv": [],
|
||||
"minPos": [],
|
||||
"maxPos": []
|
||||
},
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
|
||||
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
|
||||
},
|
||||
"ver": "1.0.12",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"atlasTextureName": "backgroud.png",
|
||||
"format": 3,
|
||||
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad",
|
||||
"textureUuid": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 106 KiB |
@@ -119,7 +119,7 @@
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 1073741824,
|
||||
"_layer": 1,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
@@ -235,7 +235,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -10,
|
||||
"y": -20,
|
||||
"y": -10,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -248,11 +248,11 @@
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0.9,
|
||||
"y": 0.8,
|
||||
"y": 0.5,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 1073741824,
|
||||
"_layer": 1,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
|
||||
@@ -70,6 +70,21 @@ export const MonSet = {
|
||||
14:{pos:v3(950,0,0)},
|
||||
15:{pos:v3(990,0,0)},
|
||||
16:{pos:v3(1030,0,0)},
|
||||
17:{pos:v3(1070,0,0)},
|
||||
18:{pos:v3(1110,0,0)},
|
||||
19:{pos:v3(1150,0,0)},
|
||||
20:{pos:v3(1190,0,0)},
|
||||
21:{pos:v3(1230,0,0)},
|
||||
22:{pos:v3(1270,0,0)},
|
||||
23:{pos:v3(1310,0,0)},
|
||||
24:{pos:v3(1350,0,0)},
|
||||
25:{pos:v3(1390,0,0)},
|
||||
26:{pos:v3(1430,0,0)},
|
||||
27:{pos:v3(1470,0,0)},
|
||||
28:{pos:v3(1510,0,0)},
|
||||
29:{pos:v3(1550,0,0)},
|
||||
30:{pos:v3(1590,0,0)},
|
||||
31:{pos:v3(1630,0,0)},
|
||||
}
|
||||
|
||||
// 经验值计算函数 - 复杂递增规律
|
||||
@@ -227,72 +242,72 @@ export const HeroInfo = {
|
||||
|
||||
//主将
|
||||
5001:{uuid:5001,name:"刺心.艾吉斯",path:"k1", quality:HQuality.BLUE,lv:1,kind:1,
|
||||
type:HType.warrior,hp:5000,ap:10,dis:600,cd:1.5,speed:50,skills:[6001,6004,6004],
|
||||
type:HType.warrior,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6001,6004,6004],
|
||||
buff:[
|
||||
{buff_type:BuffAttr.PUNCTURE,value:1},
|
||||
],info:"剑类专精,穿刺伤害额外+10%"},
|
||||
|
||||
5002:{uuid:5002,name:"飓风.格罗姆",path:"k2", quality:HQuality.BLUE,lv:1,kind:1,
|
||||
type:HType.warrior,hp:5000,ap:10,dis:600,cd:1.5,speed:50,skills:[6001,6005,6005],
|
||||
type:HType.warrior,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6001,6005,6005],
|
||||
buff:[
|
||||
{buff_type:BuffAttr.WFUNY,value:10},
|
||||
],info:"斧类专精,风怒概率增加10%"},
|
||||
|
||||
5003:{uuid:5003,name:"碎颅.赫克托",path:"k4", quality:HQuality.BLUE,lv:1,kind:1,
|
||||
type:HType.warrior,hp:5000,ap:10,dis:600,cd:1.5,speed:50,skills:[6001,6021,6001],
|
||||
type:HType.warrior,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6001,6021,6001],
|
||||
buff:[
|
||||
{buff_type:BuffAttr.CRITICAL,value:10},
|
||||
],info:"锤类专精,暴击概率增加10%"},
|
||||
|
||||
5004:{uuid:5004,name:"裂伤.塔米拉",path:"k3", quality:HQuality.BLUE,lv:1,kind:1,
|
||||
type:HType.warrior,hp:5000,ap:10,dis:600,cd:1.5,speed:50,skills:[6001,6021,6001],
|
||||
type:HType.warrior,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6001,6021,6001],
|
||||
buff:[
|
||||
{buff_type:BuffAttr.BURN_COUNT,value:1},
|
||||
],info:"刀类专精,易伤效果额外持续1次"},
|
||||
|
||||
5005:{uuid:5005,name:"幽灵射手",path:"a4", quality:HQuality.BLUE,lv:1,kind:2,
|
||||
type:HType.remote,hp:5000,ap:15,dis:600,cd:1.5,speed:50,skills:[6003,6003,6003],
|
||||
type:HType.remote,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6003,6003,6003],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
5006:{uuid:5006,name:"战争领主",path:"k5", quality:HQuality.BLUE,lv:1,kind:2,
|
||||
type:HType.warrior,hp:5000,ap:10,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
type:HType.warrior,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
|
||||
5007:{uuid:5007,name:"混沌法师",path:"zh1", quality:HQuality.BLUE,lv:1,kind:2,
|
||||
type:HType.mage,hp:5000,ap:10,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
type:HType.mage,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
|
||||
5008:{uuid:5008,name:"火焰法师",path:"zh2", quality:HQuality.BLUE,lv:1,kind:2,
|
||||
type:HType.mage,hp:5000,ap:15,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
type:HType.mage,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
|
||||
5009:{uuid:5009,name:"风暴精灵",path:"m4", quality:HQuality.BLUE,lv:1,kind:2,
|
||||
type:HType.mage,hp:5000,ap:15,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
type:HType.mage,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
|
||||
5010:{uuid:5010,name:"战争祭祀",path:"d2", quality:HQuality.BLUE,lv:1,kind:2,
|
||||
type:HType.mage,hp:5000,ap:10,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
type:HType.mage,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6002,6002,6002],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
|
||||
5011:{uuid:5011,name:"暴风射手",path:"a5", quality:HQuality.BLUE,lv:1,kind:2,
|
||||
type:HType.remote,hp:5000,ap:15,dis:600,cd:1.5,speed:50,skills:[6003,6003,6003],
|
||||
type:HType.remote,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6003,6003,6003],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
|
||||
5012:{uuid:5012,name:"苍穹射手",path:"a3", quality:HQuality.BLUE,lv:1,kind:1,
|
||||
type:HType.remote,hp:5000,ap:15,dis:600,cd:1.5,speed:50,skills:[6003,6003,6003],
|
||||
type:HType.remote,hp:100,ap:15,dis:600,cd:1.5,speed:50,skills:[6003,6003,6003],
|
||||
buff:[
|
||||
|
||||
],info:"说明"},
|
||||
@@ -300,53 +315,53 @@ export const HeroInfo = {
|
||||
|
||||
//怪物
|
||||
5201:{uuid:5201,name:"兽人战士",path:"mor1", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.warrior,hp:25,ap:8,dis:90,cd:2,speed:45,skills:[6010],
|
||||
type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:45,skills:[6010],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5202:{uuid:5202,name:"兽人刺客",path:"mor2", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.remote,hp:20,ap:8,dis:350,cd:1.5,speed:45,skills:[6008],
|
||||
type:HType.remote,hp:20,ap:5,dis:350,cd:1.5,speed:45,skills:[6008],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5203:{uuid:5203,name:"兽人护卫",path:"mor3", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.warrior,hp:25,ap:8,dis:90,cd:2,speed:45,skills:[6010],
|
||||
type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:45,skills:[6010],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5204:{uuid:5204,name:"石卫", path:"mgem1",quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.mage,hp:18,ap:15,dis:90,cd:2.5,speed:45,skills:[6010],
|
||||
type:HType.mage,hp:18,ap:5,dis:90,cd:2.5,speed:45,skills:[6010],
|
||||
buff:[ ],info:"法师怪物-高伤害脆弱"},
|
||||
|
||||
5205:{uuid:5205,name:"土卫", path:"mgem2",quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.mage,hp:18,ap:15,dis:90,cd:2.5,speed:45,skills:[6010],
|
||||
type:HType.mage,hp:18,ap:5,dis:90,cd:2.5,speed:45,skills:[6010],
|
||||
buff:[ ],info:"法师怪物-高伤害脆弱"},
|
||||
|
||||
5206:{uuid:5206,name:"树卫", path:"mgem3",quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.mage,hp:18,ap:15,dis:90,cd:2.5,speed:45,skills:[6010],
|
||||
type:HType.mage,hp:18,ap:5,dis:90,cd:2.5,speed:45,skills:[6010],
|
||||
buff:[ ],info:"法师怪物-高伤害脆弱"},
|
||||
|
||||
|
||||
|
||||
5219:{uuid:5219,name:"牛头战士",path:"mn1", quality:HQuality.GREEN,lv:2,kind:1,
|
||||
type:HType.warrior,hp:25,ap:8,dis:90,cd:2,speed:45,skills:[6010],
|
||||
type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:45,skills:[6010],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5220:{uuid:5220,name:"牛头战士",path:"mn2", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.warrior,hp:25,ap:8,dis:90,cd:2,speed:45,skills:[6010],
|
||||
type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:45,skills:[6010],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5221:{uuid:5221,name:"牛头战士",path:"mn3", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.remote,hp:20,ap:8,dis:350,cd:1.5,speed:45,skills:[6008],
|
||||
type:HType.remote,hp:20,ap:5,dis:350,cd:1.5,speed:45,skills:[6008],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5222:{uuid:5222,name:"独眼巨人",path:"md1", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.warrior,hp:25,ap:8,dis:90,cd:2,speed:45,skills:[6010],
|
||||
type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:45,skills:[6010],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5223:{uuid:5223,name:"独眼巨人",path:"md2", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.warrior,hp:25,ap:8,dis:90,cd:2,speed:45,skills:[6010],
|
||||
type:HType.warrior,hp:25,ap:5,dis:90,cd:2,speed:45,skills:[6010],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5224:{uuid:5224,name:"独眼巨人",path:"md3", quality:HQuality.GREEN,lv:1,kind:1,
|
||||
type:HType.remote,hp:20,ap:8,dis:350,cd:1.5,speed:45,skills:[6010],
|
||||
type:HType.remote,hp:20,ap:5,dis:350,cd:1.5,speed:45,skills:[6010],
|
||||
buff:[ ],info:"普通怪物-战士型"},
|
||||
|
||||
5225:{uuid:5225,name:"精英独眼",path:"md4", quality:HQuality.BLUE,lv:1,kind:1,
|
||||
|
||||
@@ -30,7 +30,7 @@ export class Monster extends ecs.Entity {
|
||||
}
|
||||
|
||||
/** 加载角色 */
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[]) {
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[], rogueHp?: number, rogueAttack?: number) {
|
||||
scale=-1
|
||||
let box_group=BoxSet.MONSTER
|
||||
console.log("mon load",uuid)
|
||||
@@ -45,7 +45,7 @@ export class Monster extends ecs.Entity {
|
||||
const collider = node.getComponent(BoxCollider2D);
|
||||
if (collider) collider.enabled = false; // 先禁用 // 延迟一帧启用碰撞体
|
||||
node.setPosition(pos)
|
||||
this.hero_init(uuid,node,scale,box_group,is_boss,is_call,lv,rogueBuffData)
|
||||
this.hero_init(uuid,node,scale,box_group,is_boss,is_call,lv,rogueBuffData,rogueHp,rogueAttack)
|
||||
oops.message.dispatchEvent("monster_load",this)
|
||||
|
||||
// 初始化移动参数
|
||||
@@ -60,7 +60,7 @@ export class Monster extends ecs.Entity {
|
||||
node.parent = scene.entityLayer!.node!
|
||||
node.setPosition(pos)
|
||||
}
|
||||
hero_init(uuid:number=1001,node:Node,scale:number=1,box_group=BoxSet.HERO,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[]) {
|
||||
hero_init(uuid:number=1001,node:Node,scale:number=1,box_group=BoxSet.HERO,is_boss:boolean=false,is_call:boolean=false,lv:number=1,rogueBuffData?: any[], rogueHp?: number, rogueAttack?: number) {
|
||||
var hv = node.getComponent(HeroViewComp)!;
|
||||
hv.hide_info()
|
||||
// console.log("hero_init",buff)
|
||||
@@ -78,7 +78,15 @@ export class Monster extends ecs.Entity {
|
||||
hv.speed =hv.ospeed = hero.speed;
|
||||
hv.dis = hero.dis;
|
||||
|
||||
// 根据Design.md设计文档计算怪物等级属性
|
||||
// 肉鸽模式使用固定数值,否则使用等级计算
|
||||
if (rogueHp !== undefined && rogueAttack !== undefined) {
|
||||
// 肉鸽模式:使用固定数值
|
||||
hv.hp = hv.hp_max = rogueHp;
|
||||
hv.ap = rogueAttack;
|
||||
hv.ap_base = rogueAttack;
|
||||
console.log(`[Monster-Rogue]: 怪物${hero.name} - 固定HP:${rogueHp}, 固定AP:${rogueAttack}`);
|
||||
} else {
|
||||
// 普通模式:根据Design.md设计文档计算怪物等级属性
|
||||
const baseHp = hero.hp;
|
||||
const baseAp = hero.ap;
|
||||
|
||||
@@ -92,6 +100,7 @@ export class Monster extends ecs.Entity {
|
||||
hv.ap = levelAp;
|
||||
hv.ap_base=levelAp
|
||||
console.log(`[Monster]: 怪物${hero.name}(等级${lv}) - 基础HP:${baseHp}->等级HP:${levelHp}, 基础AP:${baseAp}->等级AP:${levelAp}`);
|
||||
}
|
||||
|
||||
hv.cd = hero.cd
|
||||
hv.atk_skill=hero.skills[0]
|
||||
|
||||
@@ -27,7 +27,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss: boolean,
|
||||
level: number,
|
||||
affixes?: any[],
|
||||
buffData?: any[] // 使用BuffAttr格式的buff数据
|
||||
buffData?: any[], // 使用BuffAttr格式的buff数据
|
||||
rogueHp?: number, // 肉鸽固定血量
|
||||
rogueAttack?: number // 肉鸽固定攻击力
|
||||
}> = [];
|
||||
private isSpawning: boolean = false;// 是否正在生成怪物
|
||||
private spawnInterval: number = 0.5; // 每个怪物生成间隔时间
|
||||
@@ -106,12 +108,8 @@ export class MissionMonCompComp extends CCComp {
|
||||
const currentWave = smc.vmdata.mission_data.current_wave;
|
||||
const monsterLevel = RogueConfig.getMonsterLevel(currentWave);
|
||||
|
||||
// 处理非战斗波次
|
||||
if (waveType === RogueWaveType.SHOP || waveType === RogueWaveType.REST) {
|
||||
console.log(`[MissionMonComp]:${waveType}波次,无需生成怪物`);
|
||||
// 可以在这里触发商店或休息事件
|
||||
return;
|
||||
}
|
||||
// 固定9波模式,所有波次都是战斗波次
|
||||
console.log(`[MissionMonComp]:第${currentWave}波 - ${waveType}战斗波次`);
|
||||
|
||||
if (!monsters || monsters.length === 0) {
|
||||
console.warn(`[MissionMonComp]:肉鸽波次配置中没有怪物信息`);
|
||||
@@ -119,7 +117,7 @@ export class MissionMonCompComp extends CCComp {
|
||||
}
|
||||
|
||||
monsters.forEach((monsterGroup: any) => {
|
||||
const { uuid, count, affixes, enhancedStats, buffData, isBoss } = monsterGroup;
|
||||
const { uuid, count, affixes, enhancedStats, buffData, isBoss, rogueHp, rogueAttack } = monsterGroup;
|
||||
|
||||
// 为每个怪物组生成指定数量的怪物
|
||||
for (let i = 0; i < count; i++) {
|
||||
@@ -130,7 +128,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss || false,
|
||||
monsterLevel,
|
||||
affixes,
|
||||
buffData // 现在传递buffData而不是enhancedStats和specialEffects
|
||||
buffData, // 现在传递buffData而不是enhancedStats和specialEffects
|
||||
rogueHp, // 传递固定血量
|
||||
rogueAttack // 传递固定攻击力
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -170,7 +170,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss: boolean = false,
|
||||
level: number = 1,
|
||||
affixes?: any[],
|
||||
buffData?: any[]
|
||||
buffData?: any[],
|
||||
rogueHp?: number,
|
||||
rogueAttack?: number
|
||||
) {
|
||||
this.monsterQueue.push({
|
||||
uuid: uuid,
|
||||
@@ -178,7 +180,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
isBoss: isBoss,
|
||||
level: level,
|
||||
affixes: affixes,
|
||||
buffData: buffData
|
||||
buffData: buffData,
|
||||
rogueHp: rogueHp,
|
||||
rogueAttack: rogueAttack
|
||||
});
|
||||
}
|
||||
|
||||
@@ -194,7 +198,9 @@ export class MissionMonCompComp extends CCComp {
|
||||
monsterData.isBoss,
|
||||
false,
|
||||
monsterData.level,
|
||||
monsterData.buffData
|
||||
monsterData.buffData,
|
||||
monsterData.rogueHp,
|
||||
monsterData.rogueAttack
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -205,19 +211,26 @@ export class MissionMonCompComp extends CCComp {
|
||||
is_boss: boolean = false,
|
||||
is_call: boolean = false,
|
||||
lv: number = 1,
|
||||
buffData?: any[]
|
||||
buffData?: any[],
|
||||
rogueHp?: number,
|
||||
rogueAttack?: number
|
||||
) {
|
||||
let mon = ecs.getEntity<Monster>(Monster);
|
||||
let scale = -1;
|
||||
let pos: Vec3 = v3(MonSet[i].pos);
|
||||
|
||||
// 生成怪物,传递词条buff数据
|
||||
mon.load(pos, scale, uuid, is_boss, is_call, lv, buffData);
|
||||
// 生成怪物,传递词条buff数据和肉鸽固定数值
|
||||
mon.load(pos, scale, uuid, is_boss, is_call, lv, buffData, rogueHp, rogueAttack);
|
||||
|
||||
// 如果有词条buff数据,记录到控制台
|
||||
if (buffData && buffData.length > 0) {
|
||||
console.log(`[MissionMonComp]: 怪物 ${uuid} 获得肉鸽词条Buff:`, buffData);
|
||||
}
|
||||
|
||||
// 如果有肉鸽固定数值,记录到控制台
|
||||
if (rogueHp !== undefined && rogueAttack !== undefined) {
|
||||
console.log(`[MissionMonComp]: 怪物 ${uuid} 使用肉鸽固定数值 - HP: ${rogueHp}, 攻击: ${rogueAttack}`);
|
||||
}
|
||||
}
|
||||
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
|
||||
reset() {
|
||||
|
||||
@@ -6,13 +6,14 @@
|
||||
* - 包含词条系统和怪物强化逻辑
|
||||
* - 供 MissionMonComp.ts 等组件调用
|
||||
*
|
||||
* 波次规则:
|
||||
* - 固定波次:5(商店)、10(Boss)、15(休息)、20(Boss)、25(商店)、30(Boss)
|
||||
* - 精英波次:个位数是4和9的波次(4、9、14、19、24、29...)
|
||||
* - 普通波次:其他所有波次
|
||||
* 波次规则(固定9波模式):
|
||||
* - 1-3波:普通波次
|
||||
* - 4-6波:怪物潮波次(大量低级怪物)
|
||||
* - 7-8波:精英波次
|
||||
* - 9波:最终Boss波次
|
||||
*
|
||||
* @author 游戏开发团队
|
||||
* @version 1.0
|
||||
* @version 2.0
|
||||
* @date 2025-07-12
|
||||
*/
|
||||
|
||||
@@ -26,13 +27,57 @@ import { BuffAttr } from "../common/config/SkillSet";
|
||||
* 肉鸽模式波次类型枚举
|
||||
*/
|
||||
export enum RogueWaveType {
|
||||
NORMAL = "normal",
|
||||
ELITE = "elite",
|
||||
BOSS = "boss",
|
||||
SHOP = "shop",
|
||||
REST = "rest"
|
||||
NORMAL = "normal", // 普通波次(1-3波)
|
||||
HORDE = "horde", // 怪物潮波次(4-6波)
|
||||
ELITE = "elite", // 精英波次(7-8波)
|
||||
FINAL_BOSS = "final_boss" // 最终Boss波次(9波)
|
||||
}
|
||||
|
||||
/**
|
||||
* 固定数值配置(根据波次固定血量和攻击力)
|
||||
*/
|
||||
export const RogueStatsConfig = {
|
||||
// 血量配置
|
||||
hp: {
|
||||
1: 10, // 波次1:小怪血量10
|
||||
2: 15, // 波次2:小怪血量15(插值)
|
||||
3: 25, // 波次3:小怪血量25
|
||||
4: 35, // 波次4:怪物潮血量35(插值)
|
||||
5: 60, // 波次5:怪物潮血量60
|
||||
6: 80, // 波次6:怪物潮血量80(插值)
|
||||
7: 100, // 波次7:精英血量100
|
||||
8: 150, // 波次8:精英血量150(插值)
|
||||
9: 500 // 波次9:boss血量500
|
||||
},
|
||||
|
||||
// 攻击力配置
|
||||
attack: {
|
||||
1: 5, // 1-3波:攻击力5
|
||||
2: 5, // 1-3波:攻击力5
|
||||
3: 5, // 1-3波:攻击力5
|
||||
4: 8, // 4-6波:攻击力8
|
||||
5: 8, // 4-6波:攻击力8
|
||||
6: 8, // 4-6波:攻击力8
|
||||
7: 12, // 7-8波:攻击力12
|
||||
8: 12, // 7-8波:攻击力12
|
||||
9: 30 // 9波boss:攻击力30
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取指定波次的血量
|
||||
*/
|
||||
getHp(waveNumber: number): number {
|
||||
return this.hp[waveNumber] || this.hp[9]; // 默认返回boss血量
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取指定波次的攻击力
|
||||
*/
|
||||
getAttack(waveNumber: number): number {
|
||||
return this.attack[waveNumber] || this.attack[9]; // 默认返回boss攻击力
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 怪物词条配置(直接使用BuffAttr作为词条类型)
|
||||
* 这样可以直接复用Mon.ts中的Buff处理逻辑
|
||||
@@ -111,21 +156,23 @@ export const MonsterAffixConfig = {
|
||||
};
|
||||
|
||||
/**
|
||||
* 词条数量配置
|
||||
* 词条数量配置(9波固定模式)
|
||||
*/
|
||||
export const AffixCountConfig = {
|
||||
currentMode: "normal" as "normal" | "enhanced",
|
||||
|
||||
modes: {
|
||||
normal: {
|
||||
[RogueWaveType.NORMAL]: 0,
|
||||
[RogueWaveType.ELITE]: 1,
|
||||
[RogueWaveType.BOSS]: 2,
|
||||
[RogueWaveType.NORMAL]: 0, // 1-3波:无词条
|
||||
[RogueWaveType.HORDE]: 0, // 4-6波:无词条(数量取胜)
|
||||
[RogueWaveType.ELITE]: 1, // 7-8波:1个词条
|
||||
[RogueWaveType.FINAL_BOSS]: 2, // 9波:2个词条
|
||||
},
|
||||
enhanced: {
|
||||
[RogueWaveType.NORMAL]: 1,
|
||||
[RogueWaveType.ELITE]: 2,
|
||||
[RogueWaveType.BOSS]: 3,
|
||||
[RogueWaveType.NORMAL]: 1, // 1-3波:1个词条
|
||||
[RogueWaveType.HORDE]: 1, // 4-6波:1个词条
|
||||
[RogueWaveType.ELITE]: 2, // 7-8波:2个词条
|
||||
[RogueWaveType.FINAL_BOSS]: 3, // 9波:3个词条
|
||||
}
|
||||
},
|
||||
|
||||
@@ -147,22 +194,27 @@ export const AffixCountConfig = {
|
||||
};
|
||||
|
||||
/**
|
||||
* 波次配置
|
||||
* 波次配置(固定9波模式)
|
||||
*/
|
||||
export const RogueWaveConfig = {
|
||||
fixedWaves: {
|
||||
5: RogueWaveType.SHOP,
|
||||
10: RogueWaveType.BOSS,
|
||||
15: RogueWaveType.REST,
|
||||
20: RogueWaveType.BOSS,
|
||||
25: RogueWaveType.SHOP,
|
||||
30: RogueWaveType.BOSS
|
||||
// 固定9波模式,每波类型固定
|
||||
getWaveType: (waveNumber: number): RogueWaveType => {
|
||||
if (waveNumber <= 3) {
|
||||
return RogueWaveType.NORMAL; // 1-3波:普通
|
||||
} else if (waveNumber <= 6) {
|
||||
return RogueWaveType.HORDE; // 4-6波:怪物潮
|
||||
} else if (waveNumber <= 8) {
|
||||
return RogueWaveType.ELITE; // 7-8波:精英
|
||||
} else if (waveNumber === 9) {
|
||||
return RogueWaveType.FINAL_BOSS; // 9波:最终Boss
|
||||
} else {
|
||||
// 超过9波的情况(如果需要循环)
|
||||
const cycleWave = ((waveNumber - 1) % 9) + 1;
|
||||
return RogueWaveConfig.getWaveType(cycleWave);
|
||||
}
|
||||
},
|
||||
|
||||
isEliteWave: (waveNumber: number): boolean => {
|
||||
const lastDigit = waveNumber % 10;
|
||||
return lastDigit === 4 || lastDigit === 9;
|
||||
}
|
||||
maxWaves: 9 // 固定最大波数
|
||||
};
|
||||
|
||||
// ==================== 肉鸽配置生成器 ====================
|
||||
@@ -176,44 +228,35 @@ export class RogueConfig {
|
||||
* 生成波次配置(主入口)
|
||||
*/
|
||||
static generateWaveConfig(waveNumber: number) {
|
||||
let waveType: RogueWaveType;
|
||||
const waveType = RogueWaveConfig.getWaveType(waveNumber);
|
||||
const fixedHp = RogueStatsConfig.getHp(waveNumber);
|
||||
const fixedAttack = RogueStatsConfig.getAttack(waveNumber);
|
||||
|
||||
// 判断波次类型
|
||||
if (RogueWaveConfig.fixedWaves[waveNumber]) {
|
||||
waveType = RogueWaveConfig.fixedWaves[waveNumber];
|
||||
} else if (RogueWaveConfig.isEliteWave(waveNumber)) {
|
||||
waveType = RogueWaveType.ELITE;
|
||||
} else {
|
||||
waveType = RogueWaveType.NORMAL;
|
||||
}
|
||||
|
||||
console.log(`[RogueConfig]: 第${waveNumber}波 - 类型: ${waveType}`);
|
||||
console.log(`[RogueConfig]: 第${waveNumber}波 - 类型: ${waveType} - 固定HP: ${fixedHp}, 固定攻击: ${fixedAttack} (固定9波模式)`);
|
||||
|
||||
// 根据类型生成配置
|
||||
switch (waveType) {
|
||||
case RogueWaveType.NORMAL:
|
||||
return this.generateNormalWave(waveNumber);
|
||||
case RogueWaveType.HORDE:
|
||||
return this.generateHordeWave(waveNumber);
|
||||
case RogueWaveType.ELITE:
|
||||
return this.generateEliteWave(waveNumber);
|
||||
case RogueWaveType.BOSS:
|
||||
return this.generateBossWave(waveNumber);
|
||||
case RogueWaveType.SHOP:
|
||||
return this.generateShopWave(waveNumber);
|
||||
case RogueWaveType.REST:
|
||||
return this.generateRestWave(waveNumber);
|
||||
case RogueWaveType.FINAL_BOSS:
|
||||
return this.generateFinalBossWave(waveNumber);
|
||||
default:
|
||||
return this.generateNormalWave(waveNumber);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成普通波次
|
||||
* 生成普通波次(1-3波)
|
||||
*/
|
||||
static generateNormalWave(waveNumber: number) {
|
||||
const series = getRandomSeries();
|
||||
const seriesConfig = MonsterSeriesConfig[series];
|
||||
// 数量减少为原来的三分之一
|
||||
const baseCount = Math.min(3 + Math.floor(waveNumber / 5), 8);
|
||||
// 普通波次固定数量:10个怪物
|
||||
const baseCount = 10;
|
||||
const monsters = [];
|
||||
|
||||
// 选择怪物类型
|
||||
@@ -245,36 +288,125 @@ export class RogueConfig {
|
||||
series: series,
|
||||
affixes: affixes,
|
||||
enhancedStats: enhanced.stats,
|
||||
buffData: enhanced.buffData
|
||||
buffData: enhanced.buffData,
|
||||
// 肉鸽固定数值
|
||||
rogueHp: RogueStatsConfig.getHp(waveNumber),
|
||||
rogueAttack: RogueStatsConfig.getAttack(waveNumber)
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
waveType: RogueWaveType.NORMAL,
|
||||
monsters: monsters,
|
||||
description: `普通波次 - ${seriesConfig.name}`,
|
||||
description: `第${waveNumber}波 - 普通波次 (10个怪物)`,
|
||||
waveNumber: waveNumber
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成精英波次
|
||||
* 生成怪物潮波次(4-6波)
|
||||
*/
|
||||
static generateHordeWave(waveNumber: number) {
|
||||
const series = getRandomSeries();
|
||||
const seriesConfig = MonsterSeriesConfig[series];
|
||||
|
||||
// 怪物潮固定数量:20个怪物
|
||||
const baseCount = 20;
|
||||
|
||||
const monsters = [];
|
||||
|
||||
// 怪物潮主要使用绿色品质的小怪
|
||||
const hordeMonsters = seriesConfig.allMonsters.filter(uuid => {
|
||||
return HeroInfo[uuid] && HeroInfo[uuid].quality === HQuality.GREEN;
|
||||
});
|
||||
|
||||
if (hordeMonsters.length > 0) {
|
||||
const hordeMonster = hordeMonsters[Math.floor(Math.random() * hordeMonsters.length)];
|
||||
const monsterInfo = HeroInfo[hordeMonster];
|
||||
|
||||
// 生成词条(怪物潮通常没有词条,靠数量取胜)
|
||||
const affixes = this.generateMonsterAffixes(
|
||||
monsterInfo.quality,
|
||||
waveNumber,
|
||||
RogueWaveType.HORDE
|
||||
);
|
||||
|
||||
const enhanced = this.applyAffixesToMonster(affixes, monsterInfo);
|
||||
|
||||
monsters.push({
|
||||
uuid: hordeMonster,
|
||||
count: baseCount,
|
||||
type: "warrior",
|
||||
series: series,
|
||||
isHorde: true,
|
||||
affixes: affixes,
|
||||
enhancedStats: enhanced.stats,
|
||||
buffData: enhanced.buffData,
|
||||
// 肉鸽固定数值
|
||||
rogueHp: RogueStatsConfig.getHp(waveNumber),
|
||||
rogueAttack: RogueStatsConfig.getAttack(waveNumber)
|
||||
});
|
||||
} else {
|
||||
// 如果没有绿色怪物,使用其他怪物
|
||||
const availableTypes = [];
|
||||
if (seriesConfig.monsters.warrior.length > 0) availableTypes.push("warrior");
|
||||
if (seriesConfig.monsters.remote.length > 0) availableTypes.push("remote");
|
||||
if (seriesConfig.monsters.mage.length > 0) availableTypes.push("mage");
|
||||
|
||||
if (availableTypes.length > 0) {
|
||||
const randomType = availableTypes[Math.floor(Math.random() * availableTypes.length)];
|
||||
const typeMonsters = seriesConfig.monsters[randomType];
|
||||
const randomMonster = typeMonsters[Math.floor(Math.random() * typeMonsters.length)];
|
||||
const monsterInfo = HeroInfo[randomMonster];
|
||||
|
||||
const affixes = this.generateMonsterAffixes(
|
||||
monsterInfo.quality,
|
||||
waveNumber,
|
||||
RogueWaveType.HORDE
|
||||
);
|
||||
|
||||
const enhanced = this.applyAffixesToMonster(affixes, monsterInfo);
|
||||
|
||||
monsters.push({
|
||||
uuid: randomMonster,
|
||||
count: baseCount,
|
||||
type: randomType,
|
||||
series: series,
|
||||
isHorde: true,
|
||||
affixes: affixes,
|
||||
enhancedStats: enhanced.stats,
|
||||
buffData: enhanced.buffData,
|
||||
// 肉鸽固定数值
|
||||
rogueHp: RogueStatsConfig.getHp(waveNumber),
|
||||
rogueAttack: RogueStatsConfig.getAttack(waveNumber)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
waveType: RogueWaveType.HORDE,
|
||||
monsters: monsters,
|
||||
description: `第${waveNumber}波 - 怪物潮 (20个怪物)`,
|
||||
waveNumber: waveNumber
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成精英波次(7-8波)
|
||||
*/
|
||||
static generateEliteWave(waveNumber: number) {
|
||||
const series = getRandomSeries();
|
||||
const seriesConfig = MonsterSeriesConfig[series];
|
||||
|
||||
// 查找精英怪物
|
||||
const monsters = [];
|
||||
|
||||
// 1. 生成5个精英怪物
|
||||
const eliteMonsters = seriesConfig.allMonsters.filter(uuid => {
|
||||
return HeroInfo[uuid] && HeroInfo[uuid].quality === HQuality.BLUE;
|
||||
});
|
||||
|
||||
const monsters = [];
|
||||
|
||||
if (eliteMonsters.length > 0) {
|
||||
const eliteMonster = eliteMonsters[Math.floor(Math.random() * eliteMonsters.length)];
|
||||
// 数量减少为原来的三分之一
|
||||
const count = Math.max(1, Math.floor(2 + waveNumber / 8));
|
||||
const monsterInfo = HeroInfo[eliteMonster];
|
||||
|
||||
// 生成精英词条
|
||||
@@ -288,27 +420,65 @@ export class RogueConfig {
|
||||
|
||||
monsters.push({
|
||||
uuid: eliteMonster,
|
||||
count: count,
|
||||
type: "warrior",
|
||||
count: 5, // 固定5个精英
|
||||
type: "elite",
|
||||
series: series,
|
||||
affixes: affixes,
|
||||
enhancedStats: enhanced.stats,
|
||||
buffData: enhanced.buffData
|
||||
buffData: enhanced.buffData,
|
||||
// 肉鸽固定数值
|
||||
rogueHp: RogueStatsConfig.getHp(waveNumber),
|
||||
rogueAttack: RogueStatsConfig.getAttack(waveNumber)
|
||||
});
|
||||
}
|
||||
|
||||
// 2. 生成10个普通小怪
|
||||
const availableTypes = [];
|
||||
if (seriesConfig.monsters.warrior.length > 0) availableTypes.push("warrior");
|
||||
if (seriesConfig.monsters.remote.length > 0) availableTypes.push("remote");
|
||||
if (seriesConfig.monsters.mage.length > 0) availableTypes.push("mage");
|
||||
|
||||
if (availableTypes.length > 0) {
|
||||
const randomType = availableTypes[Math.floor(Math.random() * availableTypes.length)];
|
||||
const typeMonsters = seriesConfig.monsters[randomType];
|
||||
const randomMonster = typeMonsters[Math.floor(Math.random() * typeMonsters.length)];
|
||||
const monsterInfo = HeroInfo[randomMonster];
|
||||
|
||||
// 小怪没有词条
|
||||
const affixes = this.generateMonsterAffixes(
|
||||
monsterInfo.quality,
|
||||
waveNumber,
|
||||
RogueWaveType.NORMAL // 小怪使用普通词条规则
|
||||
);
|
||||
|
||||
const enhanced = this.applyAffixesToMonster(affixes, monsterInfo);
|
||||
|
||||
monsters.push({
|
||||
uuid: randomMonster,
|
||||
count: 10, // 固定10个小怪
|
||||
type: "normal",
|
||||
series: series,
|
||||
affixes: affixes,
|
||||
enhancedStats: enhanced.stats,
|
||||
buffData: enhanced.buffData,
|
||||
// 肉鸽固定数值
|
||||
rogueHp: RogueStatsConfig.getHp(waveNumber),
|
||||
rogueAttack: RogueStatsConfig.getAttack(waveNumber)
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
waveType: RogueWaveType.ELITE,
|
||||
monsters: monsters,
|
||||
description: `精英波次 - ${seriesConfig.name}精锐`,
|
||||
description: `第${waveNumber}波 - 精英波次 (5个精英+10个小怪)`,
|
||||
waveNumber: waveNumber
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成Boss波次
|
||||
* 生成最终Boss波次(第9波)
|
||||
*/
|
||||
static generateBossWave(waveNumber: number) {
|
||||
static generateFinalBossWave(waveNumber: number) {
|
||||
const series = getRandomSeries();
|
||||
const seriesConfig = MonsterSeriesConfig[series];
|
||||
|
||||
@@ -323,53 +493,72 @@ export class RogueConfig {
|
||||
|
||||
const bossInfo = HeroInfo[bossMonster];
|
||||
|
||||
// 生成Boss词条
|
||||
// 生成最终Boss词条
|
||||
const bossAffixes = this.generateMonsterAffixes(
|
||||
bossInfo.quality,
|
||||
waveNumber,
|
||||
RogueWaveType.BOSS
|
||||
RogueWaveType.FINAL_BOSS
|
||||
);
|
||||
|
||||
const enhancedBoss = this.applyAffixesToMonster(bossAffixes, bossInfo);
|
||||
|
||||
// Boss数量减少为原来的三分之一(一般Boss只刷1只)
|
||||
const monsters = [{
|
||||
// 1个Boss + 5个小怪
|
||||
const monsters = [];
|
||||
|
||||
// 1. 添加Boss
|
||||
monsters.push({
|
||||
uuid: bossMonster,
|
||||
count: 1,
|
||||
type: "boss",
|
||||
type: "final_boss",
|
||||
series: series,
|
||||
isBoss: true,
|
||||
isFinalBoss: true,
|
||||
affixes: bossAffixes,
|
||||
enhancedStats: enhancedBoss.stats,
|
||||
buffData: enhancedBoss.buffData
|
||||
}];
|
||||
buffData: enhancedBoss.buffData,
|
||||
// 肉鸽固定数值
|
||||
rogueHp: RogueStatsConfig.getHp(waveNumber),
|
||||
rogueAttack: RogueStatsConfig.getAttack(waveNumber)
|
||||
});
|
||||
|
||||
// 2. 添加5个小怪
|
||||
const availableTypes = [];
|
||||
if (seriesConfig.monsters.warrior.length > 0) availableTypes.push("warrior");
|
||||
if (seriesConfig.monsters.remote.length > 0) availableTypes.push("remote");
|
||||
if (seriesConfig.monsters.mage.length > 0) availableTypes.push("mage");
|
||||
|
||||
if (availableTypes.length > 0) {
|
||||
const randomType = availableTypes[Math.floor(Math.random() * availableTypes.length)];
|
||||
const typeMonsters = seriesConfig.monsters[randomType];
|
||||
const randomMonster = typeMonsters[Math.floor(Math.random() * typeMonsters.length)];
|
||||
const monsterInfo = HeroInfo[randomMonster];
|
||||
|
||||
// 小怪没有词条
|
||||
const affixes = this.generateMonsterAffixes(
|
||||
monsterInfo.quality,
|
||||
waveNumber,
|
||||
RogueWaveType.NORMAL // 小怪使用普通词条规则
|
||||
);
|
||||
|
||||
const enhanced = this.applyAffixesToMonster(affixes, monsterInfo);
|
||||
|
||||
monsters.push({
|
||||
uuid: randomMonster,
|
||||
count: 5, // 固定5个小怪
|
||||
type: "normal",
|
||||
series: series,
|
||||
affixes: affixes,
|
||||
enhancedStats: enhanced.stats,
|
||||
buffData: enhanced.buffData,
|
||||
// 肉鸽固定数值
|
||||
rogueHp: RogueStatsConfig.getHp(waveNumber),
|
||||
rogueAttack: RogueStatsConfig.getAttack(waveNumber)
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
waveType: RogueWaveType.BOSS,
|
||||
waveType: RogueWaveType.FINAL_BOSS,
|
||||
monsters: monsters,
|
||||
description: `Boss战 - ${seriesConfig.name}首领`,
|
||||
waveNumber: waveNumber
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成商店波次
|
||||
*/
|
||||
static generateShopWave(waveNumber: number) {
|
||||
return {
|
||||
waveType: RogueWaveType.SHOP,
|
||||
description: "商店波次",
|
||||
waveNumber: waveNumber
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成休息波次
|
||||
*/
|
||||
static generateRestWave(waveNumber: number) {
|
||||
return {
|
||||
waveType: RogueWaveType.REST,
|
||||
description: "休息波次",
|
||||
description: `第${waveNumber}波 - 最终Boss战 (1个Boss+5个小怪)`,
|
||||
waveNumber: waveNumber
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,16 +1,22 @@
|
||||
import { _decorator, Component, Node } from 'cc';
|
||||
import { _decorator, CCInteger, Component, Node } from 'cc';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('move')
|
||||
export class move extends Component {
|
||||
@property({ type: CCInteger })
|
||||
speed:number=2
|
||||
@property({ type: CCInteger })
|
||||
maxX:number=640
|
||||
@property({ type: CCInteger })
|
||||
minX:number=-640
|
||||
start() {
|
||||
|
||||
}
|
||||
|
||||
update(dt: number) {
|
||||
this.node.setPosition(this.node.position.x+dt*15,this.node.position.y)
|
||||
if(this.node.position.x >= 1700){
|
||||
this.node.setPosition(-1700,this.node.position.y)
|
||||
this.node.setPosition(this.node.position.x+dt*this.speed,this.node.position.y)
|
||||
if(this.node.position.x >= this.maxX){
|
||||
this.node.setPosition(this.minX,this.node.position.y)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,9 +51,9 @@ export class Skill extends ecs.Entity {
|
||||
return;
|
||||
}
|
||||
const node = instantiate(prefab);
|
||||
|
||||
var scene = smc.map.MapView.scene;
|
||||
// 设置节点属性
|
||||
node.parent = parent;
|
||||
node.parent = scene.entityLayer!.node!;
|
||||
node.setPosition(startPos);
|
||||
if(caster.fac==FacSet.MON){
|
||||
node.scale=v3(node.scale.x*-1,1,1)
|
||||
|
||||
@@ -1,153 +1,176 @@
|
||||
# 🛡️ 塔防三件套装备系统
|
||||
|
||||
## ⚔️ 武器系统设计规范
|
||||
**命名规则**:
|
||||
- 同品质武器全等级使用相同名称
|
||||
- 名称后不再标注等级
|
||||
- 品质分级:绿(基础)→ 蓝(强化)→ 紫(终极)
|
||||
- CD修正固定(同类型武器全等级相同)
|
||||
|
||||
**核心机制**:
|
||||
- 基准CD:1.5秒
|
||||
- 实际CD = 1.5 × (1 + CD修正%)
|
||||
- 剑:-20% | 斧:0% | 刀:-26.7% | 锤:+6.7%
|
||||
- 剑类核心机制:默认穿刺伤害是上一次伤害的50%
|
||||
|
||||
### 📋 剑类武器数据表
|
||||
| 品质 | 名称 | **CD修正** | 实际CD | 攻击加成 | 攻击加成百分比 | 核心特性 | 穿透伤害比率(进化) |
|
||||
|------|--------------|-----------|--------|----------|----------------|------------|------------------|
|
||||
| 绿 | 穿刺短剑 | -20% | 1.20s | +50 | 25% | 穿透1目标 | - |
|
||||
| 蓝 | 寒锋长剑 | -20% | 1.20s | +100 | 50% | 穿透2目标 | 30% |
|
||||
| 紫 | 龙鳞穿刺者 | -20% | 1.20s | +200 | 100% | 穿透3目标 | 40% |
|
||||
| 紫 | 冰霜穿刺者 | -20% | 1.20s | +200 | 100% | 穿透3目标 | 冰冻概率+25% |
|
||||
# 🛡️ 塔防 强化 三选一 系统
|
||||
##加成设定,最高品质,其他等级将20%
|
||||
1. 攻击:+50%
|
||||
2. 暴击:+25%
|
||||
3. 暴击加成:+50%
|
||||
4. 闪避:+15%
|
||||
5. 攻击次数+1,伤害减40%
|
||||
6. Hp:+100%
|
||||
7. 免伤:15%
|
||||
8. 普通攻击穿透+1
|
||||
9. 攻击加速:40%
|
||||
10. 技能加速:40%
|
||||
11. 冰冻概率:10%
|
||||
12. 击退概率:10%
|
||||
13. 击晕概率:10%
|
||||
14. 反伤: 20%
|
||||
14. 吸血: 20%
|
||||
|
||||
|
||||
## ⚔️ 斧类武器核心设计
|
||||
**双重概率特性**:
|
||||
1. **风怒概率**:攻击时概率触发额外攻击
|
||||
2. **击退概率**:攻击时概率击退目标
|
||||
3. **击晕概率**:攻击时概率击晕目标(仅泰坦撕裂者)
|
||||
## 品质设定
|
||||
蓝色
|
||||
紫色
|
||||
各品质之间相差15%
|
||||
## 玩家最终拥有最多6个天赋
|
||||
|
||||
**进化规则**:
|
||||
- 品质提升风怒概率和击退概率
|
||||
- 斧类核心机制:风怒默认伤害额外一次攻击 伤害100%
|
||||
## 📋 斧类武器完整数据表
|
||||
## 天赋流派build 方向
|
||||
系统设定的时候需要考虑平衡,按4:2 按默认4个天赋确定一个主要流派方向,如4个暴击 可以实现100%暴击,实际玩家根据自身喜好 自由组合
|
||||
|
||||
| 品质 | 名称 | CD | 攻击加成 | 攻击加成百分比 | 风怒概率 | 击退概率 |
|
||||
|------|--------------|------|----------|----------------|----------|----------|
|
||||
| 绿 | 风暴战斧 | 1.50s | +50 | 25% | 40% | 20% |
|
||||
| 蓝 | 寒锋巨斧 | 1.50s | +100 | 50% | 50% | - |
|
||||
| 紫 | 龙鳞撕裂者 | 1.50s | +200 | 100% | 60% | 27% |
|
||||
| 紫 | 泰坦撕裂者 | 1.50s | +200 | 100% | 60% | 击晕概率+12.5% |
|
||||
### 攻击系流派
|
||||
1. 高攻 高速 : 4个高攻 + 2个高攻速
|
||||
2. 高攻 高暴击 : 4个高攻 + 2个高暴击
|
||||
3. 高攻 高闪避 : 4个高攻 + 2个高闪避
|
||||
4. 高攻 高穿透 : 4个高攻 + 2个普攻穿透
|
||||
5. 暴击流 : 4个暴击 + 2个暴击加成 (100%暴击率)
|
||||
6. 多段攻击流 : 4个攻击次数+1 + 2个攻击加速 (高频低伤)
|
||||
|
||||
# 🔨 锤类武器完整配置表(含CD修正)
|
||||
### 防御系流派
|
||||
7. 坦克流 : 4个HP + 2个免伤 (超高生存)
|
||||
8. 闪避流 : 4个闪避 + 2个HP (60%闪避率)
|
||||
9. 反伤流 : 4个反伤 + 2个HP (80%反伤)
|
||||
10. 吸血流 : 4个吸血 + 2个攻击 (80%吸血)
|
||||
|
||||
## 📜 核心机制说明
|
||||
- **基准CD**:1.5秒
|
||||
- **CD修正**:+6.7%(全等级固定)
|
||||
- **实际CD**:1.5 × (1 + 0.067) ≈ **1.60s**
|
||||
- 暴击机制:基础暴击伤害150%,装备提供额外暴击伤害加成
|
||||
- 击晕效果:蓝色/紫色品质攻击时概率击晕目标,使目标无法行动1秒并重置CD
|
||||
### 控制系流派
|
||||
11. 冰冻控制流 : 4个冰冻概率 + 2个技能加速 (40%冰冻率)
|
||||
12. 击退控制流 : 4个击退概率 + 2个攻击加速 (40%击退率)
|
||||
13. 击晕控制流 : 4个击晕概率 + 2个攻击 (40%击晕率)
|
||||
14. 全能控制流 : 2个冰冻 + 2个击退 + 2个击晕 (20%全控制)
|
||||
|
||||
## 📊 完整数据表
|
||||
### 技能系流派
|
||||
15. 技能流 : 4个技能加速 + 2个攻击 (160%技能加速)
|
||||
16. 平衡技能流 : 4个技能加速 + 2个暴击 (技能暴击)
|
||||
|
||||
| 品质 | 名称 | CD修正 | 实际CD | 攻击加成 | 攻击加成百分比 | 暴击率 | 暴击伤害加成 | 特殊属性 |
|
||||
|------|--------------|--------|--------|----------|----------------|--------|--------------|----------|
|
||||
| 绿 | 碎骨战锤 | +6.7% | 1.60s | +50 | 25% | 20% | +35% | - |
|
||||
| 蓝 | 雷霆重锤 | +6.7% | 1.60s | +100 | 50% | 25% | +45% | - |
|
||||
| 紫 | 龙鳞粉碎者 | +6.7% | 1.60s | +200 | 100% | 30% | +70% | 击晕概率+15% |
|
||||
| 紫 | 泰坦粉碎者 | +6.7% | 1.60s | +200 | 100% | 30% | - | 击晕概率+30% |
|
||||
### 混合流派
|
||||
17. 攻防平衡流 : 2个攻击 + 2个HP + 2个免伤
|
||||
18. 速度流 : 4个攻击加速 + 2个技能加速 (全方位加速)
|
||||
19. 穿透暴击流 : 2个穿透 + 2个暴击 + 2个暴击加成
|
||||
20. 生存输出流 : 2个攻击 + 2个吸血 + 2个闪避
|
||||
|
||||
## ⚔️ 刀类武器完整配置表(含CD修正)
|
||||
---
|
||||
|
||||
## 📜 核心机制说明
|
||||
- **基准CD**:1.5秒
|
||||
- **CD修正**:-26.7%(全等级固定)
|
||||
- **实际CD**:1.5 × (1 - 0.267) ≈ **1.10s**
|
||||
- 易伤效果:攻击时施加易伤状态,增加后续伤害
|
||||
- 特殊属性:紫色品质易伤持续次数+1
|
||||
# 📊 各流派天赋加成总和计算表
|
||||
|
||||
## 📊 完整数据表
|
||||
## 品质系数说明
|
||||
- **紫色**:100%(基础数值)
|
||||
- **蓝色**:85%(减少15%)
|
||||
- **绿色**:70%(减少30%)
|
||||
|
||||
| 品质 | 名称 | CD修正 | 实际CD | 攻击加成 | 攻击加成百分比 | 易伤加成 | 特殊属性 |
|
||||
|------|--------------|--------|--------|----------|----------------|----------|----------|
|
||||
| 绿 | 影刃 | -26.7% | 1.10s | +50 | 25% | +25% | - |
|
||||
| 蓝 | 寒月双刃 | -26.7% | 1.10s | +100 | 50% | +35% | - |
|
||||
| 紫 | 龙鳞切割者 | -26.7% | 1.10s | +200 | 100% | +45% | 易伤持续次数+1 |
|
||||
| 紫 | 冰霜切割者 | -26.7% | 1.10s | +200 | 100% | +45% | 冰冻概率+25% |
|
||||
## 攻击系流派加成总和
|
||||
|
||||
## ⚙️ 系统兼容性说明
|
||||
1. **CD修正统一性**:
|
||||
- 所有刀类武器固定-26.7%修正
|
||||
- 实际CD四舍五入保留两位小数
|
||||
### 1. 高攻高速流派
|
||||
- **紫色**:攻击+200% + 攻击加速+80%
|
||||
- **蓝色**:攻击+170% + 攻击加速+68%
|
||||
- **绿色**:攻击+140% + 攻击加速+56%
|
||||
|
||||
2. **易伤机制说明**:
|
||||
- 攻击时对目标施加易伤状态
|
||||
- 易伤状态增加后续攻击伤害
|
||||
- 紫色品质易伤持续次数+1,延长易伤效果
|
||||
### 2. 高攻高暴击流派
|
||||
- **紫色**:攻击+200% + 暴击+50%
|
||||
- **蓝色**:攻击+170% + 暴击+42.5%
|
||||
- **绿色**:攻击+140% + 暴击+35%
|
||||
|
||||
3. **双人协同参数**:
|
||||
```math
|
||||
\text{理论攻击频率} = \frac{2}{1.10} \approx 1.82 \text{次/秒}
|
||||
\text{易伤覆盖率} = \frac{5}{1.82} \approx 2.75 \text{秒持续效果}
|
||||
```
|
||||
### 3. 高攻高闪避流派
|
||||
- **紫色**:攻击+200% + 闪避+30%
|
||||
- **蓝色**:攻击+170% + 闪避+25.5%
|
||||
- **绿色**:攻击+140% + 闪避+21%
|
||||
|
||||
## 🛡️ 盾牌系统设计规范(属性互斥)
|
||||
**核心规则**:
|
||||
1. 绿/蓝盾牌:仅能拥有闪避比率、Debuff减免、反伤比率中的一项
|
||||
2. 紫盾牌:可同时拥有两项属性(单项数值降低)
|
||||
3. HP最大值改为百分比提升
|
||||
4. 紫装专属:被攻击5次获得1技能点
|
||||
### 4. 高攻高穿透流派
|
||||
- **紫色**:攻击+200% + 穿透+2层
|
||||
- **蓝色**:攻击+170% + 穿透+1.7层
|
||||
- **绿色**:攻击+140% + 穿透+1.4层
|
||||
|
||||
| 品质 | 完整名称 | HP加成 | 闪避比率 | 附加属性 | 特殊属性 |
|
||||
|------|--------------|--------|----------|------------------|----------|
|
||||
| 绿 | 风影圆盾 | +40% | 40% | - | - |
|
||||
| 蓝 | 流光护盾 | +45% | 40% | Debuff减免15% | - |
|
||||
| 紫 | 量子闪避者 | +50% | 45% | 免伤15% |- |
|
||||
### 5. 暴击流
|
||||
- **紫色**:暴击+100% + 暴击加成+100%
|
||||
- **蓝色**:暴击+85% + 暴击加成+85%
|
||||
- **绿色**:暴击+70% + 暴击加成+70%
|
||||
|
||||
| 品质 | 完整名称 | HP加成 | 反伤比率 | 附加属性 | 特殊属性 |
|
||||
|------|--------------|--------|----------|------------------|----------|
|
||||
| 绿 | 荆棘木盾 | +85% | 30% | - | - |
|
||||
| 蓝 | 钢铁尖刺 | +90% | 30% | Debuff减免15% | - |
|
||||
| 紫 | 龙鳞反伤者 | +110% | 35% | 免伤15% |- |
|
||||
### 6. 多段攻击流
|
||||
- **紫色**:攻击次数+4(-160%伤害) + 攻击加速+80%
|
||||
- **蓝色**:攻击次数+3.4(-136%伤害) + 攻击加速+68%
|
||||
- **绿色**:攻击次数+2.8(-112%伤害) + 攻击加速+56%
|
||||
|
||||
| 品质 | 完整名称 | HP加成 | 免伤比例 | 附加属性 | 特殊属性 |
|
||||
|------|--------------|--------|----------|------------------|----------|
|
||||
| 绿 | 守护圆盾 | +65% | 20% | - | - |
|
||||
| 蓝 | 圣光壁垒 | +70% | 20% | Debuff减免15% | - |
|
||||
| 紫 | 永恒守护者 | +75% | 25% | 闪避15% | - |
|
||||
## 防御系流派加成总和
|
||||
|
||||
## 🟢 绿色品质饰品(自然元素系列)
|
||||
### 7. 坦克流
|
||||
- **紫色**:HP+400% + 免伤+30%
|
||||
- **蓝色**:HP+340% + 免伤+25.5%
|
||||
- **绿色**:HP+280% + 免伤+21%
|
||||
|
||||
| 品质 | 名称 | 属性类型 | 属性值 | 属性类型2 | 属性值2 | 核心属性 | 核心值 |
|
||||
|------|------------|----------|--------|-----------|---------|----------|--------|
|
||||
| 绿 | 磐石徽章 | HP加成 | +60% | - | - | - | - |
|
||||
| 绿 | 刚玉戒指 | 免伤 | +25% | - | - | - | - |
|
||||
| 绿 | 烈阳吊坠 | 攻击 | +55% | - | - | - | - |
|
||||
| 极 | 雷暴耳饰 | 暴伤 | +40% | - | - | - | - |
|
||||
| 绿 | 迷雾指环 | 闪避 | +15% | - | - | - | - |
|
||||
| 绿 | 荆棘挂饰 | 反伤 | +20% | - | - | - | - |
|
||||
### 8. 闪避流
|
||||
- **紫色**:闪避+60% + HP+200%
|
||||
- **蓝色**:闪避+51% + HP+170%
|
||||
- **绿色**:闪避+42% + HP+140%
|
||||
|
||||
## 🔵 蓝色品质饰品(天文现象系列)
|
||||
### 9. 反伤流
|
||||
- **紫色**:反伤+80% + HP+200%
|
||||
- **蓝色**:反伤+68% + HP+170%
|
||||
- **绿色**:反伤+56% + HP+140%
|
||||
|
||||
| 品质 | 名称 | 属性类型1 | 属性值1 | 属性类型2 | 属性值2 | 核心属性 | 核心值 |
|
||||
|------|------------|-----------|---------|-----------|---------|----------|--------|
|
||||
| 蓝 | 星辉徽章 | HP加成 | +40% | 免伤 | +20% | - | - |
|
||||
| 蓝 | 霜晶戒指 | 攻击 | +40% | 暴伤 | +30% | - | - |
|
||||
| 蓝 | 流光吊坠 | HP加成 | +35% | 闪避 | +15% | - | - |
|
||||
| 蓝 | 地脉指环 | 免伤 | +20% | 反伤 | +15% | - | - |
|
||||
| 蓝 | 炎阳耳饰 | 攻击 | +45% | 闪避 | +10% | - | - |
|
||||
| 蓝 | 潮汐挂饰 | 暴伤 | +35% | 反伤 | +15% | - | - |
|
||||
### 10. 吸血流
|
||||
- **紫色**:吸血+80% + 攻击+100%
|
||||
- **蓝色**:吸血+68% + 攻击+85%
|
||||
- **绿色**:吸血+56% + 攻击+70%
|
||||
|
||||
## 🟣 紫色品质饰品(神话概念系列)
|
||||
## 控制系流派加成总和
|
||||
|
||||
| 品质 | 名称 | 属性类型1 | 属性值1 | 属性类型2 | 属性值2 | 核心属性 | 核心值 |
|
||||
|------|------------|-----------|---------|-----------|---------|------------------|--------|
|
||||
| 紫 | 天穹徽章 | HP加成 | +45% | 免伤 | +20% | 攻击触发属性增加的值额外加值 | 2 |
|
||||
| 紫 | 神木戒指 | 攻击 | +50% | 暴伤 | +35% | 改成暴击 | 10% |
|
||||
| 紫 | 日曜吊坠 | HP加成 | +40% | 攻击 | +45% | 攻击n次后增加主将攻击力 | 2|
|
||||
| 紫 | 月影指环 | 免伤 | +20% | 暴伤 | +35% | 攻击n次后增加主将生命值 | 10 |
|
||||
| 紫 | 星尘耳饰 | 闪避 | +15% | 攻击 | +50% | 改成技能cd减少 | -20% |
|
||||
| 紫 | 深渊挂饰 | 反伤 | +15% | HP加成 | +50% | 穿刺 | 2 |
|
||||
| 紫 | 永夜徽章 | 免伤 | +25% | 暴伤 | +35% | 双倍受击触发 | 2 |
|
||||
### 11. 冰冻控制流
|
||||
- **紫色**:冰冻+40% + 技能加速+80%
|
||||
- **蓝色**:冰冻+34% + 技能加速+68%
|
||||
- **绿色**:冰冻+28% + 技能加速+56%
|
||||
|
||||
### 12. 击退控制流
|
||||
- **紫色**:击退+40% + 攻击加速+80%
|
||||
- **蓝色**:击退+34% + 攻击加速+68%
|
||||
- **绿色**:击退+28% + 攻击加速+56%
|
||||
|
||||
### 13. 击晕控制流
|
||||
- **紫色**:击晕+40% + 攻击+100%
|
||||
- **蓝色**:击晕+34% + 攻击+85%
|
||||
- **绿色**:击晕+28% + 攻击+70%
|
||||
|
||||
### 14. 全能控制流
|
||||
- **紫色**:冰冻+20% + 击退+20% + 击晕+20%
|
||||
- **蓝色**:冰冻+17% + 击退+17% + 击晕+17%
|
||||
- **绿色**:冰冻+14% + 击退+14% + 击晕+14%
|
||||
|
||||
## 技能系流派加成总和
|
||||
|
||||
### 15. 技能流
|
||||
- **紫色**:技能加速+160% + 攻击+100%
|
||||
- **蓝色**:技能加速+136% + 攻击+85%
|
||||
- **绿色**:技能加速+112% + 攻击+70%
|
||||
|
||||
### 16. 平衡技能流
|
||||
- **紫色**:技能加速+160% + 暴击+50%
|
||||
- **蓝色**:技能加速+136% + 暴击+42.5%
|
||||
- **绿色**:技能加速+112% + 暴击+35%
|
||||
|
||||
## 混合流派加成总和
|
||||
|
||||
### 17. 攻防平衡流
|
||||
- **紫色**:攻击+100% + HP+200% + 免伤+30%
|
||||
- **蓝色**:攻击+85% + HP+170% + 免伤+25.5%
|
||||
- **绿色**:攻击+70% + HP+140% + 免伤+21%
|
||||
|
||||
### 18. 速度流
|
||||
- **紫色**:攻击加速+160% + 技能加速+80%
|
||||
- **蓝色**:攻击加速+136% + 技能加速+68%
|
||||
- **绿色**:攻击加速+112% + 技能加速+56%
|
||||
|
||||
### 19. 穿透暴击流
|
||||
- **紫色**:穿透+2层 + 暴击+50% + 暴击加成+100%
|
||||
- **蓝色**:穿透+1.7层 + 暴击+42.5% + 暴击加成+85%
|
||||
- **绿色**:穿透+1.4层 + 暴击+35% + 暴击加成+70%
|
||||
|
||||
### 20. 生存输出流
|
||||
- **紫色**:攻击+100% + 吸血+40% + 闪避+30%
|
||||
- **蓝色**:攻击+85% + 吸血+34% + 闪避+25.5%
|
||||
- **绿色**:攻击+70% + 吸血+28% + 闪避+21%
|
||||