改了 好多
1301
assets/resources/game/heros/equips2.plist
Normal file
3927
assets/resources/game/heros/equips2.plist.meta
Normal file
BIN
assets/resources/game/heros/equips2.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
42
assets/resources/game/heros/equips2.png.meta
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"ver": "1.0.26",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "15588387-53dc-4224-bf79-8427e1cc1e9a",
|
||||
"files": [
|
||||
".json",
|
||||
".png"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "15588387-53dc-4224-bf79-8427e1cc1e9a@6c48a",
|
||||
"displayName": "equips2",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"userData": {
|
||||
"wrapModeS": "repeat",
|
||||
"wrapModeT": "repeat",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"anisotropy": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "15588387-53dc-4224-bf79-8427e1cc1e9a",
|
||||
"visible": false
|
||||
},
|
||||
"ver": "1.0.22",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"hasAlpha": true,
|
||||
"type": "texture",
|
||||
"fixAlphaTransparencyArtifacts": false,
|
||||
"redirect": "15588387-53dc-4224-bf79-8427e1cc1e9a@6c48a"
|
||||
}
|
||||
}
|
||||
9
assets/resources/game/map/Backgrounds.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "af9c56db-ffea-45ca-9c39-2e83100a8cf8",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
9
assets/resources/game/map/Backgrounds/BG1.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "39dd8f3d-b572-45d7-8c3a-88fcce1783bc",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/resources/game/map/Backgrounds/BG1/Full.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
134
assets/resources/game/map/Backgrounds/BG1/Full.png.meta
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
9
assets/resources/game/map/Backgrounds/BG2.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "b47240ec-1ac5-4bda-815a-d0a0302a475e",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/resources/game/map/Backgrounds/BG2/Full.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
134
assets/resources/game/map/Backgrounds/BG2/Full.png.meta
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
9
assets/resources/game/map/Backgrounds/BG3.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "54a3e46a-1fca-498c-ac51-7bf907d2b601",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/resources/game/map/Backgrounds/BG3/Full.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
134
assets/resources/game/map/Backgrounds/BG3/Full.png.meta
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"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": 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": "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"
|
||||
}
|
||||
}
|
||||
9
assets/resources/game/map/Backgrounds/BG4.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "f39f3d15-14ea-49a3-af82-271aba2b51e0",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/resources/game/map/Backgrounds/BG4/Full.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
134
assets/resources/game/map/Backgrounds/BG4/Full.png.meta
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
9
assets/resources/game/map/Backgrounds/BG5.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "9f547f2a-09e1-4114-b025-c0fb13f211f0",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/resources/game/map/Backgrounds/BG5/Full.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
134
assets/resources/game/map/Backgrounds/BG5/Full.png.meta
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
9
assets/resources/game/map/Backgrounds/BG6.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "ae3068cc-7971-430a-9410-9d7bc64e0d9f",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/resources/game/map/Backgrounds/BG6/Full.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
134
assets/resources/game/map/Backgrounds/BG6/Full.png.meta
Normal file
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 942 KiB |
@@ -46,10 +46,10 @@
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 736,
|
||||
"height": 1312,
|
||||
"rawWidth": 736,
|
||||
"rawHeight": 1312,
|
||||
"width": 640,
|
||||
"height": 1416,
|
||||
"rawWidth": 640,
|
||||
"rawHeight": 1416,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
@@ -61,17 +61,17 @@
|
||||
"meshType": 0,
|
||||
"vertices": {
|
||||
"rawPosition": [
|
||||
-368,
|
||||
-656,
|
||||
-320,
|
||||
-708,
|
||||
0,
|
||||
368,
|
||||
-656,
|
||||
320,
|
||||
-708,
|
||||
0,
|
||||
-368,
|
||||
656,
|
||||
-320,
|
||||
708,
|
||||
0,
|
||||
368,
|
||||
656,
|
||||
320,
|
||||
708,
|
||||
0
|
||||
],
|
||||
"indexes": [
|
||||
@@ -84,12 +84,12 @@
|
||||
],
|
||||
"uv": [
|
||||
0,
|
||||
1312,
|
||||
736,
|
||||
1312,
|
||||
1416,
|
||||
640,
|
||||
1416,
|
||||
0,
|
||||
0,
|
||||
736,
|
||||
640,
|
||||
0
|
||||
],
|
||||
"nuv": [
|
||||
@@ -103,13 +103,13 @@
|
||||
1
|
||||
],
|
||||
"minPos": [
|
||||
-368,
|
||||
-656,
|
||||
-320,
|
||||
-708,
|
||||
0
|
||||
],
|
||||
"maxPos": [
|
||||
368,
|
||||
656,
|
||||
320,
|
||||
708,
|
||||
0
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"skeleton": { "hash": "77Co1XSdrhx5pbYNC4+3itDmNzU=", "spine": "3.8.75", "x": -159, "y": -132.52, "width": 319, "height": 257.52 },
|
||||
"skeleton": { "hash": "8pYqU/laTecvmfjtjj7k5PZ07Fo=", "spine": "3.8.75", "x": -142.08, "y": -9.48, "width": 319, "height": 250 },
|
||||
"bones": [
|
||||
{ "name": "root" },
|
||||
{ "name": "hui", "parent": "root", "y": -88.52 }
|
||||
{ "name": "root", "y": 115.52 },
|
||||
{ "name": "hui", "parent": "root", "x": 8.19, "y": -76.14 }
|
||||
],
|
||||
"slots": [
|
||||
{ "name": "main", "bone": "root", "attachment": "cold_wind_1/appear/cappear1_1" },
|
||||
@@ -25,7 +25,7 @@
|
||||
"cold_wind_1/appear/cappear1_10": { "x": 0.5, "width": 277, "height": 250 }
|
||||
},
|
||||
"hui": {
|
||||
"cold_wind_2/appear/cappear2_1": { "x": 0.5, "y": 0.5, "width": 319, "height": 89 },
|
||||
"cold_wind_2/appear/cappear2_1": { "x": 9.24, "y": 7.18, "width": 319, "height": 89 },
|
||||
"cold_wind_2/appear/cappear2_2": { "x": 0.5, "y": 0.5, "width": 319, "height": 89 },
|
||||
"cold_wind_2/appear/cappear2_3": { "x": 0.5, "y": 0.5, "width": 319, "height": 89 },
|
||||
"cold_wind_2/appear/cappear2_4": { "x": 0.5, "y": 0.5, "width": 319, "height": 89 },
|
||||
|
||||
@@ -1257,7 +1257,7 @@
|
||||
"__type__": "cc.RealKeyframeValue",
|
||||
"interpolationMode": 0,
|
||||
"tangentWeightMode": 0,
|
||||
"value": 60,
|
||||
"value": 120,
|
||||
"rightTangent": 0,
|
||||
"rightTangentWeight": 1,
|
||||
"leftTangent": 0,
|
||||
@@ -1457,7 +1457,7 @@
|
||||
"__type__": "cc.RealKeyframeValue",
|
||||
"interpolationMode": 0,
|
||||
"tangentWeightMode": 0,
|
||||
"value": 70,
|
||||
"value": 130,
|
||||
"rightTangent": 0,
|
||||
"rightTangentWeight": 1,
|
||||
"leftTangent": 0,
|
||||
|
||||
@@ -25,14 +25,14 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 8
|
||||
"__id__": 10
|
||||
},
|
||||
{
|
||||
"__id__": 10
|
||||
"__id__": 12
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 12
|
||||
"__id__": 14
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -79,15 +79,18 @@
|
||||
},
|
||||
{
|
||||
"__id__": 5
|
||||
},
|
||||
{
|
||||
"__id__": 7
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 7
|
||||
"__id__": 9
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -15,
|
||||
"y": 0,
|
||||
"y": 15,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -100,7 +103,7 @@
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0.4,
|
||||
"y": 0.4,
|
||||
"y": 0.5,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
@@ -186,6 +189,40 @@
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "32r0xl1k5DpI1RJFYPzNLZ"
|
||||
},
|
||||
{
|
||||
"__type__": "f680dkagx9PmbfqtF463/Ua",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 2
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 8
|
||||
},
|
||||
"speed": 600,
|
||||
"controlPointSide": 1,
|
||||
"controlPointOffset": 0.5,
|
||||
"controlPointRandomness": 0.3,
|
||||
"autoRotate": true,
|
||||
"showTrajectory": true,
|
||||
"trajectoryColor": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 0,
|
||||
"g": 255,
|
||||
"b": 0,
|
||||
"a": 255
|
||||
},
|
||||
"trajectoryWidth": 3,
|
||||
"easing": "linear",
|
||||
"rotationSmoothness": 0.6,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "ce9AFWN2BNBpngczHlixQi"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
@@ -209,7 +246,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 9
|
||||
"__id__": 11
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -237,7 +274,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 11
|
||||
"__id__": 13
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
|
||||
@@ -35,10 +35,13 @@
|
||||
},
|
||||
{
|
||||
"__id__": 14
|
||||
},
|
||||
{
|
||||
"__id__": 16
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 16
|
||||
"__id__": 18
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -93,7 +96,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"y": -50.3,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -139,7 +142,7 @@
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.49843260188087773,
|
||||
"y": 0.5
|
||||
"y": 0.5146008462489697
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
@@ -252,7 +255,7 @@
|
||||
"fileId": "0f1YvlzyZOLIAHiCyCBXRz"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.BoxCollider2D",
|
||||
"__type__": "f680dkagx9PmbfqtF463/Ua",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
@@ -263,7 +266,41 @@
|
||||
"__prefab": {
|
||||
"__id__": 13
|
||||
},
|
||||
"tag": 0,
|
||||
"speed": 600,
|
||||
"controlPointSide": 1,
|
||||
"controlPointOffset": 0.5,
|
||||
"controlPointRandomness": 0.3,
|
||||
"autoRotate": true,
|
||||
"showTrajectory": true,
|
||||
"trajectoryColor": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 0,
|
||||
"g": 255,
|
||||
"b": 0,
|
||||
"a": 255
|
||||
},
|
||||
"trajectoryWidth": 3,
|
||||
"easing": "linear",
|
||||
"rotationSmoothness": 0.6,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "0e6z+f6idKOa2zCg9k4m7q"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.BoxCollider2D",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 1
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 15
|
||||
},
|
||||
"tag": 8,
|
||||
"_group": 4,
|
||||
"_density": 1,
|
||||
"_sensor": true,
|
||||
@@ -271,19 +308,19 @@
|
||||
"_restitution": 0,
|
||||
"_offset": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 3.6,
|
||||
"y": -10.2
|
||||
"x": 4.2,
|
||||
"y": 27.2
|
||||
},
|
||||
"_size": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 63.6,
|
||||
"height": 106.7
|
||||
"width": 52.3,
|
||||
"height": 111
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "abSos3/xZFOZSp08Izyl05"
|
||||
"fileId": "73btikQlhE65V10+8BJjPu"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.RigidBody2D",
|
||||
@@ -295,12 +332,12 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 15
|
||||
"__id__": 17
|
||||
},
|
||||
"enabledContactListener": true,
|
||||
"bullet": false,
|
||||
"awakeOnLoad": true,
|
||||
"_group": 1,
|
||||
"_group": 4,
|
||||
"_type": 1,
|
||||
"_allowSleep": false,
|
||||
"_gravityScale": 1,
|
||||
@@ -317,7 +354,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "2apGMb5RtE2YHEPWvhVoTH"
|
||||
"fileId": "e4cImvm/JNgbcCdLeGrq6e"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 20,
|
||||
"y": 40,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
|
||||
@@ -28,26 +28,26 @@
|
||||
"__id__": 22
|
||||
},
|
||||
{
|
||||
"__id__": 32
|
||||
"__id__": 40
|
||||
},
|
||||
{
|
||||
"__id__": 44
|
||||
"__id__": 52
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 54
|
||||
"__id__": 62
|
||||
},
|
||||
{
|
||||
"__id__": 56
|
||||
"__id__": 64
|
||||
},
|
||||
{
|
||||
"__id__": 58
|
||||
"__id__": 66
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 60
|
||||
"__id__": 68
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -64,8 +64,8 @@
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"x": 0.8,
|
||||
"y": 0.8,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
@@ -193,8 +193,8 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 29.8076171875,
|
||||
"height": 39.8
|
||||
"width": 120,
|
||||
"height": 40
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@@ -224,37 +224,37 @@
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 172,
|
||||
"g": 166,
|
||||
"b": 166,
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_string": "10",
|
||||
"_horizontalAlign": 1,
|
||||
"_verticalAlign": 1,
|
||||
"_actualFontSize": 25,
|
||||
"_fontSize": 25,
|
||||
"_actualFontSize": 31,
|
||||
"_fontSize": 30,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 30,
|
||||
"_overflow": 0,
|
||||
"_overflow": 2,
|
||||
"_enableWrapText": true,
|
||||
"_font": null,
|
||||
"_isSystemFontUsed": true,
|
||||
"_spacingX": 0,
|
||||
"_isItalic": false,
|
||||
"_isBold": false,
|
||||
"_isBold": true,
|
||||
"_isUnderline": false,
|
||||
"_underlineHeight": 2,
|
||||
"_cacheMode": 0,
|
||||
"_enableOutline": true,
|
||||
"_outlineColor": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 0,
|
||||
"g": 0,
|
||||
"b": 0,
|
||||
"r": 75,
|
||||
"g": 75,
|
||||
"b": 75,
|
||||
"a": 255
|
||||
},
|
||||
"_outlineWidth": 1,
|
||||
"_outlineWidth": 2,
|
||||
"_enableShadow": false,
|
||||
"_shadowColor": {
|
||||
"__type__": "cc.Color",
|
||||
@@ -596,11 +596,11 @@
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 29
|
||||
"__id__": 37
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 31
|
||||
"__id__": 39
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -639,18 +639,22 @@
|
||||
"_parent": {
|
||||
"__id__": 22
|
||||
},
|
||||
"_children": [],
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 24
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 24
|
||||
"__id__": 32
|
||||
},
|
||||
{
|
||||
"__id__": 26
|
||||
"__id__": 34
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 28
|
||||
"__id__": 36
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -681,6 +685,181 @@
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "equipment_detail_icon_critical",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 23
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 25
|
||||
},
|
||||
{
|
||||
"__id__": 27
|
||||
},
|
||||
{
|
||||
"__id__": 29
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 31
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -34.4845703125,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0.6,
|
||||
"y": 0.6,
|
||||
"z": 1
|
||||
},
|
||||
"_mobility": 0,
|
||||
"_layer": 1073741824,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 24
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 26
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 54,
|
||||
"height": 58
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "c7zvNS325Dao5AM7/JY8an"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Sprite",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 24
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 28
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": {
|
||||
"__uuid__": "f87f53f9-2fba-4a5b-968a-79a593311ab2@cb5e8",
|
||||
"__expectedType__": "cc.SpriteFrame"
|
||||
},
|
||||
"_type": 0,
|
||||
"_fillType": 0,
|
||||
"_sizeMode": 1,
|
||||
"_fillCenter": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"_fillStart": 0,
|
||||
"_fillRange": 0,
|
||||
"_isTrimmedMode": true,
|
||||
"_useGrayscale": false,
|
||||
"_atlas": null,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "0fkJStDQZBU5ozK4OThO8C"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Widget",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 24
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 30
|
||||
},
|
||||
"_alignFlags": 8,
|
||||
"_target": null,
|
||||
"_left": -32,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
"_isAbsRight": true,
|
||||
"_isAbsTop": true,
|
||||
"_isAbsBottom": true,
|
||||
"_isAbsHorizontalCenter": true,
|
||||
"_isAbsVerticalCenter": true,
|
||||
"_originalWidth": 0,
|
||||
"_originalHeight": 0,
|
||||
"_alignMode": 2,
|
||||
"_lockFlags": 0,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "00pV0oo8FDObrvTB1eOM3/"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "81QDtE/GFI8qUV484Ckbkt",
|
||||
"instance": null,
|
||||
"targetOverrides": null,
|
||||
"nestedPrefabInstanceRoots": null
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "",
|
||||
@@ -691,12 +870,12 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 25
|
||||
"__id__": 33
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 28.497224978397803,
|
||||
"height": 27.2
|
||||
"width": 37.369140625,
|
||||
"height": 48.1
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@@ -719,7 +898,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 27
|
||||
"__id__": 35
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -734,29 +913,29 @@
|
||||
"_string": "10",
|
||||
"_horizontalAlign": 1,
|
||||
"_verticalAlign": 1,
|
||||
"_actualFontSize": 20,
|
||||
"_fontSize": 20,
|
||||
"_actualFontSize": 30,
|
||||
"_fontSize": 30,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 20,
|
||||
"_lineHeight": 35,
|
||||
"_overflow": 0,
|
||||
"_enableWrapText": true,
|
||||
"_font": null,
|
||||
"_isSystemFontUsed": true,
|
||||
"_spacingX": 0,
|
||||
"_isItalic": true,
|
||||
"_isBold": false,
|
||||
"_isItalic": false,
|
||||
"_isBold": true,
|
||||
"_isUnderline": false,
|
||||
"_underlineHeight": 2,
|
||||
"_cacheMode": 0,
|
||||
"_enableOutline": true,
|
||||
"_outlineColor": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 0,
|
||||
"g": 0,
|
||||
"b": 0,
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_outlineWidth": 1,
|
||||
"_outlineWidth": 2,
|
||||
"_enableShadow": false,
|
||||
"_shadowColor": {
|
||||
"__type__": "cc.Color",
|
||||
@@ -800,7 +979,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 30
|
||||
"__id__": 38
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -841,20 +1020,20 @@
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 33
|
||||
"__id__": 41
|
||||
}
|
||||
],
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 39
|
||||
"__id__": 47
|
||||
},
|
||||
{
|
||||
"__id__": 41
|
||||
"__id__": 49
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 43
|
||||
"__id__": 51
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -891,20 +1070,20 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 32
|
||||
"__id__": 40
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 34
|
||||
"__id__": 42
|
||||
},
|
||||
{
|
||||
"__id__": 36
|
||||
"__id__": 44
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 38
|
||||
"__id__": 46
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -941,11 +1120,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 33
|
||||
"__id__": 41
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 35
|
||||
"__id__": 43
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -969,11 +1148,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 33
|
||||
"__id__": 41
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 37
|
||||
"__id__": 45
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -1050,11 +1229,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 32
|
||||
"__id__": 40
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 40
|
||||
"__id__": 48
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -1078,11 +1257,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 32
|
||||
"__id__": 40
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 42
|
||||
"__id__": 50
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -1137,17 +1316,17 @@
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 45
|
||||
"__id__": 53
|
||||
}
|
||||
],
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 51
|
||||
"__id__": 59
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 53
|
||||
"__id__": 61
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -1184,20 +1363,20 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 44
|
||||
"__id__": 52
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 46
|
||||
"__id__": 54
|
||||
},
|
||||
{
|
||||
"__id__": 48
|
||||
"__id__": 56
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 50
|
||||
"__id__": 58
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -1234,11 +1413,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 45
|
||||
"__id__": 53
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 47
|
||||
"__id__": 55
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -1262,11 +1441,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 45
|
||||
"__id__": 53
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 49
|
||||
"__id__": 57
|
||||
},
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
@@ -1343,11 +1522,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 44
|
||||
"__id__": 52
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 52
|
||||
"__id__": 60
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -1388,7 +1567,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 55
|
||||
"__id__": 63
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -1416,7 +1595,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 57
|
||||
"__id__": 65
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
@@ -1434,7 +1613,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 59
|
||||
"__id__": 67
|
||||
},
|
||||
"playOnLoad": true,
|
||||
"_clips": [
|
||||
|
||||
|
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 280 KiB |
@@ -137,20 +137,33 @@ export const SuperCardsType={
|
||||
BUFF:3, //buff技能 范围buff
|
||||
DEBUFF:4, //debuff技能 范围debuff
|
||||
}
|
||||
export const SuperCardsList=[3001,3002,3101,3102,3103,3201,3301];
|
||||
export const Quality={
|
||||
WHITE:1,
|
||||
GREEN:2,
|
||||
BLUE:3,
|
||||
PURPLE:4,
|
||||
ORANGE:5,
|
||||
}
|
||||
export const SuperCardsList=[3001,3002,3101,3102,3103,3104,3105,3106];
|
||||
export const SuperCards={
|
||||
3001:{uuid:3001,name:"附魔宝典",path:"3001",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0,
|
||||
3001:{uuid:3001,name:"附魔宝典",quality:Quality.WHITE,path:"3001",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0,
|
||||
info:"攻击触发提高英雄/伙伴属性的效果,额外添加+1攻击力"},
|
||||
3002:{uuid:3002,name:"附魔宝典",path:"3002",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0,
|
||||
3002:{uuid:3002,name:"附魔宝典",quality:Quality.WHITE,path:"3002",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0,
|
||||
info:"攻击触发高英雄/伙伴属性的效果,额外添加+1生命值"},
|
||||
3101:{uuid:3101,name:"陨石术",path:"3101",type:SuperCardsType.AOE,value1:SkillSet[6019].uuid,value2:3,value3:0,
|
||||
3101:{uuid:3101,name:"陨石术",quality:Quality.WHITE,path:"3101",type:SuperCardsType.AOE,value1:SkillSet[6019].uuid,value2:3,value3:0,
|
||||
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
|
||||
3102:{uuid:3102,name:"冰刺",path:"3102",type:SuperCardsType.AOE,value1:SkillSet[6017].uuid,value2:3,value3:0,
|
||||
3102:{uuid:3102,name:"冰刺",quality:Quality.WHITE,path:"3102",type:SuperCardsType.AOE,value1:SkillSet[6017].uuid,value2:3,value3:0,
|
||||
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
|
||||
3103:{uuid:3103,name:"潮汐",path:"3103",type:SuperCardsType.AOE,value1:SkillSet[6018].uuid,value2:3,value3:0,
|
||||
3103:{uuid:3103,name:"潮汐",quality:Quality.WHITE,path:"3103",type:SuperCardsType.AOE,value1:SkillSet[6018].uuid,value2:3,value3:0,
|
||||
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
|
||||
3201:{uuid:3201,name:"极速充能",path:"3201",type:SuperCardsType.BUFF,value1:10,value2:100,value3:0,
|
||||
3104:{uuid:3104,name:"龙卷风",quality:Quality.WHITE,path:"3104",type:SuperCardsType.AOE,value1:SkillSet[6013].uuid,value2:3,value3:0,
|
||||
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
|
||||
3105:{uuid:3105,name:"火球风暴",quality:Quality.WHITE,path:"3105",type:SuperCardsType.AOE,value1:SkillSet[6012].uuid,value2:3,value3:0,
|
||||
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
|
||||
3106:{uuid:3106,name:"冰雨",quality:Quality.WHITE,path:"3106",type:SuperCardsType.AOE,value1:SkillSet[6020].uuid,value2:3,value3:0,
|
||||
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
|
||||
3201:{uuid:3201,name:"极速充能",quality:Quality.WHITE,path:"3201",type:SuperCardsType.BUFF,value1:10,value2:100,value3:0,
|
||||
info:"你的英雄/伙伴接下来的10次普通攻击速度提升100%"},
|
||||
3301:{uuid:3301,name:"冰霜风暴",path:"3301",type:SuperCardsType.DEBUFF,value1:30,value2:10,value3:0,
|
||||
3301:{uuid:3301,name:"冰霜风暴",quality:Quality.WHITE,path:"3301",type:SuperCardsType.DEBUFF,value1:30,value2:10,value3:0,
|
||||
info:"场上敌人获得30%的易伤,(下10次伤害)"},
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ export enum EquipSpecialAttr {
|
||||
DOUBLE_DEAD=10, //双倍死亡触发
|
||||
DOUBLE_ATKED=11, //双倍受击触发
|
||||
}
|
||||
export enum EquipQuality {
|
||||
export enum Quality {
|
||||
WHITE = 1,
|
||||
GREEN = 2,
|
||||
BLUE = 3,
|
||||
@@ -71,13 +71,14 @@ export interface EquipData {
|
||||
uuid: number; // 装备唯一ID
|
||||
name: string; // 装备名称
|
||||
type: EquipType; // 装备类型
|
||||
quality: Quality; // 装备品质
|
||||
info: string; // 装备描述
|
||||
special_attr: EquipSpecialAttrData[]; // 特殊属性数组
|
||||
buff: EquipAttribute[]; // 属性加成列表
|
||||
debuff: EquipDebuffAttribute[]; // 属性减益列表
|
||||
}
|
||||
export const EquipInfo: { [key: number]: EquipData } = {
|
||||
2001: {uuid: 2001, name: "新手剑", type: EquipType.WEAPON,info:"攻击力增加80%",
|
||||
2001: {uuid: 2001, name: "新手剑", type: EquipType.WEAPON,quality: Quality.WHITE,info:"攻击力增加80%",
|
||||
special_attr: [
|
||||
{special_attr:EquipSpecialAttr.ATK_ADD_FRIEND_ATK,special_attr_value:3},
|
||||
{special_attr:EquipSpecialAttr.ICE,special_attr_value:1},
|
||||
@@ -90,12 +91,13 @@ export const EquipInfo: { [key: number]: EquipData } = {
|
||||
],
|
||||
buff: [
|
||||
{ type: BuffAttr.ATK, value: 80, target: EquipAttrTarget.HERO },
|
||||
{ type: BuffAttr.ATK_COUNT, value: 30, target: EquipAttrTarget.HERO },
|
||||
],
|
||||
debuff: [
|
||||
{ type: DebuffAttr.DECD, value: 50, target: EquipAttrTarget.ENEMY },
|
||||
]
|
||||
},
|
||||
2002: {uuid: 2002,name: "新手剑2",type: EquipType.WEAPON,info:"攻击速度增加30%",
|
||||
2002: {uuid: 2002,name: "新手剑2",type: EquipType.WEAPON,quality: Quality.WHITE,info:"攻击速度增加30%",
|
||||
special_attr:[
|
||||
{special_attr:EquipSpecialAttr.FIRE,special_attr_value:1},
|
||||
{special_attr:EquipSpecialAttr.DOUBLE_DEAD,special_attr_value:1},
|
||||
@@ -108,12 +110,13 @@ export const EquipInfo: { [key: number]: EquipData } = {
|
||||
],
|
||||
buff: [
|
||||
{ type: BuffAttr.ATK_CD, value: 30, target: EquipAttrTarget.HERO },
|
||||
{ type: BuffAttr.ATK_COUNT, value: 30, target: EquipAttrTarget.HERO },
|
||||
],
|
||||
debuff: [
|
||||
{ type: DebuffAttr.DECD, value: 50, target: EquipAttrTarget.ENEMY },
|
||||
]
|
||||
},
|
||||
2003: {uuid: 2003,name: "新手剑3",type: EquipType.WEAPON,info:"攻击次数增加1次",
|
||||
2003: {uuid: 2003,name: "新手剑3",type: EquipType.WEAPON,quality: Quality.WHITE,info:"攻击次数增加1次",
|
||||
special_attr:[
|
||||
{special_attr:EquipSpecialAttr.WIND,special_attr_value:1},
|
||||
{special_attr:EquipSpecialAttr.DOUBLE_DEAD,special_attr_value:1},
|
||||
|
||||
@@ -39,7 +39,7 @@ export enum GameEvent {
|
||||
EquipAdd = "EquipAdd",
|
||||
EquipRemove = "EquipRemove",
|
||||
EquipSelect = "EquipSelect",
|
||||
EquipSelectEnd = "EquipSelectEnd",
|
||||
FuncSelect = "FuncSelect",
|
||||
WaveUpdate = "WaveUpdate",
|
||||
ChangeATK = "ChangeATK",
|
||||
ChangeATK_FRIEND_LIVE_CD = "ChangeATK_FRIEND_LIVE_CD",
|
||||
|
||||
@@ -53,10 +53,21 @@ export const MissionStatus = {
|
||||
}
|
||||
export enum FightSet {
|
||||
FRIEND_WAVE_UP=2, //伙伴登场波次
|
||||
MON_WAVE_TIME=30,//怪物波次时间
|
||||
BOSS_WAVE_UP_1=3, //boss登场波次
|
||||
BOSS_WAVE_UP_2=5, //boss登场波次
|
||||
BOSS_WAVE_UP_3=7, //boss登场波次
|
||||
EQUIP_WAVE_UP_1=4, //装备登场波次
|
||||
EQUIP_WAVE_UP_2=6, //装备登场波次
|
||||
EQUIP_WAVE_UP_3=8, //装备登场波次
|
||||
SKILL_WAVE_UP_1=1, //技能登场波次
|
||||
SKILL_WAVE_UP_2=3, //技能登场波次
|
||||
SKILL_WAVE_UP_3=5, //技能登场波次
|
||||
MON_WAVE_TIME=10,//怪物波次时间
|
||||
FRIEND_LIVE_CD=10,//伙伴复活时间
|
||||
ATK_ADD_FRIEND_COUNT=4,//伙伴攻击力增加
|
||||
ATK_ADD_GLOD=1,//金币增加
|
||||
CRIT_DAMAGE=50,//暴击伤害
|
||||
DOUBLE_ATK_RATE=100,//额外攻击默认概率
|
||||
// ATK_TO_ATK_RATIO=0.1,
|
||||
// ATK_TO_HP_RATIO=0.2,
|
||||
// ATK_TO_SHIELD_RATIO=2,
|
||||
@@ -74,7 +85,7 @@ export const MissionData = {
|
||||
gold:1000,//金币
|
||||
score:0,//分数
|
||||
refrsh_time:5, //刷新时间
|
||||
refresh_gold:3,//刷新金币
|
||||
refresh_gold:1,//刷新金币
|
||||
call_gold:0,//召唤金币
|
||||
add_gold:1,//金币增加
|
||||
change_gold:0,//金币变化
|
||||
|
||||
@@ -59,7 +59,7 @@ export enum EType {
|
||||
collision = 3,
|
||||
countEnd = 4,
|
||||
}
|
||||
|
||||
//debuff类型
|
||||
export enum DebuffAttr {
|
||||
STUN = 1, //眩晕
|
||||
SLOW = 2, //减速
|
||||
@@ -69,8 +69,12 @@ export enum DebuffAttr {
|
||||
DEHP = 6, //减hp
|
||||
DEATK = 7, //减atk
|
||||
DECOUNT = 8, //减攻击次数
|
||||
BACK = 9, //击退
|
||||
CRITICAL = 10, //自身暴击率降低
|
||||
DODGE = 11, //闪避
|
||||
}
|
||||
|
||||
//buff类型
|
||||
export enum BuffAttr {
|
||||
ATK = 1, // 攻击力
|
||||
ATK_COUNT = 2, // 攻击个数
|
||||
@@ -81,6 +85,11 @@ export enum BuffAttr {
|
||||
SKILL_CD = 7, // 技能冷却缩减
|
||||
CARD_EFFECT = 8, // 卡牌效果
|
||||
CARD_COUNT = 8, // 卡牌起效次数,每3次多起效一次
|
||||
CRITICAL = 9, //暴击率
|
||||
CRITICAL_DMG = 10, //暴击伤害
|
||||
CRITICAL_NO = 11, //暴击免疫
|
||||
DODGE = 12, //闪避
|
||||
DODGE_NO = 13, //闪避免疫
|
||||
}
|
||||
|
||||
export const geDebuffNum=()=>{
|
||||
@@ -88,11 +97,13 @@ export const geDebuffNum=()=>{
|
||||
STUN:0, //眩晕
|
||||
SLOW:0, //减速
|
||||
FROST:0, //冰冻
|
||||
BURN:0, //易伤
|
||||
BURN:0, //易伤
|
||||
DECD:0, //减cd
|
||||
DEHP:0, //减hp
|
||||
DEATK:0, //减atk
|
||||
DECOUNT:0, //减攻击次数
|
||||
CRITICAL:0, //暴击
|
||||
DODGE:0, //闪避
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,17 +119,28 @@ export const getBuffNum=()=>{
|
||||
SKILL_CD:0, // 技能冷却缩减
|
||||
CARD_EFFECT:0, // 卡牌效果
|
||||
CARD_COUNT:0, // 卡牌起效次数,每3次多起效一次
|
||||
CRITICAL:0, //暴击
|
||||
CRITICAL_DMG:0, //暴击伤害
|
||||
CRITICAL_NO:0, //暴击免疫
|
||||
DODGE:0, //闪避
|
||||
DODGE_NO:0, //闪避免疫
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export enum Quality{
|
||||
WHITE=1,
|
||||
GREEN=2,
|
||||
BLUE=3,
|
||||
PURPLE=4,
|
||||
ORANGE=5,
|
||||
}
|
||||
/*
|
||||
path: 图片地址
|
||||
[debuff] : 0:无,1:冰,2:灼烧,3:眩晕,4:降低攻击,5:降低hp,6:降低防御,7:吸血,8:击退
|
||||
depb:触发比率
|
||||
debtime :持续时间
|
||||
derate:伤害比率
|
||||
in:持续时间
|
||||
deV:0,deC:0,in:持续时间
|
||||
count:触发次数
|
||||
def:增加防御比例
|
||||
apup:增加攻击比例
|
||||
@@ -126,7 +148,7 @@ ap:施法者攻击
|
||||
mhp:增加最大生命比例
|
||||
hp:增加当前生命比例
|
||||
cd:buff/debuff持续时间
|
||||
/debhited:伤害时间
|
||||
/debhit:1,hited:伤害时间
|
||||
shield:增加护盾占最大生命比例
|
||||
speed:移动速度
|
||||
sonsk:子技能id
|
||||
@@ -136,91 +158,89 @@ info:技能描述
|
||||
*/
|
||||
export const HeroSkillList = [6001,6001,6001,6001,6001,6001]
|
||||
export const SkillSet = {
|
||||
6001:{uuid:6001,name:"凛冬之触",sp_name:"greenball",path:"6001",TType:TType.Frontline,
|
||||
TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
|
||||
6001:{uuid:6001,name:"凛冬之触",sp_name:"greenball",path:"6001",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
|
||||
|
||||
6002:{uuid:6002,name:"穿心箭矢",sp_name:"arrow",path:"6006",TType:TType.Frontline,
|
||||
TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
|
||||
6002:{uuid:6002,name:"穿心箭矢",sp_name:"arrow",path:"6006",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
|
||||
|
||||
6003:{uuid:6003,name:"神圣护盾",sp_name:"shield",path:"6018",TType:TType.Frontline,
|
||||
TGroup:0,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"},
|
||||
6003:{uuid:6003,name:"神圣护盾",sp_name:"shield",path:"6018",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Self,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"},
|
||||
|
||||
6004:{uuid:6004,name:"自愈", sp_name:"heath_small",path:"6032",TType:TType.Frontline,
|
||||
TGroup:0,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:2,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"},
|
||||
6004:{uuid:6004,name:"自愈", sp_name:"heath_small",path:"6032",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Self,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:2,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"},
|
||||
|
||||
6007:{uuid:6007,name:"铁斧打击",sp_name:"mon_ft",path:"6007",TType:TType.Frontline,
|
||||
TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
|
||||
6008:{uuid:6008,name:"木棍打击",sp_name:"mon_ly",path:"6008",TType:TType.Frontline,
|
||||
TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"},
|
||||
6009:{uuid:6009,name:"飞刀打击",sp_name:"mon_xd",path:"6009",TType:TType.Frontline,
|
||||
TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"},
|
||||
6010:{uuid:6010,name:"石斧打击",sp_name:"mon_sf",path:"6010",TType:TType.Frontline,
|
||||
TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
|
||||
6007:{uuid:6007,name:"铁斧打击",sp_name:"mon_ft",path:"6007",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
|
||||
6008:{uuid:6008,name:"木棍打击",sp_name:"mon_ly",path:"6008",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"},
|
||||
6009:{uuid:6009,name:"飞刀打击",sp_name:"mon_xd",path:"6009",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"},
|
||||
6010:{uuid:6010,name:"石斧打击",sp_name:"mon_sf",path:"6010",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:0.8,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"},
|
||||
|
||||
|
||||
6011:{uuid:6011,name:"烈火呼吸",sp_name:"firequan",path:"6011",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:3,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
|
||||
6012:{uuid:6012,name:"大火球" ,sp_name:"fire",path:"6012",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:DebuffAttr.BURN,deV:20,deC:1,in:1,ap:300,cd:5,hit:2,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"},
|
||||
|
||||
6012:{uuid:6012,name:"大火球" ,sp_name:"fire",path:"6012",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.linear,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:2,in:1,ap:300,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"},
|
||||
|
||||
6013:{uuid:6013,name:"火墙", sp_name:"firewall",path:"6013",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:10,ap:50,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"},
|
||||
6013:{uuid:6013,name:"龙卷风", sp_name:"bwind",path:"6016",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"max",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:DebuffAttr.BACK,deV:0,deC:0,in:3,ap:200,cd:5,hit:1,hited:1,shield:0,speed:360,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
|
||||
|
||||
6014:{uuid:6014,name:"寒冰箭", sp_name:"arrow_blue",path:"6014",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:1,in:1,ap:200,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
|
||||
6014:{uuid:6014,name:"寒冰箭", sp_name:"arrow_blue",path:"6014",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:DebuffAttr.FROST,deV:0,deC:0,in:1,ap:200,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
|
||||
|
||||
6015:{uuid:6015,name:"烈焰射击",sp_name:"arrow_yellow",path:"6015",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:3,in:1,ap:200,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"},
|
||||
6015:{uuid:6015,name:"烈焰射击",sp_name:"arrow_yellow",path:"6015",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"atk",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.collision,fname:"max",flash:false,with:90,
|
||||
debuff:3,deV:0,deC:0,in:1,ap:200,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"},
|
||||
|
||||
6016:{uuid:6016,name:"火墙", sp_name:"firewall",path:"6013",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:10,ap:50,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"},
|
||||
|
||||
6017:{uuid:6017,name:"冰刺",sp_name:"icez",path:"6022",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
|
||||
debuff:DebuffAttr.FROST,deV:0,deC:0,in:1,ap:300,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
|
||||
6018:{uuid:6018,name:"潮汐", sp_name:"watert",path:"6026",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
|
||||
debuff:DebuffAttr.BACK,deV:0,deC:0,in:3,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
|
||||
6019:{uuid:6019,name:"陨石术", sp_name:"fireys",path:"6029",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.animationEnd,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
|
||||
|
||||
6020:{uuid:6020,name:"冰暴",sp_name:"bingyu",path:"6034",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.fixed,EType:EType.timeEnd,fname:"max",flash:false,with:90,
|
||||
debuff:4,deV:0,deC:0,in:4,ap:80,cd:5,hit:1,hited:1,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"},
|
||||
|
||||
6021:{uuid:6021,name:"烈火呼吸",sp_name:"firequan",path:"6011",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Ally,act:"max",CdType:2,AType:AType.linear,RType:RType.linear,EType:EType.timeEnd,fname:"max",flash:false,with:90,
|
||||
debuff:0,deV:0,deC:0,in:3,ap:100,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
|
||||
|
||||
|
||||
6016:{uuid:6016,name:"龙卷风", sp_name:"bwind",path:"6016",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:8,in:1,ap:200,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
|
||||
6017:{uuid:6017,name:"冰刺",sp_name:"icez",path:"6022",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.linear,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:1,in:1,ap:300,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
|
||||
6018:{uuid:6018,name:"潮汐", sp_name:"watert",path:"6026",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.linear,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:8,in:3,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
|
||||
6019:{uuid:6019,name:"陨石术", sp_name:"fireys",path:"6029",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:8,in:3,ap:500,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
|
||||
|
||||
6023:{uuid:6023,name:"冰墙", sp_name:"icet",path:"6023",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max",flash:false,with:90,
|
||||
debuff:DebuffAttr.BACK,deV:0,deC:0,in:1,ap:400,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
|
||||
|
||||
6025:{uuid:6025,name:"火焰漩涡",sp_name:"fireball",path:"6025",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Enemy,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.timeEnd,fname:"max",flash:false,with:90,
|
||||
debuff:DebuffAttr.BACK,deV:0,deC:0,in:3,ap:500,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"},
|
||||
|
||||
|
||||
|
||||
6023:{uuid:6023,name:"冰墙", sp_name:"icet",path:"6023",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:8,in:1,ap:400,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
|
||||
|
||||
6025:{uuid:6025,name:"火焰漩涡",sp_name:"fireball",path:"6025",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:8,in:3,ap:500,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"},
|
||||
|
||||
|
||||
6030:{uuid:6030,name:"闪电呼吸",sp_name:"dianquan",path:"6030",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:0,in:3,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤闪电攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
|
||||
|
||||
6031:{uuid:6031,name:"召唤仆从",sp_name:"zhaohuan",path:"6031",TType:TType.Frontline,
|
||||
TGroup:0,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max_blue",flash:true,with:90,
|
||||
debuff:0,in:2,ap:70,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"},
|
||||
6031:{uuid:6031,name:"召唤仆从",sp_name:"zhaohuan",path:"6031",quality:Quality.WHITE, TType:TType.Frontline,
|
||||
TGroup:TGroup.Self,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:EType.animationEnd,fname:"max_blue",flash:true,with:90,
|
||||
debuff:0,deV:0,deC:0,in:2,ap:70,cd:5,hit:1,hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"},
|
||||
|
||||
|
||||
6034:{uuid:6034,name:"风暴之矢",sp_name:"bingyu",path:"6034",TType:TType.Frontline,
|
||||
TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
|
||||
debuff:4,in:1,ap:80,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"}
|
||||
|
||||
};
|
||||
@@ -38,48 +38,113 @@ export const HeroSet = {
|
||||
Start_y:[70,0,-70]
|
||||
}
|
||||
export const HeroPos={
|
||||
0:{pos:v3(-280,0,0)},
|
||||
1:{pos:v3(-140,0,0)},
|
||||
2:{pos:v3(-200,0,0)},
|
||||
0:{pos:v3(-290,10,0)},
|
||||
1:{pos:v3(-220,0,0)},
|
||||
2:{pos:v3(-150,0,0)},
|
||||
}
|
||||
export const MonSet = {
|
||||
0:{pos:v3(320,0,0)},
|
||||
1:{pos:v3(320,15,0)},
|
||||
2:{pos:v3(320,-15,0)},
|
||||
0:{pos:v3(350,0,0)},
|
||||
1:{pos:v3(400,0,0)},
|
||||
2:{pos:v3(450,0,0)},
|
||||
3:{pos:v3(500,0,0)},
|
||||
4:{pos:v3(550,0,0)},
|
||||
5:{pos:v3(600,0,0)},
|
||||
6:{pos:v3(650,0,0)},
|
||||
7:{pos:v3(700,0,0)},
|
||||
8:{pos:v3(750,0,0)},
|
||||
9:{pos:v3(800,0,0)},
|
||||
}
|
||||
export const HeroInfo = {
|
||||
5001:{uuid:5001,name:"神圣守护",path:"k2", lv:3,kind:1,type:0,hp:50,ap:10,dis:700,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5002:{uuid:5002,name:"幻影剑豪",path:"k1", lv:3,kind:2,type:0,hp:50,ap:10,dis:700,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5003:{uuid:5003,name:"战争领主",path:"k5", lv:3,kind:2,type:0,hp:50,ap:10,dis:700,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5004:{uuid:5004,name:"混沌法师",path:"zh1", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5005:{uuid:5005,name:"火焰法师",path:"zh2", lv:3,kind:2,type:2,hp:50,ap:15,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5006:{uuid:5006,name:"风暴精灵",path:"m4", lv:3,kind:2,type:2,hp:50,ap:15,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5007:{uuid:5007,name:"生命圣者",path:"d1", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5008:{uuid:5008,name:"战争祭祀",path:"d2", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5009:{uuid:5009,name:"暴风射手",path:"a5", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6002],info:"说明"},
|
||||
5010:{uuid:5010,name:"苍穹射手",path:"a3", lv:3,kind:1,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6002],info:"说明"},
|
||||
5011:{uuid:5011,name:"幽灵射手",path:"a4", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6002],info:"说明"},
|
||||
5001:{uuid:5001,name:"神圣守护",path:"k2", lv:3,kind:1,type:0,hp:50,ap:10,dis:700,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5201:{uuid:5201,name:"兽人战士",path:"mor1", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5202:{uuid:5202,name:"兽人刺客",path:"mor2", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5203:{uuid:5203,name:"兽人护卫",path:"mor3", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"},
|
||||
5204:{uuid:5204,name:"石卫", path:"mgem1",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5205:{uuid:5205,name:"土卫", path:"mgem2",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5206:{uuid:5206,name:"树人", path:"mgem3",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5002:{uuid:5002,name:"幻影剑豪",path:"k1", lv:3,kind:2,type:0,hp:50,ap:10,dis:700,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5216:{uuid:5216,name:"元素1", path:"my1", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5217:{uuid:5217,name:"元素2", path:"my2", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5218:{uuid:5218,name:"元素3", path:"my3", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
|
||||
5219:{uuid:5219,name:"牛头战士",path:"mn1", lv:2,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5220:{uuid:5220,name:"牛头战士",path:"mn2", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"},
|
||||
5221:{uuid:5221,name:"牛头战士",path:"mn3", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5222:{uuid:5222,name:"独眼巨人",path:"md1", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5223:{uuid:5223,name:"独眼巨人",path:"md2", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5224:{uuid:5224,name:"独眼巨人",path:"md3", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"},
|
||||
5225:{uuid:5225,name:"精英独眼",path:"md4", lv:3,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5226:{uuid:5226,name:"精英牛头",path:"mn4", lv:3,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
|
||||
5227:{uuid:5227,name:"精英兽人",path:"mor4", lv:3,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"}
|
||||
};
|
||||
5003:{uuid:5003,name:"战争领主",path:"k5", lv:3,kind:2,type:0,hp:50,ap:10,dis:700,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5004:{uuid:5004,name:"混沌法师",path:"zh1", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5005:{uuid:5005,name:"火焰法师",path:"zh2", lv:3,kind:2,type:2,hp:50,ap:15,dis:700,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5006:{uuid:5006,name:"风暴精灵",path:"m4", lv:3,kind:2,type:2,hp:50,ap:15,dis:700,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5007:{uuid:5007,name:"生命圣者",path:"d1", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5008:{uuid:5008,name:"战争祭祀",path:"d2", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5009:{uuid:5009,name:"暴风射手",path:"a5", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6002],info:"说明"},
|
||||
|
||||
5010:{uuid:5010,name:"苍穹射手",path:"a3", lv:3,kind:1,type:1,hp:50,ap:15,dis:700,a_cd:1.2,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6002],info:"说明"},
|
||||
|
||||
5011:{uuid:5011,name:"幽灵射手",path:"a4", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6002],info:"说明"},
|
||||
|
||||
//怪物
|
||||
5201:{uuid:5201,name:"兽人战士",path:"mor1", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5202:{uuid:5202,name:"兽人刺客",path:"mor2", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5203:{uuid:5203,name:"兽人护卫",path:"mor3", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5204:{uuid:5204,name:"石卫", path:"mgem1",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5205:{uuid:5205,name:"土卫", path:"mgem2",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5206:{uuid:5206,name:"树人", path:"mgem3",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5216:{uuid:5216,name:"元素1", path:"my1", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5217:{uuid:5217,name:"元素2", path:"my2", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5218:{uuid:5218,name:"元素3", path:"my3", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5219:{uuid:5219,name:"牛头战士",path:"mn1", lv:2,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5220:{uuid:5220,name:"牛头战士",path:"mn2", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5221:{uuid:5221,name:"牛头战士",path:"mn3", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5222:{uuid:5222,name:"独眼巨人",path:"md1", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5223:{uuid:5223,name:"独眼巨人",path:"md2", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5224:{uuid:5224,name:"独眼巨人",path:"md3", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5225:{uuid:5225,name:"精英独眼",path:"md4", lv:3,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5226:{uuid:5226,name:"精英牛头",path:"mn4", lv:3,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"},
|
||||
|
||||
5227:{uuid:5227,name:"精英兽人",path:"mor4", lv:3,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1,
|
||||
crt:5,crt_d:0,crt_no:false,dod:0,dod_no:false,speed:30,skills:[6001],info:"说明"}
|
||||
};
|
||||
|
||||
|
||||
export const HeroUpInfo = {
|
||||
5001:{ap_up:0,ap_up_rate:10,self_ap_up:0,self_ap_up_rate:0,hp_up:0,self_hp_up:0},
|
||||
5002:{ap_up:5,ap_up_rate:0,self_ap_up:0,self_ap_up_rate:0,hp_up:0,self_hp_up:0},
|
||||
|
||||
@@ -27,7 +27,7 @@ export class BattleMoveSystem extends ecs.ComblockSystem implements ecs.ISystemU
|
||||
|
||||
if (!shouldStop&&view.fac==1) { //在攻击范围内停止移动 取消这个判断
|
||||
// if(view.fac==1){
|
||||
if(view.is_stop||view.is_dead) return //停止移动或者死亡不移动
|
||||
if(view.is_stop||view.is_dead||view.DEBUFF_STUN>0 ||view.DEBUFF_FROST>0) return //停止移动或者死亡不移动
|
||||
// 计算移动量
|
||||
const delta = (view.speed/3) * this.dt * move.direction;
|
||||
const newX = view.node.position.x + delta;
|
||||
|
||||
@@ -103,13 +103,14 @@ export class BuffComp extends Component {
|
||||
this.node.getChildByName("buff").active = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
max_show(name:string){
|
||||
var path = "game/skills/"+name;
|
||||
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
||||
var node = instantiate(prefab);
|
||||
node.parent = this.node;
|
||||
}
|
||||
|
||||
show_do_buff(name:string){
|
||||
var path = "game/skills/"+name;
|
||||
var prefab: Prefab = oops.res.get(path, Prefab)!;
|
||||
|
||||
@@ -46,29 +46,17 @@ export class Hero extends ecs.Entity {
|
||||
node.parent = scene.entityLayer!.node!
|
||||
let pos=HeroPos[0].pos
|
||||
node.setPosition(pos)
|
||||
var hv = node.getComponent(HeroViewComp)!;
|
||||
let hero= HeroInfo[uuid] // 共用英雄数据
|
||||
var hv = this.hero_init(uuid,node)
|
||||
hv.scale = 1;
|
||||
hv.fac = FacSet.HERO;
|
||||
hv.is_master=true;
|
||||
hv.type = hero.type;
|
||||
hv.box_group = box_group;
|
||||
hv.hero_uuid= uuid;
|
||||
hv.hero_name= hero.name;
|
||||
hv.speed =hv.ospeed = hero.speed;
|
||||
hv.dis = hero.dis;
|
||||
hv.hp= hv.hp_max =hero.hp;
|
||||
hv.ap = hero.ap;
|
||||
hv.lv=1
|
||||
hv.cd = hero.a_cd
|
||||
hv.hp_up=hero.hp_up
|
||||
hv.atk_skill=hero.skills[0]
|
||||
console.log(hv.hero_name+"dis=>"+hv.dis)
|
||||
this.add(hv);
|
||||
this.addComponents<ecs.Comp>(MasterModelComp)
|
||||
console.log("[Hero]:master",hv)
|
||||
|
||||
}
|
||||
/** 加载角色 */
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,info:any={ap:0,hp:0},fight_pos:number=1) {
|
||||
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,info:any={ap:0,hp:0,lv:1,crt:0,crt_d:0,dod:0,dod_no:false,crt_no:false},fight_pos:number=1) {
|
||||
// console.log("英雄加载:",uuid,pos,scale,info)
|
||||
scale = 1
|
||||
let box_group=BoxSet.HERO
|
||||
@@ -79,29 +67,39 @@ export class Hero extends ecs.Entity {
|
||||
node.parent = scene.entityLayer!.node!
|
||||
node.setPosition(pos)
|
||||
// console.log("hero load",pos)
|
||||
var hv = this.hero_init(uuid,node,info)
|
||||
hv.fight_pos=fight_pos
|
||||
this.add(hv);
|
||||
this.addComponents<ecs.Comp>(FriendModelComp);
|
||||
// const move = this.get(BattleMoveComp);
|
||||
// move.direction = 1; // 向右移动
|
||||
// move.targetX = 800; // 右边界'
|
||||
oops.message.dispatchEvent("hero_load",this)
|
||||
console.log("[Hero]:friend",hv)
|
||||
|
||||
}
|
||||
hero_init(uuid:number=1001,node:Node,info:any={ap:0,hp:0,lv:1,crt:0,crt_d:0,dod:0,dod_no:false,crt_no:false}) {
|
||||
var hv = node.getComponent(HeroViewComp)!;
|
||||
let hero= HeroInfo[uuid] // 共用英雄数据
|
||||
hv.scale = scale;
|
||||
hv.scale = 1;
|
||||
hv.lv=info.lv
|
||||
hv.fac = FacSet.HERO;
|
||||
hv.fight_pos=fight_pos
|
||||
hv.type = hero.type;
|
||||
hv.box_group = box_group;
|
||||
hv.box_group = BoxSet.HERO;
|
||||
hv.hero_uuid= uuid;
|
||||
hv.hero_name= hero.name;
|
||||
hv.speed =hv.ospeed = hero.speed;
|
||||
hv.dis = hero.dis;
|
||||
hv.hp= hv.hp_max =hero.hp+info.hp;
|
||||
hv.ap = hero.ap+info.ap;
|
||||
hv.lv=info.lv+1
|
||||
hv.cd = hero.a_cd
|
||||
hv.hp_up=hero.hp_up
|
||||
hv.hp= hv.hp_max =hero.hp+info.hp
|
||||
hv.ap = hero.ap+info.ap;
|
||||
hv.crt=hero.crt+info.crt
|
||||
hv.crt_d=hero.crt_d+info.crt_d
|
||||
hv.dod=hero.dod+info.dod
|
||||
hv.dod_no=info.dod_no
|
||||
hv.crt_no=info.crt_no
|
||||
hv.atk_skill=hero.skills[0]
|
||||
this.add(hv);
|
||||
this.addComponents<ecs.Comp>(FriendModelComp);
|
||||
const move = this.get(BattleMoveComp);
|
||||
move.direction = 1; // 向右移动
|
||||
move.targetX = 800; // 右边界'
|
||||
oops.message.dispatchEvent("hero_load",this)
|
||||
return hv
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import { HeroSpine } from "./HeroSpine";
|
||||
import { BoxSet, FacSet } from "../common/config/BoxSet";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer";
|
||||
import { SkillSet, TGroup, TType } from "../common/config/SkillSet";
|
||||
import { BuffComp } from "./BuffComp";
|
||||
import { BuffAttr, DebuffAttr, SkillSet, TGroup, TType } from "../common/config/SkillSet";
|
||||
import { BuffComp } from "./BuffComp";
|
||||
import { oops } from "db://oops-framework/core/Oops";
|
||||
import { GameEvent } from "../common/config/GameEvent";
|
||||
import { FightConComp } from "../map/FightConComp";
|
||||
@@ -62,8 +62,11 @@ export class HeroViewComp extends CCComp {
|
||||
def: number = 0; //防御
|
||||
vun: number = 0; //易伤
|
||||
|
||||
dodge: number = 10; //闪避率
|
||||
|
||||
dod: number = 10; //闪避率
|
||||
dod_no:boolean=false;
|
||||
crt:number=0; //暴击率
|
||||
crt_no:boolean=false; //暴击免疫
|
||||
crt_d:number=0; //暴击伤害
|
||||
|
||||
shield:number = 0; //护盾,免伤1次减1
|
||||
speed: number = 100; /** 角色移动速度 */
|
||||
@@ -73,14 +76,17 @@ export class HeroViewComp extends CCComp {
|
||||
atked_count: number = 0;
|
||||
atk_add_count:number=0;
|
||||
stop_cd: number = 0; /*停止倒计时*/
|
||||
yun_cd: number = 0; //眩晕倒计时
|
||||
ice_cd: number = 0; //冰冻倒计时
|
||||
dir_y:number = 0;
|
||||
speek_time:number = 0;
|
||||
is_stop_temp:boolean = false;i
|
||||
Friend_alive_cd:Timer=new Timer(10)
|
||||
double_dead:boolean=false
|
||||
double_atked:boolean=false
|
||||
DEBUFF_BURN: Array<{burn: number, count: number}> = []
|
||||
DEBUFF_SLOW: number = 0;
|
||||
DEBUFF_FROST: number = 0;
|
||||
DEBUFF_STUN: number = 0;
|
||||
BUFF_DEF: Array<{def: number, count: number}> = []
|
||||
private damageQueue: Array<{
|
||||
damage: number,
|
||||
isCrit: boolean,
|
||||
@@ -130,12 +136,12 @@ export class HeroViewComp extends CCComp {
|
||||
if(this.timer.update(dt)){
|
||||
// this.add_ap(10)
|
||||
};
|
||||
if(this.ice_cd > 0){
|
||||
this.ice_cd -=dt;
|
||||
if(this.DEBUFF_FROST > 0){
|
||||
this.DEBUFF_FROST -=dt;
|
||||
return
|
||||
}
|
||||
if(this.yun_cd > 0){
|
||||
this.yun_cd -=dt;
|
||||
if(this.DEBUFF_STUN > 0){
|
||||
this.DEBUFF_STUN -=dt;
|
||||
return
|
||||
}
|
||||
this.in_stop(dt);
|
||||
@@ -150,7 +156,7 @@ export class HeroViewComp extends CCComp {
|
||||
}else if(data.fire){
|
||||
this.atk_skill=6012
|
||||
}else if(data.wind){
|
||||
this.atk_skill=6016
|
||||
this.atk_skill=6013
|
||||
}else{
|
||||
this.atk_skill=6001
|
||||
}
|
||||
@@ -320,35 +326,147 @@ export class HeroViewComp extends CCComp {
|
||||
}
|
||||
}
|
||||
|
||||
do_atked(remainingDamage:number){
|
||||
this.do_atked_trigger()
|
||||
if (this.shield > 0) {
|
||||
add_debuff(type:number,debuff:number,count:number,){
|
||||
switch(type){
|
||||
case DebuffAttr.BURN:
|
||||
this.DEBUFF_BURN.push({burn:debuff,count:count})
|
||||
break
|
||||
case DebuffAttr.SLOW:
|
||||
this.DEBUFF_SLOW+=debuff
|
||||
break
|
||||
case DebuffAttr.FROST:
|
||||
this.BUFFCOMP.in_iced(debuff)
|
||||
this.DEBUFF_FROST+=debuff
|
||||
break
|
||||
case DebuffAttr.STUN:
|
||||
this.BUFFCOMP.in_yun(debuff)
|
||||
this.DEBUFF_STUN+=debuff
|
||||
this.is_stop=true
|
||||
break
|
||||
case DebuffAttr.DECD:
|
||||
this.cd-=debuff
|
||||
break
|
||||
case DebuffAttr.DEHP:
|
||||
this.hp_max-=debuff
|
||||
if(this.hp-this.hp_max>0) this.hp=this.hp_max
|
||||
break
|
||||
case DebuffAttr.DEATK:
|
||||
this.ap-=debuff
|
||||
break
|
||||
case DebuffAttr.DECOUNT:
|
||||
this.atk_count-=debuff
|
||||
if(this.atk_count<0) this.atk_count=1
|
||||
break
|
||||
case DebuffAttr.BACK:
|
||||
if(this.fac==FacSet.MON) {
|
||||
let tx=this.node.position.x+50
|
||||
if(tx > 320) tx=320
|
||||
tween(this.node).to(0.3, { position:v3(tx,this.node.position.y,0)}).start()
|
||||
}
|
||||
|
||||
break
|
||||
}
|
||||
}
|
||||
add_buff(buff:number,count:number,type:number){
|
||||
switch(type){
|
||||
case BuffAttr.DEF:
|
||||
this.BUFF_DEF.push({def:buff,count:count})
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
do_atked(remainingDamage:number,crt:number=0,crt_d:number=0){
|
||||
this.do_atked_trigger()
|
||||
|
||||
if(this.check_shield()) return
|
||||
if(this.check_dodge()) return
|
||||
let is_crit = this.check_crit(crt)
|
||||
|
||||
if(this == null) return;
|
||||
let damage = this.count_damage(remainingDamage)
|
||||
if(is_crit) {
|
||||
damage = Math.floor(damage * (1 + (FightSet.CRIT_DAMAGE+crt_d)/100))
|
||||
}
|
||||
this.hp -= damage;
|
||||
if(this.hp <= 0) {
|
||||
if(this == null) return;
|
||||
this.is_dead=true
|
||||
this.BUFFCOMP.dead()
|
||||
this.do_dead()
|
||||
console.log("[HeroViewComp]:dead,fac => "+(this.fac==FacSet.HERO?"hero":"monster"))
|
||||
if(this.ent == null) return;
|
||||
if(this.fac ==FacSet.HERO){
|
||||
this.to_grave()
|
||||
}else{
|
||||
this.ent.destroy();
|
||||
}
|
||||
}
|
||||
this.BUFFCOMP.update_info_hp()
|
||||
this.showDamage(damage, is_crit);
|
||||
|
||||
}
|
||||
//伤害计算 debuff 易伤
|
||||
count_damage(remainingDamage:number){
|
||||
let damage = 0;
|
||||
let Burn = 0;
|
||||
let def = 0;
|
||||
for(let i=0;i<this.DEBUFF_BURN.length;i++){
|
||||
Burn+=this.DEBUFF_BURN[i].burn
|
||||
this.DEBUFF_BURN[i].count-=1
|
||||
if(this.DEBUFF_BURN[i].count<=0){
|
||||
this.DEBUFF_BURN.splice(i,1)
|
||||
}
|
||||
}
|
||||
for(let i=0;i<this.BUFF_DEF.length;i++){
|
||||
def+=this.BUFF_DEF[i].def
|
||||
this.BUFF_DEF[i].count-=1
|
||||
if(this.BUFF_DEF[i].count<=0){
|
||||
this.BUFF_DEF.splice(i,1)
|
||||
}
|
||||
}
|
||||
if(this.fac == FacSet.HERO ){
|
||||
damage=remainingDamage*(100-(this.FIGHTCON.hero_buff.DEF+def)+(this.FIGHTCON.hero_debuff.BURN+Burn))/100
|
||||
}
|
||||
if(this.fac == FacSet.MON){
|
||||
damage=remainingDamage*(100-(this.FIGHTCON.enemy_buff.DEF+def)+(this.FIGHTCON.enemy_debuff.BURN+Burn))/100
|
||||
}
|
||||
return Math.floor(damage)
|
||||
}
|
||||
check_shield(){
|
||||
if(this.shield>0){
|
||||
this.shield -= 1
|
||||
this.BUFFCOMP.tooltip(5,"*吸收*");
|
||||
remainingDamage = 0
|
||||
if (this.shield <= 0) {
|
||||
if(this == null) return;
|
||||
this.BUFFCOMP.show_shield(false);
|
||||
}
|
||||
}else{
|
||||
if(this == null) return;
|
||||
this.hp -= remainingDamage;
|
||||
if(this.hp <= 0) {
|
||||
if(this == null) return;
|
||||
this.is_dead=true
|
||||
this.BUFFCOMP.dead()
|
||||
this.do_dead()
|
||||
console.log("[HeroViewComp]:dead,fac => "+(this.fac==FacSet.HERO?"hero":"monster"))
|
||||
if(this.ent == null) return;
|
||||
if(this.fac ==FacSet.HERO){
|
||||
this.to_grave()
|
||||
}else{
|
||||
this.ent.destroy();
|
||||
}
|
||||
}
|
||||
this.BUFFCOMP.update_info_hp()
|
||||
this.showDamage(remainingDamage, true);
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
check_dodge(){
|
||||
if(this.dod > 0){
|
||||
let random = Math.random()*100
|
||||
if(random < this.dod) {
|
||||
this.BUFFCOMP.tooltip(6,"*闪避*");
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
check_crit(crt:number=0){
|
||||
if(this.crt_no) return false
|
||||
if(crt > 0){
|
||||
let random = Math.random()*100
|
||||
if(random < crt) {
|
||||
console.log("[HeroViewComp]:crit",crt,random)
|
||||
return true
|
||||
}
|
||||
}
|
||||
console.log("[HeroViewComp]:crit",crt)
|
||||
return false
|
||||
}
|
||||
// dead(){
|
||||
// this.BUFFCOMP.dead()
|
||||
@@ -440,7 +558,16 @@ export class HeroViewComp extends CCComp {
|
||||
delay: this.damageInterval
|
||||
});
|
||||
}
|
||||
|
||||
ex_show(text:string){
|
||||
switch(text){
|
||||
case "blue":
|
||||
this.BUFFCOMP.max_show("max_blue")
|
||||
break
|
||||
case "red":
|
||||
this.BUFFCOMP.max_show("max_red")
|
||||
break
|
||||
}
|
||||
}
|
||||
/** 处理伤害队列 */
|
||||
private processDamageQueue() {
|
||||
if (this.isProcessingDamage || this.damageQueue.length === 0) return;
|
||||
|
||||
@@ -67,6 +67,11 @@ export class Monster extends ecs.Entity {
|
||||
hv.hp= hv.hp_max =hero.hp;
|
||||
hv.ap = hero.ap;
|
||||
hv.cd = hero.a_cd
|
||||
hv.crt=hero.crt
|
||||
hv.crt_d=hero.crt_d
|
||||
hv.dod=hero.dod
|
||||
hv.dod_no=hero.dod_no
|
||||
hv.crt_no=hero.crt_no
|
||||
hv.atk_skill=hero.skills[0]
|
||||
this.add(hv);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import { CCComp } from 'db://oops-framework/module/common/CCComp';
|
||||
import { FightConComp } from '../map/FightConComp';
|
||||
import { MonModelComp } from './MonModelComp';
|
||||
import { HeroModelComp } from './HeroModelComp';
|
||||
import { FightSet } from '../common/config/Mission';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('SkillCon')
|
||||
@@ -37,7 +38,7 @@ export class SkillConComp extends CCComp {
|
||||
|
||||
update(dt: number) {
|
||||
if(!smc.mission.play||smc.mission.pause) return
|
||||
this.HeroView.at += dt;
|
||||
if(this.HeroView.DEBUFF_STUN <= 0) this.HeroView.at += dt;
|
||||
|
||||
let cd = this.get_cd(this.HeroView.cd,this.HeroView)
|
||||
let count=this.get_count(1,this.HeroView)
|
||||
@@ -55,29 +56,6 @@ export class SkillConComp extends CCComp {
|
||||
}
|
||||
}
|
||||
|
||||
get_cd(cd:number,view:HeroViewComp){
|
||||
if(view.fac==FacSet.HERO){
|
||||
if(view.is_master){
|
||||
return cd*(100-this.FIGHTCON.hero_buff.ATK_CD+this.FIGHTCON.hero_debuff.DECD)/100
|
||||
}else{
|
||||
return cd*(100-this.FIGHTCON.friend_buff.ATK_CD+this.FIGHTCON.friend_debuff.DECD)/100
|
||||
}
|
||||
}else{
|
||||
return cd*(100-this.FIGHTCON.enemy_buff.ATK_CD+this.FIGHTCON.enemy_debuff.DECD)/100
|
||||
}
|
||||
}
|
||||
get_count(count:number,view:HeroViewComp){
|
||||
if(view.fac==FacSet.HERO){
|
||||
if(view.is_master){
|
||||
return count+(this.FIGHTCON.hero_buff.ATK_COUNT-this.FIGHTCON.hero_debuff.DECOUNT)
|
||||
}else{
|
||||
return count+(this.FIGHTCON.friend_buff.ATK_COUNT-this.FIGHTCON.friend_debuff.DECOUNT)
|
||||
}
|
||||
}else{
|
||||
return count+(this.FIGHTCON.enemy_buff.ATK_COUNT-this.FIGHTCON.enemy_debuff.DECOUNT)
|
||||
}
|
||||
|
||||
}
|
||||
cast_master_skill(e:string,uuid:any){
|
||||
if(!this.HeroView) return
|
||||
if(!this.HeroView.is_master) return
|
||||
@@ -85,15 +63,15 @@ export class SkillConComp extends CCComp {
|
||||
const config = SkillSet[uuid];
|
||||
this.castSkill(config,1,this.FIGHTCON.hero_buff.SKILL_DMG)
|
||||
}
|
||||
|
||||
/** 施放技能 */
|
||||
castSkill(config: typeof SkillSet[keyof typeof SkillSet],count:number=1,dmg:number=0) {
|
||||
castSkill(config: typeof SkillSet[keyof typeof SkillSet],count:number=1,dmg:number=0) {
|
||||
// console.log(view.uuid+"=>"+view.hero_name+"施放技能:"+config.uuid);
|
||||
|
||||
this.doSkill(config,count,dmg);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private doSkill(config: typeof SkillSet[keyof typeof SkillSet],count:number=1,angle:number=0,dmg:number=0) {
|
||||
// 添加节点有效性检查
|
||||
if (!this.node || !this.node.isValid || !this.HeroView || !this.HeroView.node || !this.HeroView.node.isValid) {
|
||||
@@ -144,17 +122,22 @@ export class SkillConComp extends CCComp {
|
||||
dmg
|
||||
);
|
||||
}, 300);
|
||||
count-=1
|
||||
if(count>0){
|
||||
let angle=10*count
|
||||
if(count > 1 && this.check_double_atk(count)){
|
||||
this.scheduleOnce(()=>{
|
||||
this.doSkill(config,count,angle)
|
||||
},0.1)
|
||||
this.HeroView.ex_show("blue")
|
||||
this.doSkill(config,1)
|
||||
},0.05)
|
||||
}
|
||||
// 保存定时器ID
|
||||
this._timers[`skill_${config.uuid}`] = timerId;
|
||||
}
|
||||
|
||||
check_double_atk(count:number){
|
||||
let random = Math.random()*100
|
||||
if(random < FightSet.DOUBLE_ATK_RATE*count){
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
/** 筛选最前排单位 */
|
||||
@@ -202,7 +185,29 @@ export class SkillConComp extends CCComp {
|
||||
// console.log("clear_timer");
|
||||
Object.values(this._timers).forEach(clearTimeout);
|
||||
}
|
||||
|
||||
get_cd(cd:number,view:HeroViewComp){
|
||||
if(view.fac==FacSet.HERO){
|
||||
if(view.is_master){
|
||||
return cd*(100-this.FIGHTCON.hero_buff.ATK_CD+this.FIGHTCON.hero_debuff.DECD)/100
|
||||
}else{
|
||||
return cd*(100-this.FIGHTCON.friend_buff.ATK_CD+this.FIGHTCON.friend_debuff.DECD)/100
|
||||
}
|
||||
}else{
|
||||
return cd*(100-this.FIGHTCON.enemy_buff.ATK_CD+this.FIGHTCON.enemy_debuff.DECD)/100
|
||||
}
|
||||
}
|
||||
get_count(count:number,view:HeroViewComp){
|
||||
if(view.fac==FacSet.HERO){
|
||||
if(view.is_master){
|
||||
return count+(this.FIGHTCON.hero_buff.ATK_COUNT-this.FIGHTCON.hero_debuff.DECOUNT)
|
||||
}else{
|
||||
return count+(this.FIGHTCON.friend_buff.ATK_COUNT-this.FIGHTCON.friend_debuff.DECOUNT)
|
||||
}
|
||||
}else{
|
||||
return count+(this.FIGHTCON.enemy_buff.ATK_COUNT-this.FIGHTCON.enemy_debuff.DECOUNT)
|
||||
}
|
||||
|
||||
}
|
||||
reset() {
|
||||
this.clear_timer();
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import { HeroModelComp } from "../hero/HeroModelComp";
|
||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { HeroSkillList, SkillSet } from "../common/config/SkillSet";
|
||||
import { cardType, getRandomCardUUID, SuperCards } from "../common/config/CardSet";
|
||||
import { cardType, getRandomCardUUID, Quality, SuperCards } from "../common/config/CardSet";
|
||||
import { EquipInfo } from "../common/config/Equips";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
@@ -105,7 +105,17 @@ export class CardComp extends CCComp {
|
||||
|
||||
show_skill(uuid:number){
|
||||
let show=this.node.getChildByName("show")
|
||||
show.getChildByName("name").getComponent(Label).string=SkillSet[uuid].name
|
||||
show.getChildByName("name").getChildByName("name").getComponent(Label).string=SkillSet[uuid].name
|
||||
show.getChildByName("q1").active=SkillSet[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("q2").active=SkillSet[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("q3").active=SkillSet[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("q4").active=SkillSet[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("q5").active=SkillSet[uuid].quality==Quality.ORANGE
|
||||
show.getChildByName("mask").getChildByName("q1").active=SkillSet[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("mask").getChildByName("q2").active=SkillSet[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("mask").getChildByName("q3").active=SkillSet[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("mask").getChildByName("q4").active=SkillSet[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("mask").getChildByName("q5").active=SkillSet[uuid].quality==Quality.ORANGE
|
||||
this.do_card_bg_show()
|
||||
var icon_path = "game/skills/skill_icon"
|
||||
resources.load(icon_path, SpriteAtlas, (err: any, atlas) => {
|
||||
@@ -117,15 +127,25 @@ export class CardComp extends CCComp {
|
||||
show_hero(uuid:number){
|
||||
let show=this.node.getChildByName("show")
|
||||
this.do_card_bg_show()
|
||||
show.getChildByName("ap").active=true
|
||||
show.getChildByName("hp").active=true
|
||||
show.getChildByName("name").getComponent(Label).string=HeroInfo[uuid].name
|
||||
show.getChildByName("ap").getChildByName("num").getComponent(Label).string=HeroInfo[uuid].ap.toString()
|
||||
show.getChildByName("hp").getChildByName("num").getComponent(Label).string=HeroInfo[uuid].hp.toString()
|
||||
// show.getChildByName("ap").active=true
|
||||
// show.getChildByName("hp").active=true
|
||||
show.getChildByName("name").getChildByName("name").getComponent(Label).string=HeroInfo[uuid].name
|
||||
// show.getChildByName("ap").getChildByName("num").getComponent(Label).string=HeroInfo[uuid].ap.toString()
|
||||
// show.getChildByName("hp").getChildByName("num").getComponent(Label).string=HeroInfo[uuid].hp.toString()
|
||||
// show.getChildByName("type").getChildByName("war").active=HeroInfo[uuid].type==0
|
||||
// show.getChildByName("type").getChildByName("bow").active=HeroInfo[uuid].type==1
|
||||
// show.getChildByName("type").getChildByName("mag").active=HeroInfo[uuid].type==2
|
||||
// show.getChildByName("lv").getChildByName("num").getComponent(Label).string=HeroInfo[uuid].lv.toString()
|
||||
show.getChildByName("q1").active=HeroInfo[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("q2").active=HeroInfo[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("q3").active=HeroInfo[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("q4").active=HeroInfo[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("q5").active=HeroInfo[uuid].quality==Quality.ORANGE
|
||||
show.getChildByName("mask").getChildByName("q1").active=HeroInfo[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("mask").getChildByName("q2").active=HeroInfo[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("mask").getChildByName("q3").active=HeroInfo[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("mask").getChildByName("q4").active=HeroInfo[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("mask").getChildByName("q5").active=HeroInfo[uuid].quality==Quality.ORANGE
|
||||
var icon_path = "game/heros/herois"
|
||||
resources.load(icon_path, SpriteAtlas, (err: any, atlas) => {
|
||||
const sprite = show.getChildByName("mask").getChildByName("hero").getComponent(Sprite);
|
||||
@@ -137,7 +157,17 @@ export class CardComp extends CCComp {
|
||||
show_equip(uuid:number){
|
||||
let show=this.node.getChildByName("show")
|
||||
this.do_card_bg_show()
|
||||
show.getChildByName("name").getComponent(Label).string=EquipInfo[uuid].name
|
||||
show.getChildByName("q1").active=EquipInfo[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("q2").active=EquipInfo[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("q3").active=EquipInfo[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("q4").active=EquipInfo[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("q5").active=EquipInfo[uuid].quality==Quality.ORANGE
|
||||
show.getChildByName("mask").getChildByName("q1").active=EquipInfo[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("mask").getChildByName("q2").active=EquipInfo[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("mask").getChildByName("q3").active=EquipInfo[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("mask").getChildByName("q4").active=EquipInfo[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("mask").getChildByName("q5").active=EquipInfo[uuid].quality==Quality.ORANGE
|
||||
show.getChildByName("name").getChildByName("name").getComponent(Label).string=EquipInfo[uuid].name
|
||||
var icon_path = "game/heros/equips"
|
||||
resources.load(icon_path, SpriteAtlas, (err: any, atlas) => {
|
||||
const sprite = show.getChildByName("mask").getChildByName("equip").getComponent(Sprite);
|
||||
@@ -148,7 +178,19 @@ export class CardComp extends CCComp {
|
||||
show_func(uuid:number){
|
||||
let show=this.node.getChildByName("show")
|
||||
this.do_card_bg_show()
|
||||
show.getChildByName("name").getComponent(Label).string=SuperCards[uuid].name
|
||||
show.getChildByName("q1").active=SuperCards[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("q2").active=SuperCards[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("q3").active=SuperCards[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("q4").active=SuperCards[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("q5").active=SuperCards[uuid].quality==Quality.ORANGE
|
||||
show.getChildByName("mask").getChildByName("q1").active=SuperCards[uuid].quality==Quality.WHITE
|
||||
show.getChildByName("mask").getChildByName("q2").active=SuperCards[uuid].quality==Quality.GREEN
|
||||
show.getChildByName("mask").getChildByName("q3").active=SuperCards[uuid].quality==Quality.BLUE
|
||||
show.getChildByName("mask").getChildByName("q4").active=SuperCards[uuid].quality==Quality.PURPLE
|
||||
show.getChildByName("mask").getChildByName("q5").active=SuperCards[uuid].quality==Quality.ORANGE
|
||||
show.getChildByName("name").getChildByName("name").getComponent(Label).string=SuperCards[uuid].name
|
||||
|
||||
|
||||
var icon_path = "game/heros/cards"
|
||||
resources.load(icon_path, SpriteAtlas, (err: any, atlas) => {
|
||||
const sprite = show.getChildByName("mask").getChildByName("func").getComponent(Sprite);
|
||||
@@ -162,32 +204,24 @@ export class CardComp extends CCComp {
|
||||
show.getChildByName("ap").active=false
|
||||
show.getChildByName("hp").active=false
|
||||
show.getChildByName("mask").getChildByName("skill").active=false
|
||||
show.getChildByName("mask").getChildByName("s_bg").active=false
|
||||
show.getChildByName("mask").getChildByName("equip").active=false
|
||||
show.getChildByName("mask").getChildByName("e_bg").active=false
|
||||
show.getChildByName("mask").getChildByName("hero").active=false
|
||||
show.getChildByName("mask").getChildByName("h_bg").active=false
|
||||
show.getChildByName("mask").getChildByName("func").active=false
|
||||
show.getChildByName("mask").getChildByName("f_bg").active=false
|
||||
switch(this.c_type){
|
||||
case cardType.HERO:
|
||||
show.getChildByName("mask").getChildByName("hero").active=true
|
||||
show.getChildByName("mask").getChildByName("h_bg").active=true
|
||||
show.getChildByName("type").getChildByName("name").getComponent(Label).string="英雄"
|
||||
break
|
||||
case cardType.SKILL:
|
||||
show.getChildByName("mask").getChildByName("skill").active=true
|
||||
show.getChildByName("mask").getChildByName("s_bg").active=true
|
||||
show.getChildByName("type").getChildByName("name").getComponent(Label).string="技能"
|
||||
break
|
||||
case cardType.EQUIP:
|
||||
show.getChildByName("mask").getChildByName("equip").active=true
|
||||
show.getChildByName("mask").getChildByName("e_bg").active=true
|
||||
show.getChildByName("type").getChildByName("name").getComponent(Label).string="装备"
|
||||
break
|
||||
case cardType.SPECIAL:
|
||||
show.getChildByName("mask").getChildByName("func").active=true
|
||||
show.getChildByName("mask").getChildByName("f_bg").active=true
|
||||
show.getChildByName("type").getChildByName("name").getComponent(Label).string="特效"
|
||||
break
|
||||
}
|
||||
@@ -202,7 +236,7 @@ export class CardComp extends CCComp {
|
||||
// return "替换"
|
||||
// }
|
||||
// }
|
||||
return "选择"
|
||||
return "购买"
|
||||
}
|
||||
use_card(){
|
||||
switch(this.c_type){
|
||||
|
||||
@@ -32,13 +32,14 @@ export class CardsCompComp extends CCComp {
|
||||
this.on(GameEvent.HeroSkillSelect, this.addToQueue, this);
|
||||
this.on(GameEvent.HeroSelect, this.addToQueue, this);
|
||||
this.on(GameEvent.CardRefresh, this.addToQueue, this);
|
||||
this.on(GameEvent.FuncSelect, this.addToQueue, this);
|
||||
this.on(GameEvent.MissionEnd, this.clear_cards, this);
|
||||
this.on(GameEvent.HeroSkillSelectEnd, this.close_cards, this);
|
||||
this.on(GameEvent.CardsClose, this.close_cards, this);
|
||||
|
||||
this.card1=this.node.getChildByName("card1")
|
||||
this.card2=this.node.getChildByName("card2")
|
||||
this.card3=this.node.getChildByName("card3")
|
||||
this.on(GameEvent.EquipSelect, this.addToQueue, this);
|
||||
this.card1=this.node.getChildByName("cards").getChildByName("card1")
|
||||
this.card2=this.node.getChildByName("cards").getChildByName("card2")
|
||||
this.card3=this.node.getChildByName("cards").getChildByName("card3")
|
||||
// this.card4=this.node.getChildByName("card4")
|
||||
this.card1c=this.card1.getComponent(CardComp)
|
||||
this.card2c=this.card2.getComponent(CardComp)
|
||||
@@ -116,11 +117,15 @@ export class CardsCompComp extends CCComp {
|
||||
console.log("[CardsComp]:显示技能选择卡牌")
|
||||
this.hero_skill_select()
|
||||
break
|
||||
case GameEvent.CardRefresh:
|
||||
console.log("[CardsComp]:显示随机刷新卡牌")
|
||||
case GameEvent.FuncSelect:
|
||||
console.log("[CardsComp]:显示功能卡牌")
|
||||
this.node.getChildByName("Button").active=true
|
||||
this.func_select()
|
||||
break
|
||||
case GameEvent.EquipSelect:
|
||||
console.log("[CardsComp]:显示装备选择卡牌")
|
||||
this.equip_select()
|
||||
break
|
||||
}
|
||||
this.show()
|
||||
}
|
||||
@@ -144,8 +149,8 @@ export class CardsCompComp extends CCComp {
|
||||
show(){
|
||||
// 设置初始状态
|
||||
smc.mission.pause=true
|
||||
this.node.getChildByName("Button").setPosition(v3(0, this.node.getChildByName("Button").getPosition().y, 0))
|
||||
this.node.getChildByName("top").setPosition(v3(0, this.node.getChildByName("top").getPosition().y, 0))
|
||||
// this.node.getChildByName("Button").setPosition(v3(0, this.node.getChildByName("Button").getPosition().y, 0))
|
||||
// this.node.getChildByName("top").setPosition(v3(0, this.node.getChildByName("top").getPosition().y, 0))
|
||||
this.node.setPosition(v3(0, 0, 0));
|
||||
this.node.setScale(v3(0, 0, 1));
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ export class FightConComp extends Component {
|
||||
private aoe_timer: number = 0; // 技能执行计时器
|
||||
private readonly AOE_INTERVAL: number = 0.4; // 执行间隔,单位秒
|
||||
|
||||
aoe_pos:Vec3=new Vec3(-280,300,0)
|
||||
aoe_pos:Vec3=new Vec3(-280,20,0)
|
||||
aoe_target_pos:Vec3=new Vec3(180,0,0)
|
||||
buff_pos:Vec3=new Vec3(-280,100,0)
|
||||
debuff_pos:Vec3=new Vec3(-280,100,0)
|
||||
@@ -185,9 +185,10 @@ export class FightConComp extends Component {
|
||||
}else{
|
||||
target_pos= new Vec3(targets[0].get(HeroViewComp).node.position.x,0,0)
|
||||
}
|
||||
|
||||
let start_pos=new Vec3(-280,50,0)
|
||||
// console.log("[Skill]:node=>",start_pos)
|
||||
skill.load(
|
||||
this.aoe_pos,
|
||||
start_pos,
|
||||
this.node,
|
||||
data.s_uuid,
|
||||
target_pos,
|
||||
|
||||
@@ -48,15 +48,42 @@ export class MissionComp extends CCComp {
|
||||
|
||||
private on_mon_wave_update(){
|
||||
smc.vmdata.mission_data.current_wave++
|
||||
console.log("[任务系统] 当前波次 :",smc.vmdata.mission_data.current_wave)
|
||||
switch(smc.vmdata.mission_data.current_wave){
|
||||
case FightSet.FRIEND_WAVE_UP:
|
||||
let wave=smc.vmdata.mission_data.current_wave
|
||||
if(wave==FightSet.FRIEND_WAVE_UP){
|
||||
console.log("[任务系统] FRIEND_WAVE_UP 英雄选择 :",wave,FightSet.FRIEND_WAVE_UP)
|
||||
this.to_hero_select()
|
||||
break
|
||||
case 2:
|
||||
break
|
||||
case 3:
|
||||
}
|
||||
if(wave==FightSet.BOSS_WAVE_UP_1){
|
||||
console.log("[任务系统] BOSS_WAVE_UP_1 装备选择 :",wave,FightSet.BOSS_WAVE_UP_1)
|
||||
}
|
||||
if(wave==FightSet.BOSS_WAVE_UP_2){
|
||||
console.log("[任务系统] BOSS_WAVE_UP_2 装备选择 :",wave,FightSet.BOSS_WAVE_UP_2)
|
||||
}
|
||||
if(wave==FightSet.BOSS_WAVE_UP_3){
|
||||
console.log("[任务系统] BOSS_WAVE_UP_3 装备选择 :",wave,FightSet.BOSS_WAVE_UP_3)
|
||||
}
|
||||
if(wave==FightSet.EQUIP_WAVE_UP_1){
|
||||
console.log("[任务系统] EQUIP_WAVE_UP_1 装备选择 :",wave,FightSet.EQUIP_WAVE_UP_1)
|
||||
}
|
||||
if(wave==FightSet.EQUIP_WAVE_UP_2){
|
||||
console.log("[任务系统] EQUIP_WAVE_UP_2 装备选择 :",wave,FightSet.EQUIP_WAVE_UP_2)
|
||||
}
|
||||
if(wave==FightSet.EQUIP_WAVE_UP_3){
|
||||
console.log("[任务系统] EQUIP_WAVE_UP_3 装备选择 :",wave,FightSet.EQUIP_WAVE_UP_3)
|
||||
}
|
||||
if(wave==FightSet.SKILL_WAVE_UP_1){
|
||||
console.log("[任务系统] SKILL_WAVE_UP_1 技能选择 :",wave,FightSet.SKILL_WAVE_UP_1)
|
||||
oops.message.dispatchEvent(GameEvent.HeroSkillSelect)
|
||||
}
|
||||
if(wave==FightSet.SKILL_WAVE_UP_2){
|
||||
console.log("[任务系统] SKILL_WAVE_UP_2 技能选择 :",wave,FightSet.SKILL_WAVE_UP_2)
|
||||
oops.message.dispatchEvent(GameEvent.HeroSkillSelect)
|
||||
}
|
||||
if(wave==FightSet.SKILL_WAVE_UP_3){
|
||||
console.log("[任务系统] SKILL_WAVE_UP_3 技能选择 :",wave,FightSet.SKILL_WAVE_UP_3)
|
||||
oops.message.dispatchEvent(GameEvent.HeroSkillSelect)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async mission_start(){
|
||||
@@ -74,7 +101,7 @@ export class MissionComp extends CCComp {
|
||||
}
|
||||
to_ready(){
|
||||
console.log("英雄技能选择")
|
||||
oops.message.dispatchEvent(GameEvent.HeroSkillSelect)
|
||||
// oops.message.dispatchEvent(GameEvent.HeroSkillSelect)
|
||||
}
|
||||
|
||||
to_hero_select(){
|
||||
@@ -133,7 +160,26 @@ export class MissionComp extends CCComp {
|
||||
mission_data.gold-=(mission_data.refresh_gold+mission_data.buff_refresh_gold)
|
||||
|
||||
}
|
||||
|
||||
call_equip_card(){
|
||||
let mission_data=smc.vmdata.mission_data
|
||||
if(mission_data.gold < (mission_data.refresh_gold+mission_data.buff_refresh_gold)){
|
||||
oops.gui.toast("金币不足", false);
|
||||
return
|
||||
}
|
||||
oops.message.dispatchEvent(GameEvent.EquipSelect)
|
||||
mission_data.gold-=(mission_data.refresh_gold+mission_data.buff_refresh_gold)
|
||||
|
||||
}
|
||||
call_func_card(){
|
||||
let mission_data=smc.vmdata.mission_data
|
||||
if(mission_data.gold < (mission_data.refresh_gold+mission_data.buff_refresh_gold)){
|
||||
oops.gui.toast("金币不足", false);
|
||||
return
|
||||
}
|
||||
oops.message.dispatchEvent(GameEvent.FuncSelect)
|
||||
mission_data.gold-=(mission_data.refresh_gold+mission_data.buff_refresh_gold)
|
||||
|
||||
}
|
||||
private cleanComponents() {
|
||||
ecs.query(ecs.allOf(HeroViewComp)).forEach(entity => {entity.remove(HeroViewComp);entity.destroy()});
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import { HeroViewComp } from "../hero/HeroViewComp";
|
||||
import { oops } from "db://oops-framework/core/Oops";
|
||||
import { HeroPos } from "../common/config/heroSet";
|
||||
import { FightSet } from "../common/config/Mission";
|
||||
import { FriendModelComp } from "../hero/FriendModel";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
/** 视图层对象 */
|
||||
@@ -21,7 +22,7 @@ export class MissionHeroCompComp extends CCComp {
|
||||
Friend_is_dead:boolean=false
|
||||
current_hero_uuid:number=0
|
||||
onLoad(){
|
||||
this.on(GameEvent.UseHeroCard,this.call_friend,this)
|
||||
this.on(GameEvent.UseHeroCard,this.call_hero,this)
|
||||
this.on(GameEvent.ChangeATK_EQUIP_SPECIAL_ATTR,this.change_equip_qpecial_attr,this)
|
||||
this.on(GameEvent.FightReady,this.fight_ready,this)
|
||||
|
||||
@@ -113,21 +114,20 @@ export class MissionHeroCompComp extends CCComp {
|
||||
// }
|
||||
|
||||
|
||||
// call_hero(event: string, args: any){
|
||||
// // this.node.getChildByName("location").active=false
|
||||
// // console.log("call_hero",args)
|
||||
// // let fight_pos=args
|
||||
// // this.timer.reset()
|
||||
// // let hero_list =HeroList
|
||||
// // let x=RandomManager.instance.getRandomInt(0,hero_list.length,1)
|
||||
// // // let uuid=args.uuid
|
||||
// // // console.log("call_hero",uuid)
|
||||
// this.addHero(args.uuid)
|
||||
// }
|
||||
call_hero(event: string, args: any){
|
||||
// this.node.getChildByName("location").active=false
|
||||
// console.log("call_hero",args)
|
||||
// let fight_pos=args
|
||||
// this.timer.reset()
|
||||
// let hero_list =HeroList
|
||||
// let x=RandomManager.instance.getRandomInt(0,hero_list.length,1)
|
||||
// // let uuid=args.uuid
|
||||
// // console.log("call_hero",uuid)
|
||||
this.addHero(args.uuid)
|
||||
}
|
||||
|
||||
/** 添加英雄 */
|
||||
private addHero(uuid:number=1001,freind_pos:number=0) {
|
||||
console.log("call_hero addHero",uuid)
|
||||
private addHero(uuid:number=1001,freind_pos:number=1) {
|
||||
let info:any=this.get_info_and_remove(freind_pos,uuid)
|
||||
// let info:any={ap:0,hp:0,lv:0}
|
||||
let hero = ecs.getEntity<Hero>(Hero);
|
||||
@@ -138,27 +138,22 @@ export class MissionHeroCompComp extends CCComp {
|
||||
}
|
||||
|
||||
get_info_and_remove(fight_pos:number,uuid:number){
|
||||
let info:any={ap:0,hp:0,lv:0}
|
||||
let heros=ecs.query(ecs.allOf(HeroModelComp))
|
||||
for(let hero of heros){
|
||||
let info:any={ap:0,hp:0,lv:1,crt:0,crt_d:0,dod:0,dod_no:false,crt_no:false}
|
||||
let heros=ecs.query(ecs.allOf(FriendModelComp))
|
||||
if(heros.length>0){
|
||||
let hero = heros[0]
|
||||
let hv = hero.get(HeroViewComp)
|
||||
if(hv.fight_pos==fight_pos&&!hv.is_master){
|
||||
// let AP_UP_RATE = hv.hero_uuid === uuid ? FightSet.AP_UPDATE_RATE : FightSet.AP_CHANGE_RATE;
|
||||
// let heroUpData = HeroUpInfo[hv.hero_uuid] || {}
|
||||
// let o_ap_rate = heroUpData.ap_up_rate || 0 //被替换 升级的英雄额外被替换攻击增长比率
|
||||
// let o_ap = heroUpData.ap_up || 0 //被替换 升级的英雄额外被替换攻击增长值
|
||||
// let s_ap_rate = (HeroUpInfo[uuid] || {}).ap_up_rate || 0 //替换 升级的英雄额外替换攻击增长比率
|
||||
// let s_ap = (HeroUpInfo[uuid] || {}).ap_up || 0 //替换 升级的英雄额外替换攻击增长值
|
||||
// let o_hp_up = heroUpData.hp_up || 0 //被替换 升级的英雄额外被替换血量增长值
|
||||
// let s_hp_up = (HeroUpInfo[uuid] || {}).hp_up || 0 //替换 升级的英雄额外替换血量增长值
|
||||
// info.ap=Math.floor(hv.ap*(AP_UP_RATE+o_ap_rate+s_ap_rate)/100+o_ap+s_ap)
|
||||
// info.hp=Math.floor(o_hp_up+s_hp_up)
|
||||
info.ap=hv.ap
|
||||
info.hp=hv.hp_max
|
||||
info.lv=hv.lv
|
||||
hero.destroy()
|
||||
return info
|
||||
}
|
||||
info.ap=hv.ap
|
||||
info.hp=hv.hp_max
|
||||
info.lv=hv.lv
|
||||
info.crt=hv.crt
|
||||
info.crt_d=hv.crt_d
|
||||
info.dod=hv.dod
|
||||
info.dod_no=hv.dod_no
|
||||
info.crt_no=hv.crt_no
|
||||
hero.destroy()
|
||||
return info
|
||||
|
||||
}
|
||||
return info
|
||||
}
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
import { _decorator,Collider2D ,Contact2DType,v3,IPhysics2DContact,Vec3, tween, math, RigidBody2D, Animation, sp} from "cc";
|
||||
import { _decorator,Collider2D ,Contact2DType,v3,IPhysics2DContact,Vec3, tween, math, RigidBody2D, Animation, sp, Tween} from "cc";
|
||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||
import { smc } from "../common/SingletonModuleComp";
|
||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||
import { GameEvent } from "../common/config/GameEvent";
|
||||
import { AType, EType, RType, SkillSet } from "../common/config/SkillSet";
|
||||
import { BoxSet } from "../common/config/BoxSet";
|
||||
import { BoxSet, FacSet } from "../common/config/BoxSet";
|
||||
import { HeroFac, HeroSet } from "../common/config/heroSet";
|
||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||
import { BezierMove } from "../BezierMove/BezierMove";
|
||||
import { FightConComp } from "../map/FightConComp";
|
||||
import { MonModelComp } from "../hero/MonModelComp";
|
||||
import { FightSet } from "../common/config/Mission";
|
||||
import { HeroModelComp } from "../hero/HeroModelComp";
|
||||
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
@@ -41,10 +43,15 @@ export class SkillCom extends CCComp {
|
||||
distance_y:number=0;
|
||||
ap:number=0;
|
||||
FIGHTCON:FightConComp=null;
|
||||
run_time:number=0;
|
||||
hited_time:number=0;
|
||||
hit_count:number=0;
|
||||
spine:sp.Skeleton=null;
|
||||
anim:Animation=null;
|
||||
tweenInstance:Tween<any> = null;
|
||||
t_end_x:number=0;
|
||||
caster_crt:number=0;
|
||||
caster_crt_d:number=0;
|
||||
private moveDirection: Vec3 | null = null; // 添加一个属性来存储移动方向
|
||||
|
||||
protected onLoad(): void {
|
||||
@@ -53,6 +60,8 @@ export class SkillCom extends CCComp {
|
||||
}
|
||||
|
||||
start() {
|
||||
|
||||
this.node.setPosition(this.startPos.x,this.startPos.y,0)
|
||||
if(this.node.getChildByName('anm')){
|
||||
this.spine=this.node.getChildByName('anm').getComponent('sp.Skeleton') as sp.Skeleton;
|
||||
}else{
|
||||
@@ -60,6 +69,19 @@ export class SkillCom extends CCComp {
|
||||
}
|
||||
oops.message.on(GameEvent.MissionEnd, this.doDestroy, this);
|
||||
this.node.active = true;
|
||||
console.log("[SkillCom]:caster",this.caster)
|
||||
if(this.caster.fac==FacSet.HERO){
|
||||
if(this.caster.is_master){
|
||||
this.caster_crt = this.caster.crt+this.FIGHTCON.hero_buff.CRITICAL+this.FIGHTCON.hero_debuff.CRITICAL
|
||||
this.caster_crt_d = this.caster.crt_d+this.FIGHTCON.hero_buff.CRITICAL_DMG
|
||||
}else{
|
||||
this.caster_crt = this.caster.crt+this.FIGHTCON.friend_buff.CRITICAL+this.FIGHTCON.hero_debuff.CRITICAL
|
||||
this.caster_crt_d = this.caster.crt_d+this.FIGHTCON.friend_buff.CRITICAL_DMG
|
||||
}
|
||||
}else{
|
||||
this.caster_crt = this.caster.crt+this.FIGHTCON.enemy_buff.CRITICAL+this.FIGHTCON.enemy_debuff.CRITICAL
|
||||
this.caster_crt_d = this.caster.crt_d+this.FIGHTCON.enemy_buff.CRITICAL_DMG
|
||||
}
|
||||
let collider = this.getComponent(Collider2D);
|
||||
if(collider) {
|
||||
collider.group = this.group;
|
||||
@@ -71,22 +93,21 @@ export class SkillCom extends CCComp {
|
||||
this.node.angle +=10
|
||||
let bm=this.node.getComponent(BezierMove)
|
||||
// bm.speed=700
|
||||
if(this.group==BoxSet.MONSTER) bm.controlPointSide=-1
|
||||
if(SkillSet[this.s_uuid].RType==RType.linear) bm.controlPointOffset=0
|
||||
|
||||
if(this.group==BoxSet.MONSTER) bm.controlPointSide=-1
|
||||
bm.moveTo(this.targetPos)
|
||||
break;
|
||||
case AType.linear:
|
||||
let tx =400
|
||||
if(this.group==BoxSet.MONSTER){
|
||||
tx=-400
|
||||
this.node.scale=v3(this.node.scale.x*-1,1,1)
|
||||
}
|
||||
tween(this.node).to(1, { position:v3(tx,this.node.position.y,0)},{
|
||||
onComplete: (target?: object) => {
|
||||
this.node.setPosition(tx,this.node.position.y-300,0)
|
||||
}
|
||||
}).start()
|
||||
// this.distance_x=SkillSet[this.s_uuid].in*this.speed
|
||||
// this.t_end_x =400
|
||||
// if(this.group==BoxSet.MONSTER){
|
||||
// this.t_end_x=-400
|
||||
// this.node.scale=v3(this.node.scale.x*-1,1,1)
|
||||
// }
|
||||
// this.tweenInstance = tween(this.node).to(SkillSet[this.s_uuid].in, { position:v3(this.t_end_x,this.node.position.y,0)},{
|
||||
// onComplete: (target?: object) => {
|
||||
// // this.node.setPosition(tx,this.node.position.y-300,0)
|
||||
// }
|
||||
// }).start()
|
||||
break;
|
||||
case AType.fixedStart:
|
||||
|
||||
@@ -95,15 +116,15 @@ export class SkillCom extends CCComp {
|
||||
this.node.setPosition(this.targetPos.x,this.targetPos.y,0)
|
||||
if(this.node.getComponent(Animation)){
|
||||
let anim = this.node.getComponent(Animation);
|
||||
console.log("has anim",anim)
|
||||
anim.on(Animation.EventType.FINISHED, this.onAnimationFinishedToDestroy, this);
|
||||
console.log("[SkillCom]:has anim",anim)
|
||||
anim.on(Animation.EventType.FINISHED, this.onAnimationFinished, this);
|
||||
}
|
||||
if(this.node.getChildByName('anm')){
|
||||
if(this.node.getChildByName('anm').getComponent('sp.Skeleton')){
|
||||
console.log("has spine",this.spine)
|
||||
console.log("[SkillCom]:has spine",this.spine)
|
||||
this.spine.setCompleteListener((trackEntry) => {
|
||||
this.onAnimationFinishedToDestroy()
|
||||
console.log("[track %s][animation %s] complete: %s", trackEntry.trackIndex);
|
||||
this.onAnimationFinished()
|
||||
console.log("[SkillCom]:[track %s][animation %s] complete: %s", trackEntry.trackIndex);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -112,55 +133,56 @@ export class SkillCom extends CCComp {
|
||||
|
||||
|
||||
}
|
||||
onAnimationFinishedToDestroy(){
|
||||
|
||||
|
||||
onAnimationFinished(){
|
||||
if(SkillSet[this.s_uuid].EType==EType.timeEnd) return
|
||||
this.is_destroy=true
|
||||
}
|
||||
onAnimationFinished(){
|
||||
//范围伤害
|
||||
range_damage(){
|
||||
this.hit_count++
|
||||
let remainingDamage = this.ap;
|
||||
remainingDamage=remainingDamage*(100-this.FIGHTCON.enemy_buff.DEF+this.FIGHTCON.enemy_debuff.BURN)/100
|
||||
let enemys=ecs.query(ecs.allOf(MonModelComp))
|
||||
console.log("onAnimationFinished",enemys)
|
||||
|
||||
if(this.fac==FacSet.MON) enemys=ecs.query(ecs.allOf(HeroModelComp))
|
||||
enemys.forEach(entity => {
|
||||
let view=entity.get(HeroViewComp)
|
||||
if(view){
|
||||
let dis =Math.abs(this.node.position.x-view.node.position.x)
|
||||
if(dis > SkillSet[this.s_uuid].with) return
|
||||
view.do_atked(remainingDamage)
|
||||
view.do_atked(this.ap,this.caster_crt,this.caster_crt_d)
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
onBeginContact (seCol: Collider2D, oCol: Collider2D) {
|
||||
//单体伤害
|
||||
single_damage(target:HeroViewComp,crt:number=0,crt_d:number=0){
|
||||
this.hit_count++
|
||||
console.log("[SkillCom]:onBeginContact hit_count:",this.hit_count,SkillSet[this.s_uuid].hit)
|
||||
if(this.hit_count>=SkillSet[this.s_uuid].hit) this.is_destroy=true // 技能命中次数
|
||||
if(target == null) return;
|
||||
target.do_atked(this.ap,crt,crt_d)
|
||||
if(SkillSet[this.s_uuid].debuff>0){
|
||||
target.add_debuff(SkillSet[this.s_uuid].debuff,SkillSet[this.s_uuid].deV,SkillSet[this.s_uuid].deC)
|
||||
}
|
||||
}
|
||||
|
||||
onBeginContact (seCol: Collider2D, oCol: Collider2D) {
|
||||
// console.log(this.scale+"碰撞开始 ",seCol,oCol);
|
||||
let target = oCol.getComponent(HeroViewComp)
|
||||
let caster = seCol.getComponent(HeroViewComp)
|
||||
if(oCol.group!=this.group){
|
||||
if(target == null) return;
|
||||
let remainingDamage = this.ap;
|
||||
if(target.fac == BoxSet.HERO ){
|
||||
remainingDamage=remainingDamage*(100-this.FIGHTCON.hero_buff.DEF+this.FIGHTCON.hero_debuff.BURN)/100
|
||||
}
|
||||
if(target.fac == BoxSet.MONSTER){
|
||||
remainingDamage=remainingDamage*(100-this.FIGHTCON.enemy_buff.DEF+this.FIGHTCON.enemy_debuff.BURN)/100
|
||||
}
|
||||
target.do_atked(remainingDamage)
|
||||
this.ent.destroy()
|
||||
this.single_damage(target,this.caster_crt,this.caster_crt_d)
|
||||
// this.ent.destroy()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private startLinearMove(dt: number) {
|
||||
if (!this.speed || this.is_destroy) return;
|
||||
|
||||
// 使用角度方向移动
|
||||
const newX = this.node.position.x + this.distance_x * dt;
|
||||
const newY = this.node.position.y + this.distance_y * dt;
|
||||
this.node.setPosition(newX, newY, this.node.position.z);
|
||||
const newX = this.node.position.x + this.speed * dt;
|
||||
const newY = this.node.position.y;
|
||||
this.node.setPosition(newX, this.node.position.y, this.node.position.z);
|
||||
|
||||
// 检查是否超出边界
|
||||
if (newX < -400 || newX > 400) {
|
||||
@@ -169,10 +191,6 @@ export class SkillCom extends CCComp {
|
||||
}
|
||||
|
||||
|
||||
to_console(value:any,value2:any=null,value3:any=null){
|
||||
console.log("["+this.s_name+this.s_uuid+"]:",value,value2,value3)
|
||||
}
|
||||
|
||||
update(deltaTime: number) {
|
||||
let config=SkillSet[this.s_uuid]
|
||||
if(smc.mission.pause) {
|
||||
@@ -183,14 +201,24 @@ export class SkillCom extends CCComp {
|
||||
if(this.anim) this.anim.resume()
|
||||
if(this.spine) this.spine.paused=false
|
||||
if (!this.node || !this.node.isValid) return;
|
||||
this.hited_time+=deltaTime
|
||||
if(this.hited_time>config.hited&&this.AType==AType.fixedEnd&&this.hit_count == 0){
|
||||
this.hited_time=0
|
||||
this.onAnimationFinished()
|
||||
if(config.EType==EType.timeEnd){
|
||||
this.run_time+=deltaTime
|
||||
if(this.run_time>config.in){
|
||||
console.log("[SkillCom]: timeEnd destroy",this.s_uuid,this.run_time)
|
||||
this.is_destroy=true
|
||||
}
|
||||
}
|
||||
// if(this.AType == AType.linear) this.startLinearMove(deltaTime);
|
||||
//范围伤害
|
||||
this.hited_time+=deltaTime
|
||||
if(this.hited_time>config.hited&&this.hit_count == 0&&(config.EType==EType.animationEnd||config.EType==EType.timeEnd)){
|
||||
this.hited_time=0
|
||||
this.range_damage()
|
||||
}
|
||||
//直线移动
|
||||
if(this.AType == AType.linear) this.startLinearMove(deltaTime);
|
||||
this.toDestroy();
|
||||
}
|
||||
|
||||
toDestroy() {
|
||||
if(this.is_destroy){
|
||||
if (this.ent) {
|
||||
@@ -204,9 +232,13 @@ export class SkillCom extends CCComp {
|
||||
}
|
||||
}
|
||||
doDestroy(){
|
||||
// console.log("doDestroy")
|
||||
// console.log("[SkillCom]:doDestroy")
|
||||
this.is_destroy=true
|
||||
}
|
||||
to_console(value:any,value2:any=null,value3:any=null){
|
||||
console.log("[SkillCom]:["+this.s_name+this.s_uuid+"]:",value,value2,value3)
|
||||
}
|
||||
|
||||
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
|
||||
reset() {
|
||||
this.is_destroy = false;
|
||||
|
||||
@@ -26,6 +26,7 @@ export class TooltipCom extends CCComp {
|
||||
start() {
|
||||
switch(this.stype){
|
||||
case 1:
|
||||
this.node.setPosition(v3(this.node.position.x,this.node.position.y-50))
|
||||
this.node.setSiblingIndex(100);
|
||||
this.node.getChildByName("loss_life").getChildByName("hp").getComponent(Label).string = this.value;
|
||||
this.node.getChildByName("loss_life").active=true;
|
||||
@@ -42,6 +43,7 @@ export class TooltipCom extends CCComp {
|
||||
},0.5)
|
||||
break
|
||||
case 4:
|
||||
this.node.setPosition(v3(this.node.position.x,this.node.position.y-50))
|
||||
this.node.setSiblingIndex(200);
|
||||
this.node.getChildByName("bloss").getChildByName("hp").getComponent(Label).string = this.value;
|
||||
this.node.getChildByName("bloss").active=true;
|
||||
|
||||
@@ -20,17 +20,67 @@
|
||||
- [x] 每攻击n次 加伙伴ap
|
||||
- [x] 每攻击n次后 增加1金币
|
||||
- [x] 死亡 , 被攻击触发 2次
|
||||
|
||||
- [x] 暴击闪避 加入
|
||||
- [ ] 卡牌设定,卡牌icon
|
||||
- [ ] 清理技能动画 及设置
|
||||
- [ ] 伙伴特殊技能设定
|
||||
- [ ] 技能需要重新设计
|
||||
- [x] debuff 设定 易伤 为次数和伤害累加
|
||||
- [ ] 冰冻 眩晕 功能更新 还需要检验
|
||||
- [ ] 分按钮三选一, 装备, 功能卡, 副将和技能,特殊情况下 触发更换和获取
|
||||
- [ ] 修改 发现都是1金币,加白色0金币 绿色+1金币,蓝色+2金币
|
||||
- [ ] 刷新免费1回合,看广告 再刷新一回
|
||||
- [ ] 广告拿紫色品质, 各品质装备 属性相差20% ,紫色品质 一定几率出现,出现后 10秒后消失
|
||||
- [ ] 装备设定,借助AI
|
||||
- [ ] 添加玩家自主 激活额外boss 按钮,额外boss 有特殊事件
|
||||
- [ ]
|
||||
- [ ]
|
||||
- [ ]
|
||||
- [ ]
|
||||
- [ ]
|
||||
- [ ]
|
||||
- [ ]
|
||||
- [ ]
|
||||
- [ ]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
波数 升级 获取装备的等级
|
||||
|
||||
|
||||
# 装备系统三维度分层模型
|
||||
|
||||
## 1. 核心分层维度
|
||||
| 维度 | 作用域 | 设计目标 | 玩家感知重点 |
|
||||
|------------------|----------------|---------------------------|---------------------|
|
||||
| **基础值** | 单件装备 | 定义初始强度基准 | "这件装备基础怎么样" |
|
||||
| **品质系数** | 装备品质(白→紫)| 决定特效能力与成长潜力 | "颜色代表特殊能力" |
|
||||
| **等级成长系数** | 装备升级过程 | 强化基础值+特效 | "升级后的蜕变效果" |
|
||||
|
||||
## 2. 品质维度设计(按颜色分级)
|
||||
|
||||
| 品质 | 攻击基础值 | 品质系数 | 独有特效 | 成长潜力 |
|
||||
|------|------------|----------|------------------------|----------|
|
||||
| **白** | 80% | 0% | 无 | ★☆☆ |
|
||||
| **绿** | 85% | +5% | 低阶特效(减速5%) | ★★☆ |
|
||||
| **蓝** | 90% | +15% | 中阶特效(溅射10%) | ★★★ |
|
||||
| **紫** | 95% | +30% | 高阶特效(吸血15%) | ★★★★ |
|
||||
|
||||
> ✅ 品质核心规则:
|
||||
> 1. 同等级下品质越高→**基础值+品质系数越高**
|
||||
> 2. 品质决定**特效类型与强度**
|
||||
|
||||
## 3. 等级维度设计(可升级3次)
|
||||
|
||||
| 等级 | 成长系数 | 对基础值影响 | 对特效影响 | 升级成本(金币) |
|
||||
|------|----------|--------------|------------------------|----------------|
|
||||
| **1级** | 0% | 基准值 | 基准特效强度 | - |
|
||||
| **2级** | +10% | +10%基础值 | 特效强度+20% | 10/15/25/40* |
|
||||
| **3级** | +21% | +21%基础值 | 特效强度+42% | 20/30/50/80* |
|
||||
|
||||
`*成本顺序:白/绿/蓝/紫装`
|
||||
> ✅ 升级核心规则:
|
||||
> 1. 升级**同时强化基础属性与特效**
|
||||
> 2. 高品质装备升级收益**更高**
|
||||
|
||||
---
|
||||
|
||||
## 4. 三维综合计算规则
|
||||
|
||||
### 总攻击力公式:
|
||||
```math
|
||||
总攻击 = 基础值 \times (1 + 品质系数) \times (1 +
|
||||