去掉了 技能系统,技能由单个精灵独立处理

This commit is contained in:
2025-06-02 20:25:23 +08:00
parent c9a499e38b
commit 3fbfc2ea09
68 changed files with 3923 additions and 11907 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "766e69d3-f7bc-4ce2-a413-b3c0d99220ae",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "toast"
}
}

View File

@@ -1,12 +0,0 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "a8f2a4a3-911f-43d3-9174-f2176554d7d4",
"files": [
".json",
"Anton-Regular.ttf"
],
"subMetas": {},
"userData": {}
}

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "e2W2S9tbFNgrjc8vdk08/N"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "12/JRUQxNOb4XyRugfdK75"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "23j+p5lLdC+r4iKSVeLNM4"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "a2jPQ8TNhPj67IyZiPimbD"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "f9J5MYpqVJurCoZT896XOe"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "bcLqUE0OFGNrOQ237vM07E"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 94
},
{
"__id__": 96
}
],
"_prefab": {
"__id__": 96
"__id__": 98
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1490,6 +1493,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "65/zZmmONEP4ypg1xHzv1j"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 97
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "73tF4dlnxPwrg/FRKx1Opn"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 94
},
{
"__id__": 96
}
],
"_prefab": {
"__id__": 96
"__id__": 98
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1490,6 +1493,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "0aBacBm+1EhbTEYm3tG6G3"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 97
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "01hrg2GRpPOIe0UPL1K3+9"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -68,10 +68,13 @@
},
{
"__id__": 107
},
{
"__id__": 109
}
],
"_prefab": {
"__id__": 109
"__id__": 111
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1692,6 +1695,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "e2W2S9tbFNgrjc8vdk08/N"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 110
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "2a13RCH/1KEIh8ZZgHg7EK"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -62,10 +62,13 @@
},
{
"__id__": 85
},
{
"__id__": 87
}
],
"_prefab": {
"__id__": 87
"__id__": 89
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1362,6 +1365,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "74uEFSUQZMlaRMOjByGtK0"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 88
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "4cocBoZPBGhph8DyWbZwSS"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "eb89erE4lN6r2FgPFrTF8e"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "22rQh8lkpINoemMMMjGXPA"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 96
},
{
"__id__": 98
}
],
"_prefab": {
"__id__": 98
"__id__": 100
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1509,6 +1512,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "eeKNgjxCRDgYMueWKHQrDW"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 99
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f2f7ZpftZN5ats6jdhFfCm"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 96
},
{
"__id__": 98
}
],
"_prefab": {
"__id__": 98
"__id__": 100
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1509,6 +1512,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "56dQEMzjhAK4q8CnBcJEWy"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 99
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "36Wk0s1pFIyIkfzLiCmPBN"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "18gnHdvfBBOZFMM4hW+GHY"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "05nF8CNdFOYKJhGfpjRDX4"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "56/2VLMUNLMJ+OVe1KaAsr"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "232Gh8DDBFQ7zRv+QOTjXg"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "efehby3rRLmr2Z4Synvdj3"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "836E5i34FPToqzWnwzlVDz"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "2eBazvWGtK7q7rfRrSBS+7"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "9a3nalhjlGf5xVJptsSyKq"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "Idle",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "5fZjpqyIVIMr7pla/a9prZ"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "05VJe24KBCzbCU1k9ripA6"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "Idle",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "b7xSIfqo1CBJdbVCBBPRpy"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "37dVjAWjVHAJWq7v6fTbS+"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "Idle",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "ddLqP4WIhKTaUSPGNIz7hF"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "4eAgaYGytMJYfwiHXTcOZT"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "b3+l8vKlxDKoN8uTM2jYMP"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "abQgAplWJHPodBuHNyTWMA"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "5b1qIv00xPKZ5o25f5V8Zc"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "afiHwTFpdIn6w2uyIRU7xt"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "e9qEXCqexGXL8ooryRqEzn"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "1cgb1CUnNCr4nR3VAUft7+"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "ec1S2Mrw9FaIPF64315b/R"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "53HjY/v2VAxL8NO4tFVUL/"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "7d9l2xjPpEXZ01MEQbR4dE"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "48dzCDgFdKG6csA+sc2ID8"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "9d7tahaCVHYZWF7IADdA7S"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "7bZKWapK9IIosuBwaVoTFI"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "e5HfrcLulO57FxBCh257qw"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "0aEq7ZledOSIXshwpwJGyG"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "b8tOYnmd9Dr4K8MNblEeSX"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "98VK5+lNNBubVYhiZc4SAX"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "fczSZNUelJdaWMiDNbq1iv"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "448x0sxMpOXbM0GO9X9pYo"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "872givuUVF15sXOa0/zEsf"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d6OREzBXxNa4GZ0VAXDJ/H"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "Idle",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "c7NLRsAapGJpwsNupTJr9e"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "7fPH7XwiFI/6lZvRYrcNEK"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "Idle",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "7aulTZtoZPkpkSDGLAA4zS"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b9dtOtnn9PVqVXyCVCUBZE"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "Idle",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "61iEZSmUdHtZ4hr2bQyNg6"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "f7W3ThWxZNfKhwc2lc0QTP"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "2dgcYOrDNNmpgfuAAUvdIH"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "afzGJIw+RHurIvIzF6IiVC"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "a3AxTnU/BA96NVQ4/bXOAW"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "16Pdb0vBRI4Y25wskWqqHI"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "72j5Ff1iNKyJcZLaf5kyzW"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "12NjITjMxBf73EZ6elO0qs"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 93
},
{
"__id__": 95
}
],
"_prefab": {
"__id__": 95
"__id__": 97
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -471,8 +474,8 @@
"defaultAnimation": "",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 1,
"_cacheMode": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
@@ -1477,6 +1480,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "75h6nDiAhLK53oy4b5wKa+"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 96
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "cea33E85VHQLdfC2KvJ055"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 96
},
{
"__id__": 98
}
],
"_prefab": {
"__id__": 98
"__id__": 100
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1509,6 +1512,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "ad9W5mMCpGHqWU8XmYTy4r"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 99
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "24NMIe4OBIpbwx1nh6NYWa"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -65,10 +65,13 @@
},
{
"__id__": 96
},
{
"__id__": 98
}
],
"_prefab": {
"__id__": 98
"__id__": 100
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -1509,6 +1512,24 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "1c8zAaGUlFDJXhUtZHzvGv"
},
{
"__type__": "6f882ofb1pO9Z6gIaAZLCeF",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 99
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "beDt1ByHNB564mmZr4kD3H"
},
{
"__type__": "cc.PrefabInfo",
"root": {

View File

@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>Layer01.png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{1775,250}</string>
<key>spriteSourceSize</key>
<string>{1775,250}</string>
<key>textureRect</key>
<string>{{1,179},{1775,250}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Layer02.png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{1125,387}</string>
<key>spriteSourceSize</key>
<string>{1125,387}</string>
<key>textureRect</key>
<string>{{1,431},{1125,387}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Layer03.png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{1775,176}</string>
<key>spriteSourceSize</key>
<string>{1775,176}</string>
<key>textureRect</key>
<string>{{1,1},{1775,176}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Layer04.png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{1775,543}</string>
<key>spriteSourceSize</key>
<string>{1775,543}</string>
<key>textureRect</key>
<string>{{1,820},{1775,543}}</string>
<key>textureRotated</key>
<false/>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>3</integer>
<key>pixelFormat</key>
<string>RGBA8888</string>
<key>premultiplyAlpha</key>
<false/>
<key>realTextureFileName</key>
<string>backgroud.png</string>
<key>size</key>
<string>{1777,1364}</string>
<key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:b0c4cf088e3f86610f129d430d0b767b:b980e467236c0a489aebd5fbb53cdcf3:2971cbda4d170f8c8fc849f191b96de4$</string>
<key>textureFileName</key>
<string>backgroud.png</string>
</dict>
</dict>
</plist>

View File

@@ -0,0 +1,201 @@
{
"ver": "1.0.8",
"importer": "sprite-atlas",
"imported": true,
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad",
"files": [
".json"
],
"subMetas": {
"8b0c8": {
"importer": "sprite-frame",
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@8b0c8",
"displayName": "",
"id": "8b0c8",
"name": "Layer01",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 179,
"width": 1775,
"height": 250,
"rawWidth": 1775,
"rawHeight": 250,
"borderTop": 232,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"d5384": {
"importer": "sprite-frame",
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@d5384",
"displayName": "",
"id": "d5384",
"name": "Layer02",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 431,
"width": 1125,
"height": 387,
"rawWidth": 1125,
"rawHeight": 387,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"bbc85": {
"importer": "sprite-frame",
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@bbc85",
"displayName": "",
"id": "bbc85",
"name": "Layer03",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 1775,
"height": 176,
"rawWidth": 1775,
"rawHeight": 176,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"61a94": {
"importer": "sprite-frame",
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad@61a94",
"displayName": "",
"id": "61a94",
"name": "Layer04",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 820,
"width": 1775,
"height": 543,
"rawWidth": 1775,
"rawHeight": 543,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
"atlasUuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"atlasTextureName": "backgroud.png",
"format": 3,
"uuid": "ccb2508f-5c87-49ec-bac1-5d8f2c9686ad",
"textureUuid": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -2,7 +2,7 @@
"ver": "1.0.26",
"importer": "image",
"imported": true,
"uuid": "1590e471-41f5-48e9-a3ad-ad8ae02edbed",
"uuid": "e9988462-8836-48d1-bb42-4cff07b7067e",
"files": [
".json",
".png"
@@ -10,8 +10,8 @@
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "1590e471-41f5-48e9-a3ad-ad8ae02edbed@6c48a",
"displayName": "maps",
"uuid": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a",
"displayName": "backgroud",
"id": "6c48a",
"name": "texture",
"userData": {
@@ -22,7 +22,7 @@
"mipfilter": "none",
"anisotropy": 0,
"isUuid": true,
"imageUuidOrDatabaseUri": "1590e471-41f5-48e9-a3ad-ad8ae02edbed",
"imageUuidOrDatabaseUri": "e9988462-8836-48d1-bb42-4cff07b7067e",
"visible": false
},
"ver": "1.0.22",
@@ -37,6 +37,6 @@
"hasAlpha": true,
"type": "texture",
"fixAlphaTransparencyArtifacts": false,
"redirect": "1590e471-41f5-48e9-a3ad-ad8ae02edbed@6c48a"
"redirect": "e9988462-8836-48d1-bb42-4cff07b7067e@6c48a"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,371 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>11.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{199,150}</string>
<key>spriteSourceSize</key>
<string>{199,150}</string>
<key>textureRect</key>
<string>{{570,259},{199,150}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>16.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{199,160}</string>
<key>spriteSourceSize</key>
<string>{199,160}</string>
<key>textureRect</key>
<string>{{408,259},{199,160}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Grass 01.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{1,-2}</string>
<key>spriteSize</key>
<string>{124,48}</string>
<key>spriteSourceSize</key>
<string>{128,64}</string>
<key>textureRect</key>
<string>{{1168,259},{124,48}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Grass 02.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,2}</string>
<key>spriteSize</key>
<string>{62,34}</string>
<key>spriteSourceSize</key>
<string>{64,64}</string>
<key>textureRect</key>
<string>{{722,447},{62,34}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Environment - Grass 03.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{-1,0}</string>
<key>spriteSize</key>
<string>{58,34}</string>
<key>spriteSourceSize</key>
<string>{64,64}</string>
<key>textureRect</key>
<string>{{786,447},{58,34}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Environment - Ground 01.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{234,98}</string>
<key>spriteSourceSize</key>
<string>{256,128}</string>
<key>textureRect</key>
<string>{{954,385},{234,98}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Environment - Ground 02.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,2}</string>
<key>spriteSize</key>
<string>{124,98}</string>
<key>spriteSourceSize</key>
<string>{128,128}</string>
<key>textureRect</key>
<string>{{1068,259},{124,98}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Ground 03.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,1}</string>
<key>spriteSize</key>
<string>{120,106}</string>
<key>spriteSourceSize</key>
<string>{128,128}</string>
<key>textureRect</key>
<string>{{1218,259},{120,106}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Log.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{-1,1}</string>
<key>spriteSize</key>
<string>{112,124}</string>
<key>spriteSourceSize</key>
<string>{128,128}</string>
<key>textureRect</key>
<string>{{954,259},{112,124}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Environment - Rock 01.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{98,116}</string>
<key>spriteSourceSize</key>
<string>{128,128}</string>
<key>textureRect</key>
<string>{{1190,385},{98,116}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Rock 02.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{118,108}</string>
<key>spriteSourceSize</key>
<string>{128,128}</string>
<key>textureRect</key>
<string>{{1326,259},{118,108}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Rock 03.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{-2,-1}</string>
<key>spriteSize</key>
<string>{110,58}</string>
<key>spriteSourceSize</key>
<string>{128,64}</string>
<key>textureRect</key>
<string>{{1436,259},{110,58}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Environment - Rock 04.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{-1,1}</string>
<key>spriteSize</key>
<string>{54,54}</string>
<key>spriteSourceSize</key>
<string>{64,64}</string>
<key>textureRect</key>
<string>{{1356,379},{54,54}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Environment - Rock 05.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{46,60}</string>
<key>spriteSourceSize</key>
<string>{64,64}</string>
<key>textureRect</key>
<string>{{1308,381},{46,60}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Environment - Tree 01.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{226,247}</string>
<key>spriteSourceSize</key>
<string>{256,257}</string>
<key>textureRect</key>
<string>{{1,259},{226,247}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Tree 02.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,-6}</string>
<key>spriteSize</key>
<string>{186,230}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{722,259},{186,230}}</string>
<key>textureRotated</key>
<true/>
</dict>
<key>Top-Down Forest Tileset_Environment - Tree 03.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,-6}</string>
<key>spriteSize</key>
<string>{156,226}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{250,259},{156,226}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Ground 08.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{256,256}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{1,1},{256,256}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Ground 14.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{256,256}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{259,1},{256,256}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Ground 38.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{256,256}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{517,1},{256,256}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Ground 41.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{256,256}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{775,1},{256,256}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Ground 43.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{256,256}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{1033,1},{256,256}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Top-Down Forest Tileset_Ground 52.png</key>
<dict>
<key>aliases</key>
<array/>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{256,256}</string>
<key>spriteSourceSize</key>
<string>{256,256}</string>
<key>textureRect</key>
<string>{{1291,1},{256,256}}</string>
<key>textureRotated</key>
<false/>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>3</integer>
<key>pixelFormat</key>
<string>RGBA8888</string>
<key>premultiplyAlpha</key>
<false/>
<key>realTextureFileName</key>
<string>maps.png</string>
<key>size</key>
<string>{1548,486}</string>
<key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:59884167339d2d3112771f03dcc9a8b3:67e02b53e65b27e097f6d52239b97725:cff09cdbcaccc8bde4d9623bee080541$</string>
<key>textureFileName</key>
<string>maps.png</string>
</dict>
</dict>
</plist>

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -193,7 +193,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 22.61767578125,
"width": 29.8076171875,
"height": 39.8
},
"_anchorPoint": {
@@ -238,17 +238,14 @@
"_lineHeight": 30,
"_overflow": 0,
"_enableWrapText": true,
"_font": {
"__uuid__": "a8f2a4a3-911f-43d3-9174-f2176554d7d4",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_font": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 1,
"_cacheMode": 0,
"_enableOutline": true,
"_outlineColor": {
"__type__": "cc.Color",
@@ -447,7 +444,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 22.61767578125,
"width": 29.8076171875,
"height": 39.8
},
"_anchorPoint": {
@@ -492,17 +489,14 @@
"_lineHeight": 30,
"_overflow": 0,
"_enableWrapText": true,
"_font": {
"__uuid__": "a8f2a4a3-911f-43d3-9174-f2176554d7d4",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_font": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 1,
"_cacheMode": 0,
"_enableOutline": true,
"_outlineColor": {
"__type__": "cc.Color",
@@ -701,7 +695,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 22.745271853397803,
"width": 28.497224978397803,
"height": 27.2
},
"_anchorPoint": {
@@ -746,11 +740,8 @@
"_lineHeight": 20,
"_overflow": 0,
"_enableWrapText": true,
"_font": {
"__uuid__": "a8f2a4a3-911f-43d3-9174-f2176554d7d4",
"__expectedType__": "cc.TTFFont"
},
"_isSystemFontUsed": false,
"_font": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": true,
"_isBold": false,

File diff suppressed because it is too large Load Diff

View File

@@ -22,6 +22,7 @@ export enum GameEvent {
MissionLoss = "MissionLoss",
MissionWin = "MissionWin",
MissionStart = "MissionStart",
FightReady = "FightReady",
FightStart = "FightStart",
FightPause = "FightPause",
FightResume = "FightResume",

View File

@@ -43,10 +43,9 @@ export const HeroPos={
2:{pos:v3(-300,130,0)},
}
export const MonSet = {
0:{pos:v3(320,220,0)},
1:{pos:v3(320,150,0)},
2:{pos:v3(320,80,0)},
3:{pos:v3(320,10,0)},
0:{pos:v3(320,0,0)},
1:{pos:v3(320,10,0)},
2:{pos:v3(320,-10,0)},
}
export const HeroInfo = {
5001:{uuid:5001,name:"神圣守护",path:"k2", lv:3,kind:1,type:0,hp:5,ap:10,ap_u:0,ap_ur:0,hp_up:0,dis:700,a_cd:1,speed:100,skills:[6005],tals:"说明"},

View File

@@ -1,5 +1,7 @@
import { oops } from "db://oops-framework/core/Oops";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { HeroViewComp } from "./HeroViewComp";
import { GameEvent } from "../common/config/GameEvent";
/**
* 角色属性数据
@@ -9,6 +11,9 @@ export class HartModelComp extends ecs.Comp {
onLoad(){
console.log("HartModel加载",this)
}
start(){
oops.message.dispatchEvent(GameEvent.FightReady,this)
}
reset() {
}

View File

@@ -7,8 +7,8 @@ import { HeroViewComp } from "./HeroViewComp";
import { BoxSet } from "../common/config/BoxSet";
import { HeroInfo } from "../common/config/heroSet";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
import { HartModelComp } from "./HartModelComp";
import { SkillConComp } from "./SkillConComp";
/** 角色实体 */
@ecs.register(`Hero`)
@@ -20,12 +20,13 @@ export class Hero extends ecs.Entity {
protected init() {
this.addComponents<ecs.Comp>(
BattleMoveComp,
HeroModelComp
HeroModelComp,
);
}
destroy(): void {
this.remove(HeroViewComp);
this.remove(HeroModelComp);
super.destroy();
}
hart_load() {
@@ -36,7 +37,7 @@ export class Hero extends ecs.Entity {
var node = instantiate(prefab);
var scene = smc.map.MapView.scene;
node.parent = scene.entityLayer!.node!
let pos=v3(-277,150,0)
let pos=v3(-277,0,0)
node.setPosition(pos)
var hv = node.getComponent(HeroViewComp)!;
hv.scale = 1;
@@ -97,31 +98,5 @@ export class Hero extends ecs.Entity {
}
// 添加技能
public addSkill(skillId: number) {
const comp = this.get(HeroSkillsComp);
if (comp.skills.indexOf(skillId) === -1) {
comp.skills.push(skillId);
comp.cooldowns.set(skillId, 0);
comp.counters.set(skillId, 0);
console.log(`技能${skillId}初始化完成`,
'当前cooldowns:', comp.cooldowns,
'当前counters:', comp.counters);
}
}
// 移除技能
public removeSkill(skillId: number) {
const comp = this.get(HeroSkillsComp);
comp.skills = comp.skills.filter(id => id !== skillId);
}
public levelUp() {
// ...升级逻辑...
const comp = this.get(HeroSkillsComp);
comp.skills.forEach(skillId => {
comp.resetCooldown(skillId);
});
}
}

View File

@@ -10,16 +10,16 @@ export default class HeroAnmComp extends Component{
private _hasStop = true;
onLoad () {
var spine = this.spine = this.getComponent('sp.Skeleton') as sp.Skeleton;
// this._setMix('Walking', 'Idle');
// this._setMix('Walking', 'Attacking');
// this._setMix('Walking', 'Taunt');
// this._setMix('Idle', 'Attacking');
// this._setMix('Idle', 'Taunt');
// this._setMix('Idle', 'Walking');
// this._setMix('Attacking', 'Idle');
// this._setMix('Attacking', 'Walking');
// this._setMix('Taunt', 'Walking');
// this._setMix('Taunt', 'Idle');
this._setMix('Walking', 'Idle');
this._setMix('Walking', 'Attacking');
this._setMix('Walking', 'Taunt');
this._setMix('Idle', 'Attacking');
this._setMix('Idle', 'Taunt');
this._setMix('Idle', 'Walking');
this._setMix('Attacking', 'Idle');
this._setMix('Attacking', 'Walking');
this._setMix('Taunt', 'Walking');
this._setMix('Taunt', 'Idle');
spine.setCompleteListener((trackEntry) => {
var animationName = trackEntry.animation ? trackEntry.animation.name : "";
@@ -92,8 +92,8 @@ export default class HeroAnmComp extends Component{
this.spine?.setAnimation(0, 'Idle', true);
}
// _setMix (anim1: string, anim2: string) {
// this.spine?.setMix(anim1, anim2, this.mixTime);
// this.spine?.setMix(anim2, anim1, this.mixTime);
// }
_setMix (anim1: string, anim2: string) {
this.spine?.setMix(anim1, anim2, this.mixTime);
this.spine?.setMix(anim2, anim1, this.mixTime);
}
}

View File

@@ -11,7 +11,6 @@ import { RandomManager } from "../../../../extensions/oops-plugin-framework/asse
import { HeroSet } from "../common/config/heroSet";
import { BuffComp } from "./BuffComp";
import { getMonsterDrops, MonsterType } from "../common/config/RewardSet";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
const { ccclass, property } = _decorator;
@@ -332,11 +331,7 @@ export class HeroViewComp extends CCComp {
break
}
}
public revive() {
this.hp = this.hp_max;
const skills = this.ent.get(HeroSkillsComp);
skills.resetAllCooldowns();
}
to_update(){
this.ap=this.ap*this.lv

View File

@@ -7,6 +7,7 @@ import { BoxSet } from "../common/config/BoxSet";
import { HeroInfo } from "../common/config/heroSet";
import { MonModelComp } from "./MonModelComp";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { SkillConComp } from "./SkillConComp";
/** 角色实体 */
@ecs.register(`Monster`)
export class Monster extends ecs.Entity {
@@ -17,12 +18,13 @@ export class Monster extends ecs.Entity {
protected init() {
this.addComponents<ecs.Comp>(
BattleMoveComp,
MonModelComp
MonModelComp,
);
}
destroy(): void {
this.remove(HeroViewComp);
this.remove(MonModelComp);
super.destroy();
}
@@ -67,8 +69,6 @@ export class Monster extends ecs.Entity {
hv.cd = hero.a_cd
hv.atk_skill=hero.skills[0]
this.add(hv);
}
}

View File

@@ -0,0 +1,129 @@
import { _decorator, Component, Node, Vec3 } from 'cc';
import { HeroViewComp } from './HeroViewComp';
import { SkillSet, TargetGroup, TargetType } from '../common/config/SkillSet';
import { Skill } from '../skills/Skill';
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
import { oops } from 'db://oops-framework/core/Oops';
import { GameEvent } from '../common/config/GameEvent';
import { BoxSet } from '../common/config/BoxSet';
import { smc } from '../common/SingletonModuleComp';
import { CCComp } from 'db://oops-framework/module/common/CCComp';
const { ccclass, property } = _decorator;
@ccclass('SkillCon')
@ecs.register('SkillCon')
export class SkillConComp extends CCComp {
HeroView:any=null;
HeroEntity:any=null;
private _timers: { [key: string]: number } = {};
private _damageQueue: Array<{ timer: number; callback: () => void }> = [];
init(): void {
oops.message.on(GameEvent.FightEnd, this.clear_timer, this);
}
start() {
// console.log("SkillConComp start")
this.HeroView=this.node.getComponent(HeroViewComp)
this.HeroEntity=this.HeroView.ent
}
update(dt: number) {
if(!smc.mission.play||smc.mission.pause) return
if (this.HeroView.is_atking &&this.HeroView.at > this.HeroView.cd) {
const config = SkillSet[this.HeroView.atk_skill];
if (!config) return;
this.castSkill(this.HeroView, this.HeroView.atk_skill, config);
this.HeroView.at = 0;
}
}
/** 施放技能 */
private castSkill(view: HeroViewComp, skillId: number, config: typeof SkillSet[keyof typeof SkillSet]) {
// console.log(view.uuid+"=>"+view.hero_name+"施放技能:"+config.uuid);
if (config.TargetGroup === TargetGroup.Enemy) {
view.playSkillEffect(config.uuid);
this.doSkill(view,config);
}
if (config.TargetGroup === TargetGroup.Ally) {
const targets = this.selectAllyTargets(view, config);
if (targets.length === 0) return;
}
if (config.TargetGroup === TargetGroup.Self) {
}
}
private doSkill(view: HeroViewComp, config: typeof SkillSet[keyof typeof SkillSet]) {
const skillEntity = ecs.getEntity<Skill>(Skill);
const targets = this.selectEnemyTargets(view, config);
if (targets.length === 0) return;
skillEntity.load(
new Vec3(view.node.position.x, view.node.position.y+BoxSet.ATK_Y, 0), // 起始位置
view.box_group, // 阵营
view.node.parent, // 父节点
config.uuid, // 技能ID
new Vec3(targets[0]?.get(HeroViewComp).node.position.x, targets[0]?.get(HeroViewComp).node.position.y, 0), // 目标位置
view
);
// console.log("技能:"+config.uuid+"=>"+targets[0]?.get(HeroViewComp).hero_name);
}
private selectEnemyTargets(View: HeroViewComp, config: typeof SkillSet[keyof typeof SkillSet]): ecs.Entity[] {
const team = View.fac;
const isEnemyTeam = team === 0 ? 1 : 0;
const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac !== team);
return this.filterFrontRow(candidates, isEnemyTeam);
}
/** 筛选最前排单位 */
private filterFrontRow(entities: ecs.Entity[], isEnemyTeam: number): ecs.Entity[] {
// 敌方最前排是x坐标最大的我方最前排是x坐标最小的
const keyPos = isEnemyTeam ?
Math.min(...entities.map(e => e.get(HeroViewComp).node.position.x)) :
Math.max(...entities.map(e => e.get(HeroViewComp).node.position.x));
return entities.filter(e =>
Math.abs(e.get(HeroViewComp).node.position.x - keyPos) < 10
);
}
private selectAllyTargets(View: HeroViewComp, config: typeof SkillSet[keyof typeof SkillSet]): ecs.Entity[] {
const team = View.fac;
const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac === team);
// 第二阶段:位置/血量等精细筛选
switch(config.TargetType) {
case TargetType.Melee:
return candidates.filter(e => e.get(HeroViewComp).type === 0);
case TargetType.Ranged:
return candidates.filter(e => e.get(HeroViewComp).type === 1);
case TargetType.SupportClass:
return candidates.filter(e => e.get(HeroViewComp).type === 2);
case TargetType.Random:
return this.pickRandomTarget(candidates, config.count || 1);
default:
return candidates;
}
}
/** 随机选择目标 */
private pickRandomTarget(entities: ecs.Entity[], count: number): ecs.Entity[] {
const shuffled = [...entities].sort(() => 0.5 - Math.random());
return shuffled.slice(0, count);
}
public clear_timer() {
// console.log("clear_timer");
Object.values(this._timers).forEach(clearTimeout);
}
reset() {
this.clear_timer();
}
onDestroy() {
// console.log("SkillConComp onDestroy")
Object.values(this._timers).forEach(clearTimeout);
}
}

View File

@@ -2,7 +2,7 @@
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "42bf4f68-80fe-4b71-88d1-89cbaea575cb",
"uuid": "6f882a1f-6f5a-4ef5-9ea0-21a0192c2785",
"files": [],
"subMetas": {},
"userData": {}

View File

@@ -18,10 +18,25 @@ export class CardComp extends CCComp {
c_uuid:number=0;
c_type:number=0;
is_used:boolean=false;
onLoad(){
this.on(GameEvent.CardRefresh,this.onCardRefresh,this)
this.on(GameEvent.MissionStart,this.mission_start,this)
this.on(GameEvent.MissionEnd,this.mission_end,this)
this.on(GameEvent.CardRefresh,this.onHandler,this)
this.on(GameEvent.MissionStart,this.onHandler,this)
this.on(GameEvent.MissionEnd,this.onHandler,this)
}
/** 全局消息逻辑处理 */
private onHandler(event: string, args: any) {
switch (event) {
case GameEvent.CardRefresh:
this.onCardRefresh(event,args)
break;
case GameEvent.MissionStart:
this.mission_start(event,args)
break;
case GameEvent.MissionEnd:
this.mission_end(event,args)
break;
}
}
start() {
this.init_card()
@@ -31,10 +46,10 @@ export class CardComp extends CCComp {
this.node.getChildByName("Button").active=false
this.node.getChildByName("show").active=false
}
mission_start(){
mission_start(event: string, args: any){
}
mission_end(){
mission_end(event: string, args: any){
}
onCardRefresh(event: string, args: any){

View File

@@ -0,0 +1,30 @@
import { _decorator } 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 { GameEvent } from "../common/config/GameEvent";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@ccclass('CardsCompComp')
@ecs.register('CardsComp', false)
export class CardsCompComp extends CCComp {
/** 视图层逻辑代码分离演示 */
start() {
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
this.on(GameEvent.FightReady, this.onHandler, this);
}
/** 全局消息逻辑处理 */
private onHandler(event: string, args: any) {
switch (event) {
case GameEvent.FightReady:
break;
}
}
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
reset() {
this.node.destroy();
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "62b3677d-829c-4ccf-917c-8458242e255f",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -8,7 +8,6 @@ import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/
import { VictoryComp } from "./VictoryComp";
import { CardControllerComp } from "./CardController";
import { GameEvent } from "../common/config/GameEvent";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
import { HeroViewComp } from "../hero/HeroViewComp";
import { Hero } from "../hero/Hero";
import { HartModelComp } from "../hero/HartModelComp";
@@ -108,7 +107,6 @@ export class MissionComp extends CCComp {
}
private cleanComponents() {
ecs.query(ecs.allOf(HeroSkillsComp)).forEach(entity => {entity.remove(HeroSkillsComp);entity.destroy()});
ecs.query(ecs.allOf(HeroViewComp)).forEach(entity => {entity.remove(HeroViewComp);entity.destroy()});
}

View File

@@ -22,7 +22,7 @@ const { ccclass, property } = _decorator;
export class MissionHeroCompComp extends CCComp {
timer:Timer=new Timer(2)
start_pos:any={
0:{pos:v3(-50,135,0),has:false},
0:{pos:v3(-50,0,0),has:false},
1:{pos:v3(-170,205,0),has:false},
2:{pos:v3(-170,65,0),has:false},
}

View File

@@ -19,7 +19,7 @@ export class MissionMonCompComp extends CCComp {
// 添加刷怪队列
private monsterQueue: Array<{uuid: number, position: number, isBoss: boolean}> = [];
private isSpawning: boolean = false;// 是否正在生成怪物
private spawnInterval: number = 0.5; // 每个怪物生成间隔时间
private spawnInterval: number = 1; // 每个怪物生成间隔时间
private spawnTimer: number = 0; // 生成计时器
/** 视图层逻辑代码分离演示 */
@@ -49,7 +49,7 @@ export class MissionMonCompComp extends CCComp {
mon_refresh(){
let positions = [0, 1, 2, 3];
let positions = [0, 1, 2];
positions.forEach(pos => {
let x = RandomManager.instance.getRandomInt(0, Missions[0].length, 1);
this.addToSpawnQueue(Missions[0][x], pos, false);

View File

@@ -1,139 +1,139 @@
import { Node, UI, UITransform, Vec3 } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { HeroViewComp } from "../hero/HeroViewComp";
import { SkillSet, TargetGroup, TargetType } from "../common/config/SkillSet";
import { CdType } from "../common/config/SkillSet";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { Skill } from "../skills/Skill";
import { SkillCom } from "../skills/SkillCom";
import { AnimType } from "../common/config/SkillSet";
import { BoxSet } from "../common/config/BoxSet";
// import { Node, UI, UITransform, Vec3 } from "cc";
// import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
// import { HeroViewComp } from "../hero/HeroViewComp";
// import { SkillSet, TargetGroup, TargetType } from "../common/config/SkillSet";
// import { CdType } from "../common/config/SkillSet";
// import { oops } from "db://oops-framework/core/Oops";
// import { GameEvent } from "../common/config/GameEvent";
// import { Skill } from "../skills/Skill";
// import { SkillCom } from "../skills/SkillCom";
// import { AnimType } from "../common/config/SkillSet";
// import { BoxSet } from "../common/config/BoxSet";
/** 技能系统 */
@ecs.register('HeroSkillSystem')
export class HeroSkillSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate {
// export class HeroSkillSystem implements ecs.ISystemUpdate {
// private updateInterval: number = 0.1; // 每0.1秒更新一次
// private accumulator: number = 0;
private _timers: { [key: string]: number } = {};
private _damageQueue: Array<{ timer: number; callback: () => void }> = [];
init(): void {
oops.message.on(GameEvent.FightEnd, this.clear_timer, this);
}
filter(): ecs.IMatcher {
return ecs.allOf(HeroViewComp);
}
update(e: ecs.Entity) {
//return false
// 处理伤害队列
const view = e.get(HeroViewComp);
// 只在攻击状态触发技能
if (view.is_atking &&view.at > view.cd) {
const config = SkillSet[view.atk_skill];
if (!config) return;
this.castSkill(e, view.atk_skill, config);
view.at = 0;
}
// /** 技能系统 */
// @ecs.register('HeroSkillSystem')
// export class HeroSkillSystem extends ecs.ComblockSystem {
// // export class HeroSkillSystem implements ecs.ISystemUpdate {
// // private updateInterval: number = 0.1; // 每0.1秒更新一次
// // private accumulator: number = 0;
// private _timers: { [key: string]: number } = {};
// private _damageQueue: Array<{ timer: number; callback: () => void }> = [];
// init(): void {
// oops.message.on(GameEvent.FightEnd, this.clear_timer, this);
// }
// filter(): ecs.IMatcher {
// return ecs.allOf(HeroViewComp);
// }
// update(e: ecs.Entity) {
// //return false
// // 处理伤害队列
// const view = e.get(HeroViewComp);
// // 只在攻击状态触发技能
// if (view.is_atking &&view.at > view.cd) {
// const config = SkillSet[view.atk_skill];
// if (!config) return;
// this.castSkill(e, view.atk_skill, config);
// view.at = 0;
// }
}
// }
/** 施放技能 */
private castSkill(caster: ecs.Entity, skillId: number, config: typeof SkillSet[keyof typeof SkillSet]) {
const view = caster.get(HeroViewComp);
console.log(view.uuid+"=>"+view.hero_name+"施放技能:"+config.uuid);
if (config.TargetGroup === TargetGroup.Enemy) {
caster.get(HeroViewComp).playSkillEffect(config.uuid);
this.doSkill(caster,config);
}
// /** 施放技能 */
// private castSkill(caster: ecs.Entity, skillId: number, config: typeof SkillSet[keyof typeof SkillSet]) {
// const view = caster.get(HeroViewComp);
// console.log(view.uuid+"=>"+view.hero_name+"施放技能:"+config.uuid);
// if (config.TargetGroup === TargetGroup.Enemy) {
// caster.get(HeroViewComp).playSkillEffect(config.uuid);
// this.doSkill(caster,config);
// }
if (config.TargetGroup === TargetGroup.Ally) {
const targets = this.selectAllyTargets(caster, config);
if (targets.length === 0) return;
// if (config.TargetGroup === TargetGroup.Ally) {
// const targets = this.selectAllyTargets(caster, config);
// if (targets.length === 0) return;
}
if (config.TargetGroup === TargetGroup.Self) {
// }
// if (config.TargetGroup === TargetGroup.Self) {
}
// }
}
private doSkill(caster: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]) {
const view = caster.get(HeroViewComp);
const skillEntity = ecs.getEntity<Skill>(Skill);
const targets = this.selectEnemyTargets(caster, config);
if (targets.length === 0) return;
skillEntity.load(
new Vec3(view.node.position.x, view.node.position.y+BoxSet.ATK_Y, 0), // 起始位置
view.box_group, // 阵营
view.node.parent, // 父节点
config.uuid, // 技能ID
new Vec3(targets[0]?.get(HeroViewComp).node.position.x, targets[0]?.get(HeroViewComp).node.position.y, 0), // 目标位置
view
);
console.log("技能:"+config.uuid+"=>"+targets[0]?.get(HeroViewComp).hero_name);
}
// }
// private doSkill(caster: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]) {
// const view = caster.get(HeroViewComp);
// const skillEntity = ecs.getEntity<Skill>(Skill);
// const targets = this.selectEnemyTargets(caster, config);
// if (targets.length === 0) return;
// skillEntity.load(
// new Vec3(view.node.position.x, view.node.position.y+BoxSet.ATK_Y, 0), // 起始位置
// view.box_group, // 阵营
// view.node.parent, // 父节点
// config.uuid, // 技能ID
// new Vec3(targets[0]?.get(HeroViewComp).node.position.x, targets[0]?.get(HeroViewComp).node.position.y, 0), // 目标位置
// view
// );
// console.log("技能:"+config.uuid+"=>"+targets[0]?.get(HeroViewComp).hero_name);
// }
private selectEnemyTargets(caster: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]): ecs.Entity[] {
const casterView = caster.get(HeroViewComp);
const team = casterView.fac;
const isEnemyTeam = team === 0 ? 1 : 0;
const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac !== team);
return this.filterFrontRow(candidates, isEnemyTeam);
}
private selectAllyTargets(caster: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]): ecs.Entity[] {
const casterView = caster.get(HeroViewComp);
const team = casterView.fac;
const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac === team);
// 第二阶段:位置/血量等精细筛选
switch(config.TargetType) {
case TargetType.Melee:
return candidates.filter(e => e.get(HeroViewComp).type === 0);
case TargetType.Ranged:
return candidates.filter(e => e.get(HeroViewComp).type === 1);
case TargetType.SupportClass:
return candidates.filter(e => e.get(HeroViewComp).type === 2);
case TargetType.Random:
return this.pickRandomTarget(candidates, config.count || 1);
default:
return candidates;
}
}
// private selectEnemyTargets(caster: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]): ecs.Entity[] {
// const casterView = caster.get(HeroViewComp);
// const team = casterView.fac;
// const isEnemyTeam = team === 0 ? 1 : 0;
// const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac !== team);
// return this.filterFrontRow(candidates, isEnemyTeam);
// }
// private selectAllyTargets(caster: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]): ecs.Entity[] {
// const casterView = caster.get(HeroViewComp);
// const team = casterView.fac;
// const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac === team);
// // 第二阶段:位置/血量等精细筛选
// switch(config.TargetType) {
// case TargetType.Melee:
// return candidates.filter(e => e.get(HeroViewComp).type === 0);
// case TargetType.Ranged:
// return candidates.filter(e => e.get(HeroViewComp).type === 1);
// case TargetType.SupportClass:
// return candidates.filter(e => e.get(HeroViewComp).type === 2);
// case TargetType.Random:
// return this.pickRandomTarget(candidates, config.count || 1);
// default:
// return candidates;
// }
// }
/** 筛选最前排单位 */
private filterFrontRow(entities: ecs.Entity[], isEnemyTeam: number): ecs.Entity[] {
// 敌方最前排是x坐标最大的我方最前排是x坐标最小的
const keyPos = isEnemyTeam ?
Math.min(...entities.map(e => e.get(HeroViewComp).node.position.x)) :
Math.max(...entities.map(e => e.get(HeroViewComp).node.position.x));
// /** 筛选最前排单位 */
// private filterFrontRow(entities: ecs.Entity[], isEnemyTeam: number): ecs.Entity[] {
// // 敌方最前排是x坐标最大的我方最前排是x坐标最小的
// const keyPos = isEnemyTeam ?
// Math.min(...entities.map(e => e.get(HeroViewComp).node.position.x)) :
// Math.max(...entities.map(e => e.get(HeroViewComp).node.position.x));
return entities.filter(e =>
Math.abs(e.get(HeroViewComp).node.position.x - keyPos) < 10
);
}
// return entities.filter(e =>
// Math.abs(e.get(HeroViewComp).node.position.x - keyPos) < 10
// );
// }
/** 随机选择目标 */
private pickRandomTarget(entities: ecs.Entity[], count: number): ecs.Entity[] {
const shuffled = [...entities].sort(() => 0.5 - Math.random());
return shuffled.slice(0, count);
}
// /** 随机选择目标 */
// private pickRandomTarget(entities: ecs.Entity[], count: number): ecs.Entity[] {
// const shuffled = [...entities].sort(() => 0.5 - Math.random());
// return shuffled.slice(0, count);
// }
public clear_timer() {
console.log("clear_timer");
Object.values(this._timers).forEach(clearTimeout);
}
onDestroy() {
Object.values(this._timers).forEach(clearTimeout);
}
// public clear_timer() {
// console.log("clear_timer");
// Object.values(this._timers).forEach(clearTimeout);
// }
// onDestroy() {
// Object.values(this._timers).forEach(clearTimeout);
// }
/** 应用负面状态 */
private applyDebuff(target: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]) {
// 实现debuff逻辑...
}
// /** 应用负面状态 */
// private applyDebuff(target: ecs.Entity, config: typeof SkillSet[keyof typeof SkillSet]) {
// // 实现debuff逻辑...
// }
}
// }

View File

@@ -1,31 +0,0 @@
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
@ecs.register('HeroSkills')
export class HeroSkillsComp extends ecs.Comp {
/** 当前拥有的技能ID列表 */
skills: number[] = [];
/** 技能冷却计时器 [技能ID:剩余冷却时间] */
cooldowns: Map<number, number> = new Map();
/** 技能触发计数器 [技能ID:触发次数] */
counters: Map<number, number> = new Map();
reset() {
this.skills = [];
this.cooldowns.clear();
this.counters.clear();
}
/** 重置指定技能冷却 */
resetCooldown(skillId: number) {
if (this.cooldowns.has(skillId)) {
this.cooldowns.set(skillId, 0);
}
}
/** 重置所有技能冷却 */
resetAllCooldowns() {
this.cooldowns.forEach((value, key) => {
this.cooldowns.set(key, 0);
});
}
}

View File

@@ -52,7 +52,7 @@ export class SkillCom extends CCComp {
oops.message.on(GameEvent.MissionEnd, this.doDestroy, this);
this.node.active = true;
let collider = this.getComponent(Collider2D);
console.log(this.group +"技能 collider ",collider);
// console.log(this.group +"技能 collider ",collider);
collider.group = this.group;
if (collider) {
collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
@@ -97,7 +97,7 @@ export class SkillCom extends CCComp {
this.startMovement();
}
onBeginContact (seCol: Collider2D, oCol: Collider2D) {
console.log(this.scale+"碰撞开始 ",seCol,oCol);
// console.log(this.scale+"碰撞开始 ",seCol,oCol);
let target = oCol.getComponent(HeroViewComp)
let caster = seCol.getComponent(HeroViewComp)
if(oCol.group!=this.group){
@@ -149,7 +149,7 @@ export class SkillCom extends CCComp {
let e_pos = v3(this.targetPos.x,this.targetPos.y)
let time =Math.abs(Math.abs(this.targetPos.x-this.startPos.x)/this.speed)
console.log("开始贝塞尔运动=>time:"+time,"s_pos:"+s_pos,"c_pos:"+c_pos,"e_pos:"+e_pos)
// console.log("开始贝塞尔运动=>time:"+time,"s_pos:"+s_pos,"c_pos:"+c_pos,"e_pos:"+e_pos)
SkillCom.bezierTo(this.node,time,s_pos,c_pos,e_pos,{
onComplete: (target?: object) => {
this.is_destroy=true
@@ -171,10 +171,10 @@ export class SkillCom extends CCComp {
}
private startFixedStartMove() {
console.log("开始固定起点运动")
// console.log("开始固定起点运动")
this.node.position = this.startPos;
if (this.endType === endType.timeEnd) {
console.log("开始固定起点运动=>time:"+this.inTime)
// console.log("开始固定起点运动=>time:"+this.inTime)
tween(this.node)
.delay(this.inTime)
.call(() => this.is_destroy = true)
@@ -187,10 +187,10 @@ export class SkillCom extends CCComp {
}
private startFixedEndMove() {
console.log("开始固定终点运动")
// console.log("开始固定终点运动")
this.node.position = this.targetPos;
if (this.endType === endType.timeEnd) {
console.log("开始固定终点运动=>time:"+this.inTime)
// console.log("开始固定终点运动=>time:"+this.inTime)
tween(this.node)
.delay(this.inTime)
.call(() => this.is_destroy = true)