diff --git a/assets/resources/game/gui/get.prefab b/assets/resources/game/gui/get.prefab deleted file mode 100644 index 2a45ac1f..00000000 --- a/assets/resources/game/gui/get.prefab +++ /dev/null @@ -1,1980 +0,0 @@ -[ - { - "__type__": "cc.Prefab", - "_name": "get", - "_objFlags": 0, - "__editorExtras__": {}, - "_native": "", - "data": { - "__id__": 1 - }, - "optimizationPolicy": 0, - "persistent": false - }, - { - "__type__": "cc.Node", - "_name": "get", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": null, - "_children": [ - { - "__id__": 2 - }, - { - "__id__": 10 - }, - { - "__id__": 18 - }, - { - "__id__": 26 - }, - { - "__id__": 34 - }, - { - "__id__": 42 - }, - { - "__id__": 50 - }, - { - "__id__": 58 - }, - { - "__id__": 66 - }, - { - "__id__": 72 - } - ], - "_active": true, - "_components": [ - { - "__id__": 78 - }, - { - "__id__": 80 - }, - { - "__id__": 82 - }, - { - "__id__": 85 - } - ], - "_prefab": { - "__id__": 87 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": -280, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "z": 1 - }, - "_mobility": 0, - "_layer": 1073741824, - "_euler": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_id": "" - }, - { - "__type__": "cc.Node", - "_name": "Atk", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 3 - }, - { - "__id__": 5 - }, - { - "__id__": 7 - } - ], - "_prefab": { - "__id__": 9 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 2 - }, - "_enabled": true, - "__prefab": { - "__id__": 4 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 220, - "height": 220 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "c7kStJsN1PcrNAo7BaWWnn" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 2 - }, - "_enabled": true, - "__prefab": { - "__id__": 6 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@75b82", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "edXqllHNtCKJ8msZUdNuID" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 2 - }, - "_enabled": true, - "__prefab": { - "__id__": 8 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "abN7JKB+FMB59gTd2HRUTn" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "9dpCkb8YNNkK8oe8WAGa0K", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "Atked", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 11 - }, - { - "__id__": 13 - }, - { - "__id__": 15 - } - ], - "_prefab": { - "__id__": 17 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 10 - }, - "_enabled": true, - "__prefab": { - "__id__": 12 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 330, - "height": 480 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "20w3KGsMdBfKIW/mw5XAmr" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 10 - }, - "_enabled": true, - "__prefab": { - "__id__": 14 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@75b82", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a", - "__expectedType__": "cc.SpriteAtlas" - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "3bDwmsloVHY5EZHtUoQnTK" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 10 - }, - "_enabled": true, - "__prefab": { - "__id__": 16 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "18AGOck7xFAL0l6gkIcj++" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "91CxG7B1RPsZ4oAjjyZs2r", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "Buff", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 19 - }, - { - "__id__": 21 - }, - { - "__id__": 23 - } - ], - "_prefab": { - "__id__": 25 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 18 - }, - "_enabled": true, - "__prefab": { - "__id__": 20 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 220, - "height": 220 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "fbUyeEcsFMOqKtOtFzKV76" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 18 - }, - "_enabled": true, - "__prefab": { - "__id__": 22 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@21123", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "102P9zPtBPWJUIrqeSheFF" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 18 - }, - "_enabled": true, - "__prefab": { - "__id__": 24 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "99KJCqMi1N5qqmS8HwGnqP" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "d4mkYZ8S1CebNEPR6rzzFS", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "Attr", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 27 - }, - { - "__id__": 29 - }, - { - "__id__": 31 - } - ], - "_prefab": { - "__id__": 33 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 26 - }, - "_enabled": true, - "__prefab": { - "__id__": 28 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 220, - "height": 220 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "1609gScxZLE6FZI95xcXVR" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 26 - }, - "_enabled": true, - "__prefab": { - "__id__": 30 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@21123", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a", - "__expectedType__": "cc.SpriteAtlas" - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "38kC0/oQxJCaBJMEb6N67v" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 26 - }, - "_enabled": true, - "__prefab": { - "__id__": 32 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "9fm5NcM7dO+ZSkyd3enBL3" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "82+b6K8zVJIoeE1mcTB28Y", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "Skill", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 35 - }, - { - "__id__": 37 - }, - { - "__id__": 39 - } - ], - "_prefab": { - "__id__": 41 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 34 - }, - "_enabled": true, - "__prefab": { - "__id__": 36 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 220, - "height": 220 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "75xN3HuFRKkIRHFRFtjmpG" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 34 - }, - "_enabled": true, - "__prefab": { - "__id__": 38 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@75b82", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a", - "__expectedType__": "cc.SpriteAtlas" - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "d7q5yXUO1LmqpbC64yG8O8" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 34 - }, - "_enabled": true, - "__prefab": { - "__id__": 40 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "49zUES4YlFpbhtJYYBDtBK" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "89seWYhP9KApwx123HKQBA", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "Hp", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 43 - }, - { - "__id__": 45 - }, - { - "__id__": 47 - } - ], - "_prefab": { - "__id__": 49 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 42 - }, - "_enabled": true, - "__prefab": { - "__id__": 44 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 220, - "height": 220 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "f47YOBV+RGZY2u3pBYHbGD" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 42 - }, - "_enabled": true, - "__prefab": { - "__id__": 46 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 19, - "b": 19, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@21123", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a", - "__expectedType__": "cc.SpriteAtlas" - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "99Kl2A4OVPUZ1LhO4XAI3M" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 42 - }, - "_enabled": true, - "__prefab": { - "__id__": 48 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "eeehvIOm5MGom5DA6YyOeP" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "afQQ8ExKtBFqNSNH0rz626", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "Dead", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 51 - }, - { - "__id__": 53 - }, - { - "__id__": 55 - } - ], - "_prefab": { - "__id__": 57 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 50 - }, - "_enabled": true, - "__prefab": { - "__id__": 52 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 220, - "height": 220 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "dcT6SxEqFNQa0AsqpEtVdA" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 50 - }, - "_enabled": true, - "__prefab": { - "__id__": 54 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 194, - "g": 194, - "b": 194, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@ec412", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "eeVENI9SdAUorpYR0WtdZZ" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 50 - }, - "_enabled": true, - "__prefab": { - "__id__": 56 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "08ZEu+RhBGr7wOsP51cMZ9" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "0aAGAcTk9KJK8JtNzF0s/X", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "Partner", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 59 - }, - { - "__id__": 61 - }, - { - "__id__": 63 - } - ], - "_prefab": { - "__id__": 65 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 0.5, - "y": 0.5, - "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__": 58 - }, - "_enabled": true, - "__prefab": { - "__id__": 60 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 220, - "height": 220 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "8c+XqZ4WRDVI90aO2qbxO8" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 58 - }, - "_enabled": true, - "__prefab": { - "__id__": 62 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@21123", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a", - "__expectedType__": "cc.SpriteAtlas" - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "61Qy/zP4FJXLiomHbJY/H0" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 58 - }, - "_enabled": true, - "__prefab": { - "__id__": 64 - }, - "_alignFlags": 45, - "_target": null, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_horizontalCenter": 0, - "_verticalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 229, - "_originalHeight": 63, - "_alignMode": 2, - "_lockFlags": 0, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "10TVZRuhVOZatpDcmbIfvX" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "cfhroH0VFJlq4Se62cfOB7", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "icon", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 67 - }, - { - "__id__": 69 - } - ], - "_prefab": { - "__id__": 71 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 0, - "y": 3, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "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__": 66 - }, - "_enabled": true, - "__prefab": { - "__id__": 68 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 93, - "height": 90 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "bbJGIGV/FBhKHt/1tzLuwE" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 66 - }, - "_enabled": true, - "__prefab": { - "__id__": 70 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "031877cb-0f3d-4e92-bc5d-e492a0d95a08@5dd64", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "4al0MLxMlB56FJWnzCZ4F9" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "3fySg1nP5PX4FJgI5Phn2X", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.Node", - "_name": "num", - "_objFlags": 0, - "__editorExtras__": {}, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 73 - }, - { - "__id__": 75 - } - ], - "_prefab": { - "__id__": 77 - }, - "_lpos": { - "__type__": "cc.Vec3", - "x": 34.381, - "y": -27.61, - "z": 0 - }, - "_lrot": { - "__type__": "cc.Quat", - "x": 0, - "y": 0, - "z": 0, - "w": 1 - }, - "_lscale": { - "__type__": "cc.Vec3", - "x": 1, - "y": 1, - "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__": 72 - }, - "_enabled": true, - "__prefab": { - "__id__": 74 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 17.90380859375, - "height": 54.4 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "bamuO27s5EHZhw2oKWl9jA" - }, - { - "__type__": "cc.Label", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 72 - }, - "_enabled": true, - "__prefab": { - "__id__": 76 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_string": "1", - "_horizontalAlign": 1, - "_verticalAlign": 1, - "_actualFontSize": 25, - "_fontSize": 25, - "_fontFamily": "Arial", - "_lineHeight": 40, - "_overflow": 0, - "_enableWrapText": true, - "_font": null, - "_isSystemFontUsed": true, - "_spacingX": 0, - "_isItalic": false, - "_isBold": true, - "_isUnderline": false, - "_underlineHeight": 2, - "_cacheMode": 0, - "_enableOutline": true, - "_outlineColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_outlineWidth": 2, - "_enableShadow": false, - "_shadowColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_shadowOffset": { - "__type__": "cc.Vec2", - "x": 2, - "y": 2 - }, - "_shadowBlur": 2, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "91xb7dj5dBpoFxB6oNzuAs" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "e0FG6b1MdParpWO5Eh10eo", - "instance": null, - "targetOverrides": null, - "nestedPrefabInstanceRoots": null - }, - { - "__type__": "cc.UITransform", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 79 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 110, - "height": 110 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "efondXYPhELrecndIprwJs" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": false, - "__prefab": { - "__id__": 81 - }, - "_customMaterial": null, - "_srcBlendFactor": 2, - "_dstBlendFactor": 4, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_spriteFrame": { - "__uuid__": "deedea09-8f2b-400f-9803-4cfd38e45d1a@75b82", - "__expectedType__": "cc.SpriteFrame" - }, - "_type": 1, - "_fillType": 0, - "_sizeMode": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_useGrayscale": false, - "_atlas": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "d43zVnYtNEa7gnqhcV0LD4" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 83 - }, - "clickEvents": [ - { - "__id__": 84 - } - ], - "_interactable": true, - "_transition": 0, - "_normalColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_hoverColor": { - "__type__": "cc.Color", - "r": 211, - "g": 211, - "b": 211, - "a": 255 - }, - "_pressedColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_disabledColor": { - "__type__": "cc.Color", - "r": 124, - "g": 124, - "b": 124, - "a": 255 - }, - "_normalSprite": null, - "_hoverSprite": null, - "_pressedSprite": null, - "_disabledSprite": null, - "_duration": 0.1, - "_zoomScale": 1.2, - "_target": null, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "94UHGas6VLi6OBaZrrGpOX" - }, - { - "__type__": "cc.ClickEvent", - "target": null, - "component": "", - "_componentId": "", - "handler": "", - "customEventData": "" - }, - { - "__type__": "7ddd1IfGRhO7a2b66ov5bYG", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 1 - }, - "_enabled": true, - "__prefab": { - "__id__": 86 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "c89eW5WlxFUokvJRFAfrSA" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "23znkFS6BDwoO5cjQxIEur", - "instance": null, - "targetOverrides": null - } -] \ No newline at end of file diff --git a/assets/resources/game/gui/get.prefab.meta b/assets/resources/game/gui/get.prefab.meta deleted file mode 100644 index 4cd2c8a5..00000000 --- a/assets/resources/game/gui/get.prefab.meta +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ver": "1.1.50", - "importer": "prefab", - "imported": true, - "uuid": "d63b992b-cdaf-4e5a-8472-866c0038857a", - "files": [ - ".json" - ], - "subMetas": {}, - "userData": { - "syncNodeName": "get" - } -} diff --git a/assets/resources/gui/role_controller.prefab b/assets/resources/gui/role_controller.prefab index 9d99add1..e9795463 100644 --- a/assets/resources/gui/role_controller.prefab +++ b/assets/resources/gui/role_controller.prefab @@ -25,26 +25,26 @@ "__id__": 369 }, { - "__id__": 497 + "__id__": 503 }, { - "__id__": 506 + "__id__": 512 } ], "_active": true, "_components": [ { - "__id__": 552 + "__id__": 558 }, { - "__id__": 554 + "__id__": 560 }, { - "__id__": 556 + "__id__": 562 } ], "_prefab": { - "__id__": 558 + "__id__": 564 }, "_lpos": { "__type__": "cc.Vec3", @@ -8212,7 +8212,8 @@ "time_node": { "__id__": 3 }, - "binfo_node": null, + "hero_info_node": null, + "update_node": null, "_id": "" }, { @@ -8285,26 +8286,23 @@ "__id__": 386 }, { - "__id__": 414 + "__id__": 422 } ], "_active": false, "_components": [ { - "__id__": 488 + "__id__": 496 }, { - "__id__": 490 + "__id__": 498 }, { - "__id__": 492 - }, - { - "__id__": 494 + "__id__": 500 } ], "_prefab": { - "__id__": 496 + "__id__": 502 }, "_lpos": { "__type__": "cc.Vec3", @@ -8736,47 +8734,47 @@ { "__id__": 391 }, - { - "__id__": 392 - }, { "__id__": 393 }, { - "__id__": 394 + "__id__": 395 }, { - "__id__": 396 - }, - { - "__id__": 398 + "__id__": 397 }, { "__id__": 399 }, { - "__id__": 401 + "__id__": 402 }, { - "__id__": 403 + "__id__": 404 }, { - "__id__": 405 + "__id__": 406 }, { - "__id__": 407 + "__id__": 408 }, { - "__id__": 409 - }, - { - "__id__": 411 + "__id__": 410 }, { "__id__": 412 }, { - "__id__": 413 + "__id__": 414 + }, + { + "__id__": 416 + }, + { + "__id__": 418 + }, + { + "__id__": 420 } ], "removedComponents": [] @@ -8800,7 +8798,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 390 + "__id__": 392 }, "propertyPath": [ "_lpos" @@ -8812,10 +8810,16 @@ "z": 0 } }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "24rlgXRJ9AHLGpMW+aYyEx" + ] + }, { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 390 + "__id__": 394 }, "propertyPath": [ "_lrot" @@ -8828,10 +8832,16 @@ "w": 1 } }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "24rlgXRJ9AHLGpMW+aYyEx" + ] + }, { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 390 + "__id__": 396 }, "propertyPath": [ "_euler" @@ -8843,10 +8853,16 @@ "z": 0 } }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "24rlgXRJ9AHLGpMW+aYyEx" + ] + }, { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 395 + "__id__": 398 }, "propertyPath": [ "clickEvents", @@ -8863,30 +8879,36 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 395 + "__id__": 400 }, "propertyPath": [ "clickEvents", "0" ], "value": { - "__id__": 397 + "__id__": 401 } }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "f5MsfCkARGFblbm0HvivL/" + ] + }, { "__type__": "cc.ClickEvent", "target": { "__id__": 369 }, "component": "", - "_componentId": "f8dd2ODYatM+Zh5DQ/izWwv", + "_componentId": "11498TbVJpO6qmZ8m9k55Zx", "handler": "start_mission", "customEventData": "" }, { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 395 + "__id__": 403 }, "propertyPath": [ "_target" @@ -8895,10 +8917,16 @@ "__id__": 386 } }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "f5MsfCkARGFblbm0HvivL/" + ] + }, { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 400 + "__id__": 405 }, "propertyPath": [ "_bottom" @@ -8914,7 +8942,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 402 + "__id__": 407 }, "propertyPath": [ "_spriteFrame" @@ -8933,7 +8961,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 404 + "__id__": 409 }, "propertyPath": [ "_contentSize" @@ -8953,7 +8981,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 406 + "__id__": 411 }, "propertyPath": [ "_contentSize" @@ -8973,7 +9001,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 408 + "__id__": 413 }, "propertyPath": [ "_lineHeight" @@ -8989,7 +9017,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 410 + "__id__": 415 }, "propertyPath": [ "_contentSize" @@ -9009,33 +9037,51 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 408 + "__id__": 417 }, "propertyPath": [ "_fontSize" ], "value": 45 }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "14OjteCA5OkLMHKjcyDL86" + ] + }, { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 408 + "__id__": 419 }, "propertyPath": [ "_actualFontSize" ], "value": 45 }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "14OjteCA5OkLMHKjcyDL86" + ] + }, { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 408 + "__id__": 421 }, "propertyPath": [ "_outlineWidth" ], "value": 4 }, + { + "__type__": "cc.TargetInfo", + "localID": [ + "14OjteCA5OkLMHKjcyDL86" + ] + }, { "__type__": "cc.Node", "_name": "bar", @@ -9046,29 +9092,29 @@ }, "_children": [ { - "__id__": 415 + "__id__": 423 }, { - "__id__": 437 + "__id__": 445 }, { - "__id__": 459 + "__id__": 467 } ], "_active": true, "_components": [ { - "__id__": 481 + "__id__": 489 }, { - "__id__": 483 + "__id__": 491 }, { - "__id__": 485 + "__id__": 493 } ], "_prefab": { - "__id__": 487 + "__id__": 495 }, "_lpos": { "__type__": "cc.Vec3", @@ -9105,27 +9151,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 414 + "__id__": 422 }, "_children": [ { - "__id__": 416 + "__id__": 424 }, { - "__id__": 422 + "__id__": 430 }, { - "__id__": 428 + "__id__": 436 } ], "_active": true, "_components": [ { - "__id__": 434 + "__id__": 442 } ], "_prefab": { - "__id__": 436 + "__id__": 444 }, "_lpos": { "__type__": "cc.Vec3", @@ -9162,20 +9208,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 415 + "__id__": 423 }, "_children": [], "_active": true, "_components": [ { - "__id__": 417 + "__id__": 425 }, { - "__id__": 419 + "__id__": 427 } ], "_prefab": { - "__id__": 421 + "__id__": 429 }, "_lpos": { "__type__": "cc.Vec3", @@ -9212,11 +9258,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 416 + "__id__": 424 }, "_enabled": true, "__prefab": { - "__id__": 418 + "__id__": 426 }, "_contentSize": { "__type__": "cc.Size", @@ -9240,11 +9286,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 416 + "__id__": 424 }, "_enabled": true, "__prefab": { - "__id__": 420 + "__id__": 428 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -9298,20 +9344,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 415 + "__id__": 423 }, "_children": [], "_active": false, "_components": [ { - "__id__": 423 + "__id__": 431 }, { - "__id__": 425 + "__id__": 433 } ], "_prefab": { - "__id__": 427 + "__id__": 435 }, "_lpos": { "__type__": "cc.Vec3", @@ -9348,11 +9394,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 422 + "__id__": 430 }, "_enabled": true, "__prefab": { - "__id__": 424 + "__id__": 432 }, "_contentSize": { "__type__": "cc.Size", @@ -9376,11 +9422,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 422 + "__id__": 430 }, "_enabled": true, "__prefab": { - "__id__": 426 + "__id__": 434 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -9434,20 +9480,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 415 + "__id__": 423 }, "_children": [], "_active": true, "_components": [ { - "__id__": 429 + "__id__": 437 }, { - "__id__": 431 + "__id__": 439 } ], "_prefab": { - "__id__": 433 + "__id__": 441 }, "_lpos": { "__type__": "cc.Vec3", @@ -9484,11 +9530,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 428 + "__id__": 436 }, "_enabled": true, "__prefab": { - "__id__": 430 + "__id__": 438 }, "_contentSize": { "__type__": "cc.Size", @@ -9512,11 +9558,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 428 + "__id__": 436 }, "_enabled": true, "__prefab": { - "__id__": 432 + "__id__": 440 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -9570,11 +9616,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 415 + "__id__": 423 }, "_enabled": true, "__prefab": { - "__id__": 435 + "__id__": 443 }, "_contentSize": { "__type__": "cc.Size", @@ -9611,27 +9657,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 414 + "__id__": 422 }, "_children": [ { - "__id__": 438 + "__id__": 446 }, { - "__id__": 444 + "__id__": 452 }, { - "__id__": 450 + "__id__": 458 } ], "_active": true, "_components": [ { - "__id__": 456 + "__id__": 464 } ], "_prefab": { - "__id__": 458 + "__id__": 466 }, "_lpos": { "__type__": "cc.Vec3", @@ -9668,20 +9714,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 437 + "__id__": 445 }, "_children": [], "_active": true, "_components": [ { - "__id__": 439 + "__id__": 447 }, { - "__id__": 441 + "__id__": 449 } ], "_prefab": { - "__id__": 443 + "__id__": 451 }, "_lpos": { "__type__": "cc.Vec3", @@ -9718,11 +9764,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 438 + "__id__": 446 }, "_enabled": true, "__prefab": { - "__id__": 440 + "__id__": 448 }, "_contentSize": { "__type__": "cc.Size", @@ -9746,11 +9792,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 438 + "__id__": 446 }, "_enabled": true, "__prefab": { - "__id__": 442 + "__id__": 450 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -9804,20 +9850,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 437 + "__id__": 445 }, "_children": [], "_active": true, "_components": [ { - "__id__": 445 + "__id__": 453 }, { - "__id__": 447 + "__id__": 455 } ], "_prefab": { - "__id__": 449 + "__id__": 457 }, "_lpos": { "__type__": "cc.Vec3", @@ -9854,11 +9900,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 444 + "__id__": 452 }, "_enabled": true, "__prefab": { - "__id__": 446 + "__id__": 454 }, "_contentSize": { "__type__": "cc.Size", @@ -9882,11 +9928,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 444 + "__id__": 452 }, "_enabled": true, "__prefab": { - "__id__": 448 + "__id__": 456 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -9940,20 +9986,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 437 + "__id__": 445 }, "_children": [], "_active": true, "_components": [ { - "__id__": 451 + "__id__": 459 }, { - "__id__": 453 + "__id__": 461 } ], "_prefab": { - "__id__": 455 + "__id__": 463 }, "_lpos": { "__type__": "cc.Vec3", @@ -9990,11 +10036,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 450 + "__id__": 458 }, "_enabled": true, "__prefab": { - "__id__": 452 + "__id__": 460 }, "_contentSize": { "__type__": "cc.Size", @@ -10018,11 +10064,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 450 + "__id__": 458 }, "_enabled": true, "__prefab": { - "__id__": 454 + "__id__": 462 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -10076,11 +10122,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 437 + "__id__": 445 }, "_enabled": true, "__prefab": { - "__id__": 457 + "__id__": 465 }, "_contentSize": { "__type__": "cc.Size", @@ -10117,27 +10163,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 414 + "__id__": 422 }, "_children": [ { - "__id__": 460 + "__id__": 468 }, { - "__id__": 466 + "__id__": 474 }, { - "__id__": 472 + "__id__": 480 } ], "_active": true, "_components": [ { - "__id__": 478 + "__id__": 486 } ], "_prefab": { - "__id__": 480 + "__id__": 488 }, "_lpos": { "__type__": "cc.Vec3", @@ -10174,20 +10220,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 459 + "__id__": 467 }, "_children": [], "_active": true, "_components": [ { - "__id__": 461 + "__id__": 469 }, { - "__id__": 463 + "__id__": 471 } ], "_prefab": { - "__id__": 465 + "__id__": 473 }, "_lpos": { "__type__": "cc.Vec3", @@ -10224,11 +10270,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 460 + "__id__": 468 }, "_enabled": true, "__prefab": { - "__id__": 462 + "__id__": 470 }, "_contentSize": { "__type__": "cc.Size", @@ -10252,11 +10298,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 460 + "__id__": 468 }, "_enabled": true, "__prefab": { - "__id__": 464 + "__id__": 472 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -10310,20 +10356,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 459 + "__id__": 467 }, "_children": [], "_active": false, "_components": [ { - "__id__": 467 + "__id__": 475 }, { - "__id__": 469 + "__id__": 477 } ], "_prefab": { - "__id__": 471 + "__id__": 479 }, "_lpos": { "__type__": "cc.Vec3", @@ -10360,11 +10406,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 466 + "__id__": 474 }, "_enabled": true, "__prefab": { - "__id__": 468 + "__id__": 476 }, "_contentSize": { "__type__": "cc.Size", @@ -10388,11 +10434,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 466 + "__id__": 474 }, "_enabled": true, "__prefab": { - "__id__": 470 + "__id__": 478 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -10446,20 +10492,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 459 + "__id__": 467 }, "_children": [], "_active": true, "_components": [ { - "__id__": 473 + "__id__": 481 }, { - "__id__": 475 + "__id__": 483 } ], "_prefab": { - "__id__": 477 + "__id__": 485 }, "_lpos": { "__type__": "cc.Vec3", @@ -10496,11 +10542,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 472 + "__id__": 480 }, "_enabled": true, "__prefab": { - "__id__": 474 + "__id__": 482 }, "_contentSize": { "__type__": "cc.Size", @@ -10524,11 +10570,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 472 + "__id__": 480 }, "_enabled": true, "__prefab": { - "__id__": 476 + "__id__": 484 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -10582,11 +10628,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 459 + "__id__": 467 }, "_enabled": true, "__prefab": { - "__id__": 479 + "__id__": 487 }, "_contentSize": { "__type__": "cc.Size", @@ -10623,11 +10669,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 414 + "__id__": 422 }, "_enabled": true, "__prefab": { - "__id__": 482 + "__id__": 490 }, "_contentSize": { "__type__": "cc.Size", @@ -10651,11 +10697,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 414 + "__id__": 422 }, "_enabled": true, "__prefab": { - "__id__": 484 + "__id__": 492 }, "_alignFlags": 44, "_target": null, @@ -10687,11 +10733,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 414 + "__id__": 422 }, "_enabled": true, "__prefab": { - "__id__": 486 + "__id__": 494 }, "_resizeMode": 1, "_layoutType": 1, @@ -10742,7 +10788,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 489 + "__id__": 497 }, "_contentSize": { "__type__": "cc.Size", @@ -10770,7 +10816,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 491 + "__id__": 499 }, "_alignFlags": 21, "_target": null, @@ -10806,7 +10852,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 493 + "__id__": 501 }, "_id": "" }, @@ -10814,24 +10860,6 @@ "__type__": "cc.CompPrefabInfo", "fileId": "96KsLaZWJF7YqZMqE+112D" }, - { - "__type__": "f8dd2ODYatM+Zh5DQ/izWwv", - "_name": "", - "_objFlags": 0, - "__editorExtras__": {}, - "node": { - "__id__": 369 - }, - "_enabled": false, - "__prefab": { - "__id__": 495 - }, - "_id": "" - }, - { - "__type__": "cc.CompPrefabInfo", - "fileId": "6bb2bEwqFIFK/AafHOAMxQ" - }, { "__type__": "cc.PrefabInfo", "root": { @@ -10852,14 +10880,14 @@ "__id__": 1 }, "_prefab": { - "__id__": 498 + "__id__": 504 }, "__editorExtras__": {} }, { "__type__": "cc.PrefabInfo", "root": { - "__id__": 497 + "__id__": 503 }, "asset": { "__uuid__": "26bff847-cd29-48a5-bbfa-c3e2dbda688d", @@ -10867,7 +10895,7 @@ }, "fileId": "5a9CMsVQhKP5Y+UJfTKPbx", "instance": { - "__id__": 499 + "__id__": 505 }, "targetOverrides": null }, @@ -10881,19 +10909,19 @@ "mountedComponents": [], "propertyOverrides": [ { - "__id__": 500 + "__id__": 506 }, { - "__id__": 502 + "__id__": 508 }, { - "__id__": 503 + "__id__": 509 }, { - "__id__": 504 + "__id__": 510 }, { - "__id__": 505 + "__id__": 511 } ], "removedComponents": [] @@ -10901,7 +10929,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 501 + "__id__": 507 }, "propertyPath": [ "_name" @@ -10917,7 +10945,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 501 + "__id__": 507 }, "propertyPath": [ "_lpos" @@ -10932,7 +10960,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 501 + "__id__": 507 }, "propertyPath": [ "_lrot" @@ -10948,7 +10976,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 501 + "__id__": 507 }, "propertyPath": [ "_euler" @@ -10963,7 +10991,7 @@ { "__type__": "CCPropertyOverrideInfo", "targetInfo": { - "__id__": 501 + "__id__": 507 }, "propertyPath": [ "_active" @@ -10980,23 +11008,23 @@ }, "_children": [ { - "__id__": 507 + "__id__": 513 } ], "_active": true, "_components": [ { - "__id__": 545 + "__id__": 551 }, { - "__id__": 547 + "__id__": 553 }, { - "__id__": 549 + "__id__": 555 } ], "_prefab": { - "__id__": 551 + "__id__": 557 }, "_lpos": { "__type__": "cc.Vec3", @@ -11033,30 +11061,30 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 506 + "__id__": 512 }, "_children": [ { - "__id__": 508 + "__id__": 514 } ], "_active": true, "_components": [ - { - "__id__": 536 - }, - { - "__id__": 538 - }, - { - "__id__": 540 - }, { "__id__": 542 + }, + { + "__id__": 544 + }, + { + "__id__": 546 + }, + { + "__id__": 548 } ], "_prefab": { - "__id__": 544 + "__id__": 550 }, "_lpos": { "__type__": "cc.Vec3", @@ -11093,27 +11121,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 507 + "__id__": 513 }, "_children": [ { - "__id__": 509 - }, - { - "__id__": 517 + "__id__": 515 }, { "__id__": 523 + }, + { + "__id__": 529 } ], "_active": true, "_components": [ { - "__id__": 533 + "__id__": 539 } ], "_prefab": { - "__id__": 535 + "__id__": 541 }, "_lpos": { "__type__": "cc.Vec3", @@ -11150,23 +11178,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 508 + "__id__": 514 }, "_children": [], "_active": true, "_components": [ { - "__id__": 510 + "__id__": 516 }, { - "__id__": 512 + "__id__": 518 }, { - "__id__": 514 + "__id__": 520 } ], "_prefab": { - "__id__": 516 + "__id__": 522 }, "_lpos": { "__type__": "cc.Vec3", @@ -11203,11 +11231,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 509 + "__id__": 515 }, "_enabled": true, "__prefab": { - "__id__": 511 + "__id__": 517 }, "_contentSize": { "__type__": "cc.Size", @@ -11231,11 +11259,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 509 + "__id__": 515 }, "_enabled": true, "__prefab": { - "__id__": 513 + "__id__": 519 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -11279,11 +11307,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 509 + "__id__": 515 }, "_enabled": true, "__prefab": { - "__id__": 515 + "__id__": 521 }, "_alignFlags": 40, "_target": null, @@ -11328,20 +11356,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 508 + "__id__": 514 }, "_children": [], "_active": true, "_components": [ { - "__id__": 518 + "__id__": 524 }, { - "__id__": 520 + "__id__": 526 } ], "_prefab": { - "__id__": 522 + "__id__": 528 }, "_lpos": { "__type__": "cc.Vec3", @@ -11378,11 +11406,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 517 + "__id__": 523 }, "_enabled": true, "__prefab": { - "__id__": 519 + "__id__": 525 }, "_contentSize": { "__type__": "cc.Size", @@ -11406,11 +11434,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 517 + "__id__": 523 }, "_enabled": true, "__prefab": { - "__id__": 521 + "__id__": 527 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -11467,26 +11495,26 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 508 + "__id__": 514 }, "_children": [], "_active": true, "_components": [ - { - "__id__": 524 - }, - { - "__id__": 526 - }, - { - "__id__": 528 - }, { "__id__": 530 + }, + { + "__id__": 532 + }, + { + "__id__": 534 + }, + { + "__id__": 536 } ], "_prefab": { - "__id__": 532 + "__id__": 538 }, "_lpos": { "__type__": "cc.Vec3", @@ -11523,11 +11551,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 523 + "__id__": 529 }, "_enabled": true, "__prefab": { - "__id__": 525 + "__id__": 531 }, "_contentSize": { "__type__": "cc.Size", @@ -11551,11 +11579,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 523 + "__id__": 529 }, "_enabled": true, "__prefab": { - "__id__": 527 + "__id__": 533 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -11619,11 +11647,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 523 + "__id__": 529 }, "_enabled": true, "__prefab": { - "__id__": 529 + "__id__": 535 }, "_alignFlags": 10, "_target": null, @@ -11655,11 +11683,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 523 + "__id__": 529 }, "_enabled": true, "__prefab": { - "__id__": 531 + "__id__": 537 }, "templateMode": true, "watchPath": "data.data.gold", @@ -11692,11 +11720,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 508 + "__id__": 514 }, "_enabled": true, "__prefab": { - "__id__": 534 + "__id__": 540 }, "_contentSize": { "__type__": "cc.Size", @@ -11733,11 +11761,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 507 + "__id__": 513 }, "_enabled": true, "__prefab": { - "__id__": 537 + "__id__": 543 }, "_contentSize": { "__type__": "cc.Size", @@ -11761,11 +11789,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 507 + "__id__": 513 }, "_enabled": true, "__prefab": { - "__id__": 539 + "__id__": 545 }, "_alignFlags": 8, "_target": null, @@ -11797,11 +11825,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 507 + "__id__": 513 }, "_enabled": true, "__prefab": { - "__id__": 541 + "__id__": 547 }, "_resizeMode": 0, "_layoutType": 1, @@ -11835,11 +11863,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 507 + "__id__": 513 }, "_enabled": true, "__prefab": { - "__id__": 543 + "__id__": 549 }, "_alignFlags": 40, "_target": null, @@ -11884,11 +11912,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 506 + "__id__": 512 }, "_enabled": true, "__prefab": { - "__id__": 546 + "__id__": 552 }, "_contentSize": { "__type__": "cc.Size", @@ -11912,11 +11940,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 506 + "__id__": 512 }, "_enabled": true, "__prefab": { - "__id__": 548 + "__id__": 554 }, "_alignFlags": 17, "_target": null, @@ -11948,11 +11976,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 506 + "__id__": 512 }, "_enabled": true, "__prefab": { - "__id__": 550 + "__id__": 556 }, "_id": "" }, @@ -11983,7 +12011,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 553 + "__id__": 559 }, "_contentSize": { "__type__": "cc.Size", @@ -12011,7 +12039,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 555 + "__id__": 561 }, "_alignFlags": 45, "_target": null, @@ -12047,7 +12075,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 557 + "__id__": 563 }, "debugMode": false, "_id": "" @@ -12069,7 +12097,7 @@ "targetOverrides": [], "nestedPrefabInstanceRoots": [ { - "__id__": 497 + "__id__": 503 }, { "__id__": 386 diff --git a/assets/script/game/hero/SACastSystem.ts b/assets/script/game/hero/SACastSystem.ts index 99a4da25..75e6cd6b 100644 --- a/assets/script/game/hero/SACastSystem.ts +++ b/assets/script/game/hero/SACastSystem.ts @@ -1,621 +1,621 @@ -import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; -import { Vec3, v3 } from "cc"; -import { HeroAttrsComp } from "./HeroAttrsComp"; -import { HeroViewComp } from "./HeroViewComp"; -import { HSSet, SkillSet, SType, TGroup, SkillConfig } from "../common/config/SkillSet"; -import { HeroSkillsComp, SkillSlot } from "./HeroSkills"; -import { Skill } from "../skill/Skill"; -import { smc } from "../common/SingletonModuleComp"; -import { TalComp } from "./TalComp"; -import { TalEffet, TriType } from "../common/config/TalSet"; -import { BoxSet, FacSet } from "../common/config/GameSet"; -import { GameConst } from "../common/config/GameConst"; -import { Attrs } from "../common/config/HeroAttrs"; -import { mLogger } from "../common/Logger"; +// import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; +// import { Vec3, v3 } from "cc"; +// import { HeroAttrsComp } from "./HeroAttrsComp"; +// import { HeroViewComp } from "./HeroViewComp"; +// import { HSSet, SkillSet, SType, TGroup, SkillConfig } from "../common/config/SkillSet"; +// import { HeroSkillsComp, SkillSlot } from "./HeroSkills"; +// import { Skill } from "../skill/Skill"; +// import { smc } from "../common/SingletonModuleComp"; +// import { TalComp } from "./TalComp"; +// import { TalEffet, TriType } from "../common/config/TalSet"; +// import { BoxSet, FacSet } from "../common/config/GameSet"; +// import { GameConst } from "../common/config/GameConst"; +// import { Attrs } from "../common/config/HeroAttrs"; +// import { mLogger } from "../common/Logger"; -/** - * ==================== 自动施法系统 ==================== - * - * 职责: - * 1. 检测可施放的技能 - * 2. 根据策略自动施法(AI) - * 3. 选择目标 - * 4. 添加施法请求标记 - * - * 设计理念: - * - 负责"何时施法"的决策 - * - 通过添加 CSRequestComp 触发施法 - * - 可被玩家输入系统或AI系统复用 - * - 支持多种AI策略 - */ -@ecs.register('SACastSystem') -export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { - debugMode: boolean = false; // 是否启用调试模式 +// /** +// * ==================== 自动施法系统 ==================== +// * +// * 职责: +// * 1. 检测可施放的技能 +// * 2. 根据策略自动施法(AI) +// * 3. 选择目标 +// * 4. 添加施法请求标记 +// * +// * 设计理念: +// * - 负责"何时施法"的决策 +// * - 通过添加 CSRequestComp 触发施法 +// * - 可被玩家输入系统或AI系统复用 +// * - 支持多种AI策略 +// */ +// @ecs.register('SACastSystem') +// export class SACastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate { +// debugMode: boolean = false; // 是否启用调试模式 - filter(): ecs.IMatcher { - return ecs.allOf(HeroSkillsComp, HeroAttrsComp, HeroViewComp); - } +// filter(): ecs.IMatcher { +// return ecs.allOf(HeroSkillsComp, HeroAttrsComp, HeroViewComp); +// } - update(e: ecs.Entity): void { - if(!smc.mission.play ) return; - if(smc.mission.pause) return - const skills = e.get(HeroSkillsComp); - if (!skills) return; +// update(e: ecs.Entity): void { +// if(!smc.mission.play ) return; +// if(smc.mission.pause) return +// const skills = e.get(HeroSkillsComp); +// if (!skills) return; - // AI 降频:每0.2秒执行一次 - skills.ai_timer += this.dt; - if (skills.ai_timer < GameConst.Battle.AI_CHECK_INTERVAL) return; - skills.ai_timer = 0; +// // AI 降频:每0.2秒执行一次 +// skills.ai_timer += this.dt; +// if (skills.ai_timer < GameConst.Battle.AI_CHECK_INTERVAL) return; +// skills.ai_timer = 0; - const heroAttrs = e.get(HeroAttrsComp); - const heroView = e.get(HeroViewComp); - if (!heroAttrs || !heroView) return; +// const heroAttrs = e.get(HeroAttrsComp); +// const heroView = e.get(HeroViewComp); +// if (!heroAttrs || !heroView) return; - // 检查基本条件 - if (heroAttrs.is_dead || heroAttrs.is_reviving || heroAttrs.isStun() || heroAttrs.isFrost()) return; +// // 检查基本条件 +// if (heroAttrs.is_dead || heroAttrs.is_reviving || heroAttrs.isStun() || heroAttrs.isFrost()) return; - // 移除 is_atking 检查,实现只要距离和CD满足即施法 - // if (!heroAttrs.is_atking) return; +// // 移除 is_atking 检查,实现只要距离和CD满足即施法 +// // if (!heroAttrs.is_atking) return; - const readySkills = skills.getReadySkills(); - if (readySkills.length === 0) return; +// const readySkills = skills.getReadySkills(); +// if (readySkills.length === 0) return; - // 选择第一个可施放的技能(支持伤害/治疗/护盾) - for (const s_uuid of readySkills) { - const skill = skills.getSkill(s_uuid); - if (!skill) continue; - if (skill.hset === HSSet.max && !skills.max_auto) continue; +// // 选择第一个可施放的技能(支持伤害/治疗/护盾) +// for (const s_uuid of readySkills) { +// const skill = skills.getSkill(s_uuid); +// if (!skill) continue; +// if (skill.hset === HSSet.max && !skills.max_auto) continue; - const config = SkillSet[skill.s_uuid]; - if (!config) continue; +// const config = SkillSet[skill.s_uuid]; +// if (!config) continue; - // 根据技能类型检查目标 - if (config.SType === SType.damage) { - if (!this.hasEnemyInSkillRange(heroView, heroAttrs, skill.dis)) continue; - } else if (config.SType === SType.heal || config.SType === SType.shield) { - if (!this.hasTeamInSkillRange(heroView, heroAttrs, skill.dis)) continue; - } else if (config.SType === SType.buff) { - if (!this.hasBuffTarget(heroView, heroAttrs, skill.dis, config.TGroup)) continue; - } +// // 根据技能类型检查目标 +// if (config.SType === SType.damage) { +// if (!this.hasEnemyInSkillRange(heroView, heroAttrs, skill.dis)) continue; +// } else if (config.SType === SType.heal || config.SType === SType.shield) { +// if (!this.hasTeamInSkillRange(heroView, heroAttrs, skill.dis)) continue; +// } else if (config.SType === SType.buff) { +// if (!this.hasBuffTarget(heroView, heroAttrs, skill.dis, config.TGroup)) continue; +// } - // ✅ 开始执行施法 - this.startCast(e, skill, skill.hset); +// // ✅ 开始执行施法 +// this.startCast(e, skill, skill.hset); - // 一次只施放一个技能 - break; - } - } - private startCast(e: ecs.Entity,skill:SkillSlot,hset:HSSet): boolean { - if (!skill||!e) return false - const skills = e.get(HeroSkillsComp); - const heroAttrs = e.get(HeroAttrsComp); - const heroView = e.get(HeroViewComp); - // 3. 检查施法条件 - if (!this.checkCastConditions(skills, heroAttrs, skill.s_uuid)) return false +// // 一次只施放一个技能 +// break; +// } +// } +// private startCast(e: ecs.Entity,skill:SkillSlot,hset:HSSet): boolean { +// if (!skill||!e) return false +// const skills = e.get(HeroSkillsComp); +// const heroAttrs = e.get(HeroAttrsComp); +// const heroView = e.get(HeroViewComp); +// // 3. 检查施法条件 +// if (!this.checkCastConditions(skills, heroAttrs, skill.s_uuid)) return false - // 4. 执行施法 - const castSucess = this.executeCast(e, skill.s_uuid, heroView,hset); - // 5. 扣除资源和重置CD - if (castSucess) { - // 🔥 怪物不消耗蓝 - if (heroAttrs.fac !== FacSet.MON) { - // 手动更新技能距离缓存 - heroAttrs.updateSkillDistanceCache(skills); - } - skills.resetCD(skill.s_uuid); - } - return castSucess; - } - public manualCast(e: ecs.Entity, s_uuid: number): boolean { - if (!e) return false - const skills = e.get(HeroSkillsComp) - const heroAttrs = e.get(HeroAttrsComp) - const heroView = e.get(HeroViewComp) - if (!skills || !heroAttrs || !heroView) return false - const slot = skills.getSkill(s_uuid) - if (!slot) return false - return this.startCast(e, slot, slot.hset) - } - public manualCastMax(e: ecs.Entity): boolean { - const skills = e.get(HeroSkillsComp) - if (!skills) return false - for (const key in skills.skills) { - const s_uuid = Number(key) - const slot = skills.getSkill(s_uuid) - if (slot && slot.hset === HSSet.max) { - return this.manualCast(e, s_uuid) - } - } - return false - } - /** - * 检查施法条件 - */ - private checkCastConditions(skills: HeroSkillsComp, heroAttrs: HeroAttrsComp, s_uuid: number): boolean { - // 检查角色状态 - if (heroAttrs.is_dead) { - return false; - } +// // 4. 执行施法 +// const castSucess = this.executeCast(e, skill.s_uuid, heroView,hset); +// // 5. 扣除资源和重置CD +// if (castSucess) { +// // 🔥 怪物不消耗蓝 +// if (heroAttrs.fac !== FacSet.MON) { +// // 手动更新技能距离缓存 +// heroAttrs.updateSkillDistanceCache(skills); +// } +// skills.resetCD(skill.s_uuid); +// } +// return castSucess; +// } +// public manualCast(e: ecs.Entity, s_uuid: number): boolean { +// if (!e) return false +// const skills = e.get(HeroSkillsComp) +// const heroAttrs = e.get(HeroAttrsComp) +// const heroView = e.get(HeroViewComp) +// if (!skills || !heroAttrs || !heroView) return false +// const slot = skills.getSkill(s_uuid) +// if (!slot) return false +// return this.startCast(e, slot, slot.hset) +// } +// public manualCastMax(e: ecs.Entity): boolean { +// const skills = e.get(HeroSkillsComp) +// if (!skills) return false +// for (const key in skills.skills) { +// const s_uuid = Number(key) +// const slot = skills.getSkill(s_uuid) +// if (slot && slot.hset === HSSet.max) { +// return this.manualCast(e, s_uuid) +// } +// } +// return false +// } +// /** +// * 检查施法条件 +// */ +// private checkCastConditions(skills: HeroSkillsComp, heroAttrs: HeroAttrsComp, s_uuid: number): boolean { +// // 检查角色状态 +// if (heroAttrs.is_dead) { +// return false; +// } - // 检查控制状态(眩晕、冰冻) - if (heroAttrs.isStun() || heroAttrs.isFrost()) { - return false; - } +// // 检查控制状态(眩晕、冰冻) +// if (heroAttrs.isStun() || heroAttrs.isFrost()) { +// return false; +// } - // 检查CD - if (!skills.canCast(s_uuid)) { - return false; - } +// // 检查CD +// if (!skills.canCast(s_uuid)) { +// return false; +// } - return true; - } +// return true; +// } - /** - * 执行施法 - */ - private executeCast(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp,hset:HSSet): boolean { - const heroAttrs=casterEntity.get(HeroAttrsComp) - const config = SkillSet[s_uuid]; - if (!config) { - mLogger.error(this.debugMode, 'SACastSystem', "[SACastSystem] 技能配置不存在:", s_uuid); - return false; - } +// /** +// * 执行施法 +// */ +// private executeCast(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp,hset:HSSet): boolean { +// const heroAttrs=casterEntity.get(HeroAttrsComp) +// const config = SkillSet[s_uuid]; +// if (!config) { +// mLogger.error(this.debugMode, 'SACastSystem', "[SACastSystem] 技能配置不存在:", s_uuid); +// return false; +// } - // 1. 播放施法动画 - heroView.playSkillEffect(s_uuid); -/**********************天赋处理*************************************************************************/ - // 2. 更新攻击类型的天赋触发值,技能和必杀级 - if(casterEntity.has(TalComp)){ - const talComp = casterEntity.get(TalComp); - if (hset === HSSet.atk) talComp.updateCur(TriType.ATK); - if (hset === HSSet.skill) talComp.updateCur(TriType.SKILL); - } -/**********************天赋处理*************************************************************************/ - // 根据技能类型执行不同逻辑 - if (config.SType === SType.heal) { - return this.executeHealSkill(casterEntity, s_uuid, heroView, hset); - } else if (config.SType === SType.shield) { - return this.executeShieldSkill(casterEntity, s_uuid, heroView, hset); - } else if (config.SType === SType.buff) { - return this.executeBuffSkill(casterEntity, s_uuid, heroView, hset); - } +// // 1. 播放施法动画 +// heroView.playSkillEffect(s_uuid); +// /**********************天赋处理*************************************************************************/ +// // 2. 更新攻击类型的天赋触发值,技能和必杀级 +// if(casterEntity.has(TalComp)){ +// const talComp = casterEntity.get(TalComp); +// if (hset === HSSet.atk) talComp.updateCur(TriType.ATK); +// if (hset === HSSet.skill) talComp.updateCur(TriType.SKILL); +// } +// /**********************天赋处理*************************************************************************/ +// // 根据技能类型执行不同逻辑 +// if (config.SType === SType.heal) { +// return this.executeHealSkill(casterEntity, s_uuid, heroView, hset); +// } else if (config.SType === SType.shield) { +// return this.executeShieldSkill(casterEntity, s_uuid, heroView, hset); +// } else if (config.SType === SType.buff) { +// return this.executeBuffSkill(casterEntity, s_uuid, heroView, hset); +// } - // 获取目标位置(伤害技能) - let targets = this.sTargets(heroView, s_uuid); - if (targets.length === 0) { - mLogger.warn(this.debugMode, 'SACastSystem', "[SACastSystem] 没有找到有效目标"); - return false; - } - // 2.1 普通攻击逻辑 - if (hset === HSSet.atk){ - let delay = GameConst.Battle.SKILL_CAST_DELAY - let ext_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); - heroView.scheduleOnce(() => { - this.createSkill(s_uuid, heroView,targets,ext_dmg); - }, delay); - //风怒wfuny 只针对 普通攻击起效 - if (heroAttrs.useCountTal(TalEffet.WFUNY)){ - let ext2_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); - let delay = GameConst.Battle.SKILL_CAST_DELAY - heroView.playSkillEffect(s_uuid); - //需要再添加 风怒动画 - heroView.scheduleOnce(() => { - this.createSkill(s_uuid, heroView,targets,ext2_dmg); - },delay); - } - } - // 2.2 技能攻击逻辑 - if(hset === HSSet.skill){ - let delay = GameConst.Battle.SKILL_CAST_DELAY - let ext_dmg = heroAttrs.useCountValTal(TalEffet.SKILL_DMG); - heroView.scheduleOnce(() => { - this.createSkill(s_uuid, heroView,targets,ext_dmg); - }, delay); - // 双技能 只针对 技能起效 - if(heroAttrs.useCountTal(TalEffet.D_SKILL)){ - let ext2_dmg = heroAttrs.useCountValTal(TalEffet.SKILL_DMG); - let delay = GameConst.Battle.SKILL_CAST_DELAY - heroView.playSkillEffect(s_uuid); - //需要再添加 双技能动画 - heroView.scheduleOnce(() => { - this.createSkill(s_uuid, heroView,targets,ext2_dmg); - },delay); - } - } - // 2.3 必杀技能逻辑 - if(hset === HSSet.max){ - let delay = GameConst.Battle.SKILL_CAST_DELAY - heroView.playSkillEffect(s_uuid); - //需要再添加 最大伤害动画 - heroView.scheduleOnce(() => { - this.createSkill(s_uuid, heroView,targets); - },delay); - } +// // 获取目标位置(伤害技能) +// let targets = this.sTargets(heroView, s_uuid); +// if (targets.length === 0) { +// mLogger.warn(this.debugMode, 'SACastSystem', "[SACastSystem] 没有找到有效目标"); +// return false; +// } +// // 2.1 普通攻击逻辑 +// if (hset === HSSet.atk){ +// let delay = GameConst.Battle.SKILL_CAST_DELAY +// let ext_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); +// heroView.scheduleOnce(() => { +// this.createSkill(s_uuid, heroView,targets,ext_dmg); +// }, delay); +// //风怒wfuny 只针对 普通攻击起效 +// if (heroAttrs.useCountTal(TalEffet.WFUNY)){ +// let ext2_dmg = heroAttrs.useCountValTal(TalEffet.ATK_DMG); +// let delay = GameConst.Battle.SKILL_CAST_DELAY +// heroView.playSkillEffect(s_uuid); +// //需要再添加 风怒动画 +// heroView.scheduleOnce(() => { +// this.createSkill(s_uuid, heroView,targets,ext2_dmg); +// },delay); +// } +// } +// // 2.2 技能攻击逻辑 +// if(hset === HSSet.skill){ +// let delay = GameConst.Battle.SKILL_CAST_DELAY +// let ext_dmg = heroAttrs.useCountValTal(TalEffet.SKILL_DMG); +// heroView.scheduleOnce(() => { +// this.createSkill(s_uuid, heroView,targets,ext_dmg); +// }, delay); +// // 双技能 只针对 技能起效 +// if(heroAttrs.useCountTal(TalEffet.D_SKILL)){ +// let ext2_dmg = heroAttrs.useCountValTal(TalEffet.SKILL_DMG); +// let delay = GameConst.Battle.SKILL_CAST_DELAY +// heroView.playSkillEffect(s_uuid); +// //需要再添加 双技能动画 +// heroView.scheduleOnce(() => { +// this.createSkill(s_uuid, heroView,targets,ext2_dmg); +// },delay); +// } +// } +// // 2.3 必杀技能逻辑 +// if(hset === HSSet.max){ +// let delay = GameConst.Battle.SKILL_CAST_DELAY +// heroView.playSkillEffect(s_uuid); +// //需要再添加 最大伤害动画 +// heroView.scheduleOnce(() => { +// this.createSkill(s_uuid, heroView,targets); +// },delay); +// } - return true; - } +// return true; +// } - /** - * 创建技能实体 - */ - private createSkill(s_uuid: number, caster: HeroViewComp,targets:Vec3[]=[],ext_dmg:number=0) { - // 检查节点有效性 - if (!caster.node || !caster.node.isValid) { - mLogger.warn(this.debugMode, 'SACastSystem', "[SACastSystem] 施法者节点无效"); - return; - } +// /** +// * 创建技能实体 +// */ +// private createSkill(s_uuid: number, caster: HeroViewComp,targets:Vec3[]=[],ext_dmg:number=0) { +// // 检查节点有效性 +// if (!caster.node || !caster.node.isValid) { +// mLogger.warn(this.debugMode, 'SACastSystem', "[SACastSystem] 施法者节点无效"); +// return; +// } - // 获取场景节点 - const parent = caster.node.parent; - if (!parent) { - mLogger.warn(this.debugMode, 'SACastSystem', "[SACastSystem] 场景节点无效"); - return; - } +// // 获取场景节点 +// const parent = caster.node.parent; +// if (!parent) { +// mLogger.warn(this.debugMode, 'SACastSystem', "[SACastSystem] 场景节点无效"); +// return; +// } - // 创建技能实体 - const skill = ecs.getEntity(Skill); +// // 创建技能实体 +// const skill = ecs.getEntity(Skill); - // 获取施法者位置作为起始位置 - const startPos = caster.node.position.clone(); +// // 获取施法者位置作为起始位置 +// const startPos = caster.node.position.clone(); - const targetPos = targets[0]; // 使用第一个目标位置 - // mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem]: ${s_uuid}, 起始位置: ${startPos}, 目标位置: ${targetPos}`); - // 加载技能实体(包括预制体、组件初始化等) - skill.load(startPos, parent, s_uuid, targetPos, caster,ext_dmg); +// const targetPos = targets[0]; // 使用第一个目标位置 +// // mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem]: ${s_uuid}, 起始位置: ${startPos}, 目标位置: ${targetPos}`); +// // 加载技能实体(包括预制体、组件初始化等) +// skill.load(startPos, parent, s_uuid, targetPos, caster,ext_dmg); - } - /** - * 选择目标位置 - */ - private sTargets(caster: HeroViewComp, s_uuid: number): Vec3[] { - const heroAttrs = caster.ent.get(HeroAttrsComp); - if (!heroAttrs) return []; - const config = SkillSet[s_uuid]; - if (!config) return this.sDefaultTargets(caster, heroAttrs.fac); - const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, config.t_num ?? 1); - const targets = this.sDamageTargets(caster, config, maxTargets); - if (targets.length === 0) { - targets.push(...this.sDefaultTargets(caster, heroAttrs.fac)); - } - return targets; - } +// } +// /** +// * 选择目标位置 +// */ +// private sTargets(caster: HeroViewComp, s_uuid: number): Vec3[] { +// const heroAttrs = caster.ent.get(HeroAttrsComp); +// if (!heroAttrs) return []; +// const config = SkillSet[s_uuid]; +// if (!config) return this.sDefaultTargets(caster, heroAttrs.fac); +// const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, config.t_num ?? 1); +// const targets = this.sDamageTargets(caster, config, maxTargets); +// if (targets.length === 0) { +// targets.push(...this.sDefaultTargets(caster, heroAttrs.fac)); +// } +// return targets; +// } - /** - * 选择伤害技能目标 - */ - private sDamageTargets(caster: HeroViewComp, config: SkillConfig, maxTargets: number): Vec3[] { - const targets: Vec3[] = []; - const heroAttrs = caster.ent.get(HeroAttrsComp); - if (!heroAttrs) return targets; +// /** +// * 选择伤害技能目标 +// */ +// private sDamageTargets(caster: HeroViewComp, config: SkillConfig, maxTargets: number): Vec3[] { +// const targets: Vec3[] = []; +// const heroAttrs = caster.ent.get(HeroAttrsComp); +// if (!heroAttrs) return targets; - const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); - const enemyPositions = this.findNearbyEnemies(caster, heroAttrs.fac, range); +// const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); +// const enemyPositions = this.findNearbyEnemies(caster, heroAttrs.fac, range); - // 选择最多maxTargets个目标 - for (let i = 0; i < Math.min(maxTargets, enemyPositions.length); i++) { - targets.push(enemyPositions[i]); - } +// // 选择最多maxTargets个目标 +// for (let i = 0; i < Math.min(maxTargets, enemyPositions.length); i++) { +// targets.push(enemyPositions[i]); +// } - // 如果没有找到敌人,使用默认位置 - if (targets.length === 0) { - targets.push(...this.sDefaultTargets(caster, heroAttrs.fac)); - } +// // 如果没有找到敌人,使用默认位置 +// if (targets.length === 0) { +// targets.push(...this.sDefaultTargets(caster, heroAttrs.fac)); +// } - return targets; - } +// return targets; +// } - /** - * 选择默认目标 - */ - private sDefaultTargets(caster: HeroViewComp, fac: number): Vec3[] { - const targets: Vec3[] = []; - const defaultX = fac === 0 ? GameConst.Battle.DEFAULT_TARGET_X_RIGHT : GameConst.Battle.DEFAULT_TARGET_X_LEFT; - targets.push(v3(defaultX, BoxSet.GAME_LINE, GameConst.Battle.DEFAULT_TARGET_Z)); - return targets; - } +// /** +// * 选择默认目标 +// */ +// private sDefaultTargets(caster: HeroViewComp, fac: number): Vec3[] { +// const targets: Vec3[] = []; +// const defaultX = fac === 0 ? GameConst.Battle.DEFAULT_TARGET_X_RIGHT : GameConst.Battle.DEFAULT_TARGET_X_LEFT; +// targets.push(v3(defaultX, BoxSet.GAME_LINE, GameConst.Battle.DEFAULT_TARGET_Z)); +// return targets; +// } - /** - * 查找附近的敌人 - */ - private findNearbyEnemies(caster: HeroViewComp, fac: number, range: number): Vec3[] { - const enemies: Vec3[] = []; - if (!caster || !caster.node) return enemies; - const currentPos = caster.node.position; - const results: { pos: Vec3; dist: number; laneBias: number }[] = []; - ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { - const model = e.get(HeroAttrsComp); - const view = e.get(HeroViewComp); - if (!model || !view || !view.node) return false; - if (model.is_dead) return false; - if (model.fac === fac) return false; - const pos = view.node.position.clone(); - pos.y += GameConst.Battle.SEARCH_Y_OFFSET; - const dist = Math.abs(currentPos.x - pos.x); - if (dist <= range) { - const laneBias = Math.abs(currentPos.y - pos.y); - results.push({ pos: pos, dist, laneBias }); - } - return false; - }); - results.sort((a, b) => { - if (a.laneBias !== b.laneBias) return a.laneBias - b.laneBias; - return a.dist - b.dist; - }); - for (const r of results) enemies.push(r.pos); - return enemies; - } +// /** +// * 查找附近的敌人 +// */ +// private findNearbyEnemies(caster: HeroViewComp, fac: number, range: number): Vec3[] { +// const enemies: Vec3[] = []; +// if (!caster || !caster.node) return enemies; +// const currentPos = caster.node.position; +// const results: { pos: Vec3; dist: number; laneBias: number }[] = []; +// ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { +// const model = e.get(HeroAttrsComp); +// const view = e.get(HeroViewComp); +// if (!model || !view || !view.node) return false; +// if (model.is_dead) return false; +// if (model.fac === fac) return false; +// const pos = view.node.position.clone(); +// pos.y += GameConst.Battle.SEARCH_Y_OFFSET; +// const dist = Math.abs(currentPos.x - pos.x); +// if (dist <= range) { +// const laneBias = Math.abs(currentPos.y - pos.y); +// results.push({ pos: pos, dist, laneBias }); +// } +// return false; +// }); +// results.sort((a, b) => { +// if (a.laneBias !== b.laneBias) return a.laneBias - b.laneBias; +// return a.dist - b.dist; +// }); +// for (const r of results) enemies.push(r.pos); +// return enemies; +// } - /** - * 检查技能攻击范围内是否有敌人 - */ - private hasEnemyInSkillRange(heroView: HeroViewComp, heroAttrs: HeroAttrsComp, skillDistance: number): boolean { - if (!heroView || !heroView.node) return false; +// /** +// * 检查技能攻击范围内是否有敌人 +// */ +// private hasEnemyInSkillRange(heroView: HeroViewComp, heroAttrs: HeroAttrsComp, skillDistance: number): boolean { +// if (!heroView || !heroView.node) return false; - const currentPos = heroView.node.position; - const team = heroAttrs.fac; +// const currentPos = heroView.node.position; +// const team = heroAttrs.fac; - let found = false; - ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { - const model = e.get(HeroAttrsComp); - const view = e.get(HeroViewComp); - if (!view || !view.node) return false; - const distance = Math.abs(currentPos.x - view.node.position.x); - if (model.fac !== team && !model.is_dead) { - if (distance <= skillDistance) { - found = true; - return true; - } - } - }); - return found; - } +// let found = false; +// ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { +// const model = e.get(HeroAttrsComp); +// const view = e.get(HeroViewComp); +// if (!view || !view.node) return false; +// const distance = Math.abs(currentPos.x - view.node.position.x); +// if (model.fac !== team && !model.is_dead) { +// if (distance <= skillDistance) { +// found = true; +// return true; +// } +// } +// }); +// return found; +// } - /** - * 检查技能范围内是否有友军 - */ - private hasTeamInSkillRange(heroView: HeroViewComp, heroAttrs: HeroAttrsComp, skillDistance: number): boolean { - if (!heroView || !heroView.node) return false; +// /** +// * 检查技能范围内是否有友军 +// */ +// private hasTeamInSkillRange(heroView: HeroViewComp, heroAttrs: HeroAttrsComp, skillDistance: number): boolean { +// if (!heroView || !heroView.node) return false; - const currentPos = heroView.node.position; - const team = heroAttrs.fac; +// const currentPos = heroView.node.position; +// const team = heroAttrs.fac; - let found = false; - ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { - const model = e.get(HeroAttrsComp); - const view = e.get(HeroViewComp); - if (!view || !view.node) return false; - const distance = Math.abs(currentPos.x - view.node.position.x); - if (model.fac === team && !model.is_dead) { - if (distance <= skillDistance) { - found = true; - return true; - } - } - }); - return found; - } +// let found = false; +// ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { +// const model = e.get(HeroAttrsComp); +// const view = e.get(HeroViewComp); +// if (!view || !view.node) return false; +// const distance = Math.abs(currentPos.x - view.node.position.x); +// if (model.fac === team && !model.is_dead) { +// if (distance <= skillDistance) { +// found = true; +// return true; +// } +// } +// }); +// return found; +// } - /** - * 检查Buff技能是否有目标 - */ - private hasBuffTarget(heroView: HeroViewComp, heroAttrs: HeroAttrsComp, skillDistance: number, tGroup: TGroup): boolean { - if (tGroup === TGroup.Self) return true; // 自身Buff总是可以释放 +// /** +// * 检查Buff技能是否有目标 +// */ +// private hasBuffTarget(heroView: HeroViewComp, heroAttrs: HeroAttrsComp, skillDistance: number, tGroup: TGroup): boolean { +// if (tGroup === TGroup.Self) return true; // 自身Buff总是可以释放 - // 如果是团队Buff,检查范围内是否有队友 - if (tGroup === TGroup.Team || tGroup === TGroup.Ally) { - return this.hasTeamInSkillRange(heroView, heroAttrs, skillDistance); - } +// // 如果是团队Buff,检查范围内是否有队友 +// if (tGroup === TGroup.Team || tGroup === TGroup.Ally) { +// return this.hasTeamInSkillRange(heroView, heroAttrs, skillDistance); +// } - return false; - } +// return false; +// } - /** - * 执行Buff技能 - */ - private executeBuffSkill(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp, hset: HSSet): boolean { - const hAttrsCom = casterEntity.get(HeroAttrsComp); - const config = SkillSet[s_uuid]; - if (!config || !config.buffs || config.buffs.length === 0) return false; +// /** +// * 执行Buff技能 +// */ +// private executeBuffSkill(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp, hset: HSSet): boolean { +// const hAttrsCom = casterEntity.get(HeroAttrsComp); +// const config = SkillSet[s_uuid]; +// if (!config || !config.buffs || config.buffs.length === 0) return false; - const targets = this.sBuffTargets(casterEntity, heroView, hAttrsCom, config); - if (targets.length === 0) return false; +// const targets = this.sBuffTargets(casterEntity, heroView, hAttrsCom, config); +// if (targets.length === 0) return false; - const delay = GameConst.Battle.SKILL_CAST_DELAY; +// const delay = GameConst.Battle.SKILL_CAST_DELAY; - heroView.scheduleOnce(() => { - for (const targetEntity of targets) { - const targetAttrs = targetEntity.get(HeroAttrsComp); - if (!targetAttrs) continue; +// heroView.scheduleOnce(() => { +// for (const targetEntity of targets) { +// const targetAttrs = targetEntity.get(HeroAttrsComp); +// if (!targetAttrs) continue; - // 应用所有配置的Buff - for (const buffConf of config.buffs) { - // 检查概率 - if (buffConf.chance >= 1 || Math.random() < buffConf.chance) { - targetAttrs.addBuff(buffConf); - mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem] Buff生效: 施法者=${casterEntity.get(HeroAttrsComp)?.hero_name}, 技能=${config.name}, 目标=${targetAttrs.hero_name}, Buff类型=${buffConf.buff}, 值=${buffConf.value}`); - } - } - } - }, delay); +// // 应用所有配置的Buff +// for (const buffConf of config.buffs) { +// // 检查概率 +// if (buffConf.chance >= 1 || Math.random() < buffConf.chance) { +// targetAttrs.addBuff(buffConf); +// mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem] Buff生效: 施法者=${casterEntity.get(HeroAttrsComp)?.hero_name}, 技能=${config.name}, 目标=${targetAttrs.hero_name}, Buff类型=${buffConf.buff}, 值=${buffConf.value}`); +// } +// } +// } +// }, delay); - return true; - } +// return true; +// } - /** - * 选择Buff目标 - */ - private sBuffTargets(casterEntity: ecs.Entity, casterView: HeroViewComp, heroAttrs: HeroAttrsComp, config: SkillConfig): ecs.Entity[] { - const targets: ecs.Entity[] = []; - const tGroup = config.TGroup; +// /** +// * 选择Buff目标 +// */ +// private sBuffTargets(casterEntity: ecs.Entity, casterView: HeroViewComp, heroAttrs: HeroAttrsComp, config: SkillConfig): ecs.Entity[] { +// const targets: ecs.Entity[] = []; +// const tGroup = config.TGroup; - // 1. 自身 - if (tGroup === TGroup.Self) { - targets.push(casterEntity); - return targets; - } +// // 1. 自身 +// if (tGroup === TGroup.Self) { +// targets.push(casterEntity); +// return targets; +// } - // 2. 团队/友军 - if (tGroup === TGroup.Team || tGroup === TGroup.Ally) { - const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, Number(config.t_num ?? 1)); - const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); +// // 2. 团队/友军 +// if (tGroup === TGroup.Team || tGroup === TGroup.Ally) { +// const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, Number(config.t_num ?? 1)); +// const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); - ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).forEach(e => { - const model = e.get(HeroAttrsComp); - const view = e.get(HeroViewComp); - if (!model || !view || !view.node) return; - if (model.fac !== heroAttrs.fac) return; // 必须是同阵营 - if (model.is_dead) return; +// ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).forEach(e => { +// const model = e.get(HeroAttrsComp); +// const view = e.get(HeroViewComp); +// if (!model || !view || !view.node) return; +// if (model.fac !== heroAttrs.fac) return; // 必须是同阵营 +// if (model.is_dead) return; - const distance = Math.abs(casterView.node.position.x - view.node.position.x); - if (distance <= range) { - targets.push(e); - } - }); +// const distance = Math.abs(casterView.node.position.x - view.node.position.x); +// if (distance <= range) { +// targets.push(e); +// } +// }); - return targets.slice(0, maxTargets); - } +// return targets.slice(0, maxTargets); +// } - return targets; - } +// return targets; +// } - /** - * 执行治疗技能 - */ - private executeHealSkill(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp, hset: HSSet): boolean { - const hAttrsCom = casterEntity.get(HeroAttrsComp); - const config = SkillSet[s_uuid]; - if (!config) return false; +// /** +// * 执行治疗技能 +// */ +// private executeHealSkill(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp, hset: HSSet): boolean { +// const hAttrsCom = casterEntity.get(HeroAttrsComp); +// const config = SkillSet[s_uuid]; +// if (!config) return false; - const targets = this.sHealTargets(heroView, hAttrsCom, config); - if (targets.length === 0) return false; +// const targets = this.sHealTargets(heroView, hAttrsCom, config); +// if (targets.length === 0) return false; - const healAmount = config.ap * hAttrsCom.Attrs[Attrs.HP_MAX]/100; - const delay = GameConst.Battle.SKILL_CAST_DELAY; +// const healAmount = config.ap * hAttrsCom.Attrs[Attrs.HP_MAX]/100; +// const delay = GameConst.Battle.SKILL_CAST_DELAY; - heroView.scheduleOnce(() => { - for (const targetEntity of targets) { - const targetAttrs = targetEntity.get(HeroAttrsComp); - const targetView = targetEntity.get(HeroViewComp); - if (!targetAttrs || !targetView) continue; +// heroView.scheduleOnce(() => { +// for (const targetEntity of targets) { +// const targetAttrs = targetEntity.get(HeroAttrsComp); +// const targetView = targetEntity.get(HeroViewComp); +// if (!targetAttrs || !targetView) continue; - targetAttrs.add_hp(healAmount, true); - targetView.health(healAmount); - mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem] 治疗生效: 施法者=${casterEntity.get(HeroAttrsComp)?.hero_name}, 技能=${config.name}, 目标=${targetAttrs.hero_name}, 治疗量=${healAmount}`); - } - }, delay); +// targetAttrs.add_hp(healAmount, true); +// targetView.health(healAmount); +// mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem] 治疗生效: 施法者=${casterEntity.get(HeroAttrsComp)?.hero_name}, 技能=${config.name}, 目标=${targetAttrs.hero_name}, 治疗量=${healAmount}`); +// } +// }, delay); - return true; - } +// return true; +// } - /** - * 执行护盾技能 - */ - private executeShieldSkill(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp, hset: HSSet): boolean { - const hAttrsCom = casterEntity.get(HeroAttrsComp); - const config = SkillSet[s_uuid]; - if (!config) return false; +// /** +// * 执行护盾技能 +// */ +// private executeShieldSkill(casterEntity: ecs.Entity, s_uuid: number, heroView: HeroViewComp, hset: HSSet): boolean { +// const hAttrsCom = casterEntity.get(HeroAttrsComp); +// const config = SkillSet[s_uuid]; +// if (!config) return false; - const targets = this.sShieldTargets(heroView, hAttrsCom, config); - if (targets.length === 0) return false; +// const targets = this.sShieldTargets(heroView, hAttrsCom, config); +// if (targets.length === 0) return false; - const shieldAmount = config.ap * hAttrsCom.Attrs[Attrs.HP_MAX]/100; - const delay = GameConst.Battle.SKILL_CAST_DELAY; +// const shieldAmount = config.ap * hAttrsCom.Attrs[Attrs.HP_MAX]/100; +// const delay = GameConst.Battle.SKILL_CAST_DELAY; - heroView.scheduleOnce(() => { - for (const targetEntity of targets) { - const targetAttrs = targetEntity.get(HeroAttrsComp); - const targetView = targetEntity.get(HeroViewComp); - if (!targetAttrs || !targetView) continue; +// heroView.scheduleOnce(() => { +// for (const targetEntity of targets) { +// const targetAttrs = targetEntity.get(HeroAttrsComp); +// const targetView = targetEntity.get(HeroViewComp); +// if (!targetAttrs || !targetView) continue; - targetAttrs.add_shield(shieldAmount, true); - targetView.add_shield(shieldAmount); - mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem] 护盾生效: 施法者=${casterEntity.get(HeroAttrsComp)?.hero_name}, 技能=${config.name}, 目标=${targetAttrs.hero_name}, 护盾量=${shieldAmount}`); - } - }, delay); +// targetAttrs.add_shield(shieldAmount, true); +// targetView.add_shield(shieldAmount); +// mLogger.log(this.debugMode, 'SACastSystem', `[SACastSystem] 护盾生效: 施法者=${casterEntity.get(HeroAttrsComp)?.hero_name}, 技能=${config.name}, 目标=${targetAttrs.hero_name}, 护盾量=${shieldAmount}`); +// } +// }, delay); - return true; - } +// return true; +// } - /** - * 选择治疗目标 - */ - private sHealTargets(caster: HeroViewComp, heroAttrs: HeroAttrsComp, config: SkillConfig): ecs.Entity[] { - const targets: ecs.Entity[] = []; - const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, Number(config.t_num ?? 1)); - const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); +// /** +// * 选择治疗目标 +// */ +// private sHealTargets(caster: HeroViewComp, heroAttrs: HeroAttrsComp, config: SkillConfig): ecs.Entity[] { +// const targets: ecs.Entity[] = []; +// const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, Number(config.t_num ?? 1)); +// const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); - ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).forEach(e => { - const model = e.get(HeroAttrsComp); - const view = e.get(HeroViewComp); - if (!model || !view || !view.node) return; - if (model.fac !== heroAttrs.fac) return; - if (model.is_dead) return; +// ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).forEach(e => { +// const model = e.get(HeroAttrsComp); +// const view = e.get(HeroViewComp); +// if (!model || !view || !view.node) return; +// if (model.fac !== heroAttrs.fac) return; +// if (model.is_dead) return; - const distance = Math.abs(caster.node.position.x - view.node.position.x); - if (distance <= range) { - targets.push(e); - } - }); +// const distance = Math.abs(caster.node.position.x - view.node.position.x); +// if (distance <= range) { +// targets.push(e); +// } +// }); - targets.sort((a, b) => { - const attrsA = a.get(HeroAttrsComp); - const attrsB = b.get(HeroAttrsComp); - if (!attrsA || !attrsB) return 0; - return attrsA.hp - attrsB.hp; - }); +// targets.sort((a, b) => { +// const attrsA = a.get(HeroAttrsComp); +// const attrsB = b.get(HeroAttrsComp); +// if (!attrsA || !attrsB) return 0; +// return attrsA.hp - attrsB.hp; +// }); - return targets.slice(0, maxTargets); - } +// return targets.slice(0, maxTargets); +// } - /** - * 选择护盾目标 - */ - private sShieldTargets(caster: HeroViewComp, heroAttrs: HeroAttrsComp, config: SkillConfig): ecs.Entity[] { - const targets: ecs.Entity[] = []; - const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, Number(config.t_num ?? 1)); - const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); +// /** +// * 选择护盾目标 +// */ +// private sShieldTargets(caster: HeroViewComp, heroAttrs: HeroAttrsComp, config: SkillConfig): ecs.Entity[] { +// const targets: ecs.Entity[] = []; +// const maxTargets = Math.max(GameConst.Skill.MIN_TARGET_COUNT, Number(config.t_num ?? 1)); +// const range = Number(config.dis ?? GameConst.Battle.DEFAULT_SEARCH_RANGE); - ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).forEach(e => { - const model = e.get(HeroAttrsComp); - const view = e.get(HeroViewComp); - if (!model || !view || !view.node) return; - if (model.fac !== heroAttrs.fac) return; - if (model.is_dead) return; +// ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).forEach(e => { +// const model = e.get(HeroAttrsComp); +// const view = e.get(HeroViewComp); +// if (!model || !view || !view.node) return; +// if (model.fac !== heroAttrs.fac) return; +// if (model.is_dead) return; - const distance = Math.abs(caster.node.position.x - view.node.position.x); - if (distance <= range) { - targets.push(e); - } - }); +// const distance = Math.abs(caster.node.position.x - view.node.position.x); +// if (distance <= range) { +// targets.push(e); +// } +// }); - return targets.slice(0, maxTargets); - } +// return targets.slice(0, maxTargets); +// } - /** - * 根据位置查找实体 - */ - private findEntityAtPosition(pos: Vec3): ecs.Entity | null { - let foundEntity: ecs.Entity | null = null; - ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { - const view = e.get(HeroViewComp); - if (!view || !view.node) return false; - const distance = Vec3.distance(pos, view.node.position); - if (distance < 50) { - foundEntity = e; - return true; - } - return false; - }); - return foundEntity; - } +// /** +// * 根据位置查找实体 +// */ +// private findEntityAtPosition(pos: Vec3): ecs.Entity | null { +// let foundEntity: ecs.Entity | null = null; +// ecs.query(ecs.allOf(HeroAttrsComp, HeroViewComp)).some(e => { +// const view = e.get(HeroViewComp); +// if (!view || !view.node) return false; +// const distance = Vec3.distance(pos, view.node.position); +// if (distance < 50) { +// foundEntity = e; +// return true; +// } +// return false; +// }); +// return foundEntity; +// } -} \ No newline at end of file +// } \ No newline at end of file diff --git a/assets/script/game/map/MGetComp.ts.meta b/assets/script/game/hero/SCastSystem.ts.meta similarity index 70% rename from assets/script/game/map/MGetComp.ts.meta rename to assets/script/game/hero/SCastSystem.ts.meta index 136eb4c8..9da22223 100644 --- a/assets/script/game/map/MGetComp.ts.meta +++ b/assets/script/game/hero/SCastSystem.ts.meta @@ -2,7 +2,7 @@ "ver": "4.0.24", "importer": "typescript", "imported": true, - "uuid": "7ddd121f-1918-4eed-ad9b-ebaa2fe5b606", + "uuid": "ed36ef97-521c-4570-ba81-b6ec2e6b6eeb", "files": [], "subMetas": {}, "userData": {} diff --git a/assets/script/game/map/HInfoComp.ts b/assets/script/game/map/HInfoComp.ts index 43abd82a..cdb5166a 100644 --- a/assets/script/game/map/HInfoComp.ts +++ b/assets/script/game/map/HInfoComp.ts @@ -99,13 +99,9 @@ export class HInfoComp extends CCComp { this.type_node.getComponent(Label).string=HTypeName[HeroInfo[uuid].type] this.ap_node.getChildByName("num").getComponent(Label).string=HeroInfo[uuid].ap.toString() this.hp_node.getChildByName("num").getComponent(Label).string=HeroInfo[uuid].hp.toString() - this.def_node.getChildByName("num").getComponent(Label).string=HeroInfo[uuid].def.toString() - this.mp_node.getChildByName("num").getComponent(Label).string=HeroInfo[uuid].mp.toString() let bar_num=getPreAttr(uuid) this.ap_node.getChildByName("bar").getComponent(ProgressBar).progress=bar_num.ap this.hp_node.getChildByName("bar").getComponent(ProgressBar).progress=bar_num.hp - this.def_node.getChildByName("bar").getComponent(ProgressBar).progress=bar_num.def - this.mp_node.getChildByName("bar").getComponent(ProgressBar).progress=bar_num.mp // 更新技能图标 this.updateSkillIcon(this.skill1_node, skill1.icon); @@ -255,7 +251,6 @@ export class HInfoComp extends CCComp { // 更新数据 this.h_uuid = nextHero; - smc.updateFihgtHero(nextHero) this.update_data(nextHero); // 执行平滑移动动画 this.moveHeroesRight(); @@ -275,7 +270,6 @@ export class HInfoComp extends CCComp { // 更新数据 this.h_uuid = prevHero; - smc.updateFihgtHero(prevHero) this.update_data(prevHero); // 执行平滑移动动画 this.moveHeroesLeft(); @@ -304,11 +298,7 @@ export class HInfoComp extends CCComp { this.show_lock() this.close_buy() } - start_mission() { - mLogger.log(this.debugMode, 'HInfoComp', "start_mission") - oops.message.dispatchEvent(GameEvent.MissionStart, {}) - this.node.active=false; - } + moveHeroesLeft() { // 取消前一个待处理的异步操作 if (this.moveTimeoutId !== null) { diff --git a/assets/script/game/map/MGetComp.ts b/assets/script/game/map/MGetComp.ts deleted file mode 100644 index 62178759..00000000 --- a/assets/script/game/map/MGetComp.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { _decorator, Node, Label } 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 { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; -import { GameEvent } from "../common/config/GameEvent"; -import { smc } from "../common/SingletonModuleComp"; - -const { ccclass, property } = _decorator; - -/** 视图层对象 */ -@ccclass('MGetsCompComp') -@ecs.register('MGetsComp', false) -export class MGetsCompComp extends CCComp { - get_uuid:number=0; - get_num:number=0; - start() { - - } - - onDestroy() { - - } - - - - /** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */ - reset() { - this.node.destroy(); - } -} diff --git a/assets/script/game/map/MissionCardComp.ts b/assets/script/game/map/MissionCardComp.ts index 9acdec02..67176035 100644 --- a/assets/script/game/map/MissionCardComp.ts +++ b/assets/script/game/map/MissionCardComp.ts @@ -6,14 +6,8 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O import { GameEvent } from "../common/config/GameEvent"; import { smc } from "../common/SingletonModuleComp"; import { CardType, FightSet, CardKind } from "../common/config/GameSet"; -import { getCardOptions, ICardInfo } from "../common/config/CardSet"; -import { TalComp } from "../hero/TalComp"; -import { HeroSkillsComp } from "../hero/HeroSkills"; import { HeroAttrsComp } from "../hero/HeroAttrsComp"; -import { BuffConf } from "../common/config/SkillSet"; -import { BType } from "../common/config/HeroAttrs"; -import { AttrCards, PotionCards } from "../common/config/AttrSet"; -import { AttrsType } from "../common/config/HeroAttrs"; + import { HeroMasterComp } from "../hero/HeroMasterComp"; @@ -49,10 +43,10 @@ export class MissionCardComp extends CCComp { @property(Node) noStop: Node = null! - card1_data: ICardInfo = null! - card2_data: ICardInfo = null! - card3_data: ICardInfo = null! - card4_data: ICardInfo = null! + // card1_data: ICardInfo = null! + // card2_data: ICardInfo = null! + // card3_data: ICardInfo = null! + // card4_data: ICardInfo = null! // 当前卡片类型 (用于特殊获取模式) curCardType: CardType | null = null; @@ -271,22 +265,22 @@ export class MissionCardComp extends CCComp { // 使用 CardSet 的 getCardOptions 获取卡牌 // 这里我们要获取 4 张卡牌 - const options = getCardOptions(level, 4, [], forcedType, preferredAttrs); - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 获取到的卡牌选项: ${JSON.stringify(options)}`); - // 更新卡片数据 - if (options.length > 0) this.updateCardData(1, options[0]); - if (options.length > 1) this.updateCardData(2, options[1]); - if (options.length > 2) this.updateCardData(3, options[2]); - if (options.length > 3) this.updateCardData(4, options[3]); + // const options = getCardOptions(level, 4, [], forcedType, preferredAttrs); + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 获取到的卡牌选项: ${JSON.stringify(options)}`); + // // 更新卡片数据 + // if (options.length > 0) this.updateCardData(1, options[0]); + // if (options.length > 1) this.updateCardData(2, options[1]); + // if (options.length > 2) this.updateCardData(3, options[2]); + // if (options.length > 3) this.updateCardData(4, options[3]); - // 如果获取不足4张,隐藏多余的卡片节点 (UI可能需要处理空数据) - if (options.length < 4 && this.card4) this.card4.active = false; - if (options.length < 3 && this.card3) this.card3.active = false; - if (options.length < 2 && this.card2) this.card2.active = false; - if (options.length < 1 && this.card1) this.card1.active = false; + // // 如果获取不足4张,隐藏多余的卡片节点 (UI可能需要处理空数据) + // if (options.length < 4 && this.card4) this.card4.active = false; + // if (options.length < 3 && this.card3) this.card3.active = false; + // if (options.length < 2 && this.card2) this.card2.active = false; + // if (options.length < 1 && this.card1) this.card1.active = false; } - updateCardInfo(card:Node, data: ICardInfo){ + updateCardInfo(card:Node, data: any){ if(!card) return card.active = true; // 隐藏选中状态 @@ -405,7 +399,7 @@ export class MissionCardComp extends CCComp { } } - updateCardData(index: number, data: ICardInfo) { + updateCardData(index: number, data: any) { // 使用动态属性访问 (this as any)[`card${index}_data`] = data; this.updateCardInfo((this as any)[`card${index}`], data); @@ -418,7 +412,7 @@ export class MissionCardComp extends CCComp { if (this.hasSelected) return; // 动态获取数据和节点 - let selectedData: ICardInfo = (this as any)[`card${_index}_data`]; + let selectedData: any; let selectedCardNode: Node | null = (this as any)[`card${_index}`]; if (selectedData && selectedCardNode) { @@ -446,126 +440,126 @@ export class MissionCardComp extends CCComp { .to(0.1, { scale: new Vec3(1.1, 1.1, 1.1) }) .to(0.1, { scale: new Vec3(1, 1, 1) }) .delay(0.5) - .call(() => { - // 使用 HeroMasterComp 查找主角实体 - // @ts-ignore - const entities = ecs.query(ecs.allOf(HeroMasterComp)); - let role = entities.length > 0 ? entities[0] : null; + // .call(() => { + // // 使用 HeroMasterComp 查找主角实体 + // // @ts-ignore + // const entities = ecs.query(ecs.allOf(HeroMasterComp)); + // let role = entities.length > 0 ? entities[0] : null; - if (!role) { - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 未找到挂载 HeroMasterComp 的主角实体`); - } else { - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 成功定位主角实体: ${role.eid}`); - } + // if (!role) { + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 未找到挂载 HeroMasterComp 的主角实体`); + // } else { + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 成功定位主角实体: ${role.eid}`); + // } - if (role) { - switch (selectedData.type) { - case CardType.Talent: - smc.addTalentRecord(selectedData.uuid); - // 直接调用 TalComp 添加天赋 - const talComp = role.get(TalComp); - if (talComp) { - const beforeCount = Object.keys(talComp.Tals).length; - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Talent Before: Count=${beforeCount}, Tals=${JSON.stringify(talComp.Tals)}`); - talComp.addTal(selectedData.uuid); - const afterCount = Object.keys(talComp.Tals).length; - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Talent After: Count=${afterCount}, Added=${selectedData.uuid}, Tals=${JSON.stringify(talComp.Tals)}`); - } - break; - case CardType.Skill: - smc.addSkillRecord(selectedData.uuid); - // 直接调用 HeroSkillsComp 添加技能 - const skillComp = role.get(HeroSkillsComp); - if (skillComp) { - const beforeCount = Object.keys(skillComp.skills).length; - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Skill Before: Count=${beforeCount}, Skills=${JSON.stringify(skillComp.skills)}`); - skillComp.addSkill(selectedData.uuid); - const afterCount = Object.keys(skillComp.skills).length; - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Skill After: Count=${afterCount}, Added=${selectedData.uuid}, Skills=${JSON.stringify(skillComp.skills)}`); - } - break; - case CardType.Partner: - // 伙伴是召唤新实体,依然适合用事件,或者直接调用 summon 方法 - oops.message.dispatchEvent(GameEvent.CallFriend, { uuid: selectedData.uuid }); - break; - case CardType.Potion: - // 药水直接作用于 HeroAttrsComp - const attrsComp = role.get(HeroAttrsComp); - if (attrsComp) { - const potion = PotionCards[selectedData.uuid]; - if (potion) { - const beforeVal = attrsComp.Attrs[potion.attr] || 0; - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Potion Before: Attr[${potion.attr}]=${beforeVal}, Attrs=${JSON.stringify(attrsComp.Attrs)}`); + // if (role) { + // switch (selectedData.type) { + // case CardType.Talent: + // smc.addTalentRecord(selectedData.uuid); + // // 直接调用 TalComp 添加天赋 + // const talComp = role.get(TalComp); + // if (talComp) { + // const beforeCount = Object.keys(talComp.Tals).length; + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Talent Before: Count=${beforeCount}, Tals=${JSON.stringify(talComp.Tals)}`); + // talComp.addTal(selectedData.uuid); + // const afterCount = Object.keys(talComp.Tals).length; + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Talent After: Count=${afterCount}, Added=${selectedData.uuid}, Tals=${JSON.stringify(talComp.Tals)}`); + // } + // break; + // case CardType.Skill: + // smc.addSkillRecord(selectedData.uuid); + // // 直接调用 HeroSkillsComp 添加技能 + // const skillComp = role.get(HeroSkillsComp); + // if (skillComp) { + // const beforeCount = Object.keys(skillComp.skills).length; + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Skill Before: Count=${beforeCount}, Skills=${JSON.stringify(skillComp.skills)}`); + // skillComp.addSkill(selectedData.uuid); + // const afterCount = Object.keys(skillComp.skills).length; + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Skill After: Count=${afterCount}, Added=${selectedData.uuid}, Skills=${JSON.stringify(skillComp.skills)}`); + // } + // break; + // case CardType.Partner: + // // 伙伴是召唤新实体,依然适合用事件,或者直接调用 summon 方法 + // oops.message.dispatchEvent(GameEvent.CallFriend, { uuid: selectedData.uuid }); + // break; + // case CardType.Potion: + // // 药水直接作用于 HeroAttrsComp + // const attrsComp = role.get(HeroAttrsComp); + // if (attrsComp) { + // const potion = PotionCards[selectedData.uuid]; + // if (potion) { + // const beforeVal = attrsComp.Attrs[potion.attr] || 0; + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Potion Before: Attr[${potion.attr}]=${beforeVal}, Attrs=${JSON.stringify(attrsComp.Attrs)}`); - const buffConf: BuffConf = { - buff: potion.attr, - value: potion.value, - BType: BType.RATIO, - time: potion.duration, - chance: 1, - }; - attrsComp.addBuff(buffConf); - smc.updateHeroInfo(attrsComp); + // const buffConf: BuffConf = { + // buff: potion.attr, + // value: potion.value, + // BType: BType.RATIO, + // time: potion.duration, + // chance: 1, + // }; + // attrsComp.addBuff(buffConf); + // smc.updateHeroInfo(attrsComp); - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Potion Applied: ${potion.desc}, Value=${potion.value}, Attrs=${JSON.stringify(attrsComp.Attrs)}`); - oops.gui.toast(potion.desc); - } - } - break; - case CardType.Attr: - // 属性卡:使用 addBuff 添加永久属性加成 - const attrCard = AttrCards[selectedData.uuid]; - if (attrCard) { - const attrsComp = role.get(HeroAttrsComp); - if (attrsComp) { - // 记录变更前状态 - const roleBefore = attrsComp.Attrs[attrCard.attr] || 0; + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Potion Applied: ${potion.desc}, Value=${potion.value}, Attrs=${JSON.stringify(attrsComp.Attrs)}`); + // oops.gui.toast(potion.desc); + // } + // } + // break; + // case CardType.Attr: + // // 属性卡:使用 addBuff 添加永久属性加成 + // const attrCard = AttrCards[selectedData.uuid]; + // if (attrCard) { + // const attrsComp = role.get(HeroAttrsComp); + // if (attrsComp) { + // // 记录变更前状态 + // const roleBefore = attrsComp.Attrs[attrCard.attr] || 0; - // 根据属性类型决定 Buff 类型 - // 如果属性本身是 RATIO 型(如暴击率),AttrCards 中的值(如2)应该作为 VALUE 添加(因为 recalculateSingleAttr 会把 VALUE 和 RATIO 相加) - // 但如果属性本身是 VALUE 型(如攻击力),AttrCards 中的值是直接加数值,也应该作为 VALUE 添加 - // 结论:无论属性类型如何,AttrCards 中的配置都是"增加的点数",所以统一使用 BType.VALUE - // 修正:虽然 AttrsType 定义了属性本身的类型,但在 addBuff 中,BType.VALUE 表示"加法叠加",BType.RATIO 表示"乘法叠加" - // 对于数值型属性(如攻击力):BType.VALUE 是 +10,BType.RATIO 是 +10% - // 对于百分比型属性(如暴击率):BType.VALUE 是 +2(%),BType.RATIO 是 +2%(即 *1.02,通常不这么用) - // 所以,AttrCards 配置的值应当被视为"绝对值增量",对应 BType.VALUE + // // 根据属性类型决定 Buff 类型 + // // 如果属性本身是 RATIO 型(如暴击率),AttrCards 中的值(如2)应该作为 VALUE 添加(因为 recalculateSingleAttr 会把 VALUE 和 RATIO 相加) + // // 但如果属性本身是 VALUE 型(如攻击力),AttrCards 中的值是直接加数值,也应该作为 VALUE 添加 + // // 结论:无论属性类型如何,AttrCards 中的配置都是"增加的点数",所以统一使用 BType.VALUE + // // 修正:虽然 AttrsType 定义了属性本身的类型,但在 addBuff 中,BType.VALUE 表示"加法叠加",BType.RATIO 表示"乘法叠加" + // // 对于数值型属性(如攻击力):BType.VALUE 是 +10,BType.RATIO 是 +10% + // // 对于百分比型属性(如暴击率):BType.VALUE 是 +2(%),BType.RATIO 是 +2%(即 *1.02,通常不这么用) + // // 所以,AttrCards 配置的值应当被视为"绝对值增量",对应 BType.VALUE - // 构造永久 Buff (time: 0) - const buffConf: BuffConf = { - buff: attrCard.attr, - value: attrCard.value, - BType: BType.RATIO, // 始终使用 VALUE 类型,代表数值/点数叠加 - time: 0, - chance: 1, - }; + // // 构造永久 Buff (time: 0) + // const buffConf: BuffConf = { + // buff: attrCard.attr, + // value: attrCard.value, + // BType: BType.RATIO, // 始终使用 VALUE 类型,代表数值/点数叠加 + // time: 0, + // chance: 1, + // }; - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Adding Buff: Attr=${attrCard.attr}, Val=${attrCard.value}, Type=VALUE`); - attrsComp.addBuff(buffConf); - // addBuff 内部会自动调用 recalculateSingleAttr 和 updateHeroInfo + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Adding Buff: Attr=${attrCard.attr}, Val=${attrCard.value}, Type=VALUE`); + // attrsComp.addBuff(buffConf); + // // addBuff 内部会自动调用 recalculateSingleAttr 和 updateHeroInfo - const roleAfter = attrsComp.Attrs[attrCard.attr] || 0; - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Attr After: Hero=${roleAfter} (Change: ${roleAfter - roleBefore})`); + // const roleAfter = attrsComp.Attrs[attrCard.attr] || 0; + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] Attr After: Hero=${roleAfter} (Change: ${roleAfter - roleBefore})`); - oops.gui.toast(attrCard.desc); - } - } else { - mLogger.warn(this.debugMode, 'MissionCard', `[MissionCard] 未找到属性卡配置: UUID=${selectedData.uuid}`); - } - break; - } - } else { - mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 主角实体无效,无法应用卡牌效果`); - } + // oops.gui.toast(attrCard.desc); + // } + // } else { + // mLogger.warn(this.debugMode, 'MissionCard', `[MissionCard] 未找到属性卡配置: UUID=${selectedData.uuid}`); + // } + // break; + // } + // } else { + // mLogger.log(this.debugMode, 'MissionCard', `[MissionCard] 主角实体无效,无法应用卡牌效果`); + // } - // 记录已获取的卡牌 - oops.message.dispatchEvent(GameEvent.UpdateMissionGet, { - uuid: selectedData.uuid, - icon: selectedData.icon, - kind: selectedData.kind - }); + // // 记录已获取的卡牌 + // oops.message.dispatchEvent(GameEvent.UpdateMissionGet, { + // uuid: selectedData.uuid, + // icon: selectedData.icon, + // kind: selectedData.kind + // }); - this.close(); - }) + // this.close(); + // }) .start(); } } diff --git a/assets/script/game/map/MissionHomeComp.ts b/assets/script/game/map/MissionHomeComp.ts index e06190cb..2c4fd3db 100644 --- a/assets/script/game/map/MissionHomeComp.ts +++ b/assets/script/game/map/MissionHomeComp.ts @@ -17,7 +17,6 @@ export class MissionHomeComp extends CCComp { protected onLoad(): void { this.on(GameEvent.MissionEnd,this.mission_end,this) - this.on(GameEvent.MissionStart,this.mission_start,this) } /** 视图层逻辑代码分离演示 */ start() { @@ -29,15 +28,17 @@ export class MissionHomeComp extends CCComp { } - + start_mission() { + mLogger.log(this.debugMode, 'MissionHomeComp', "start_mission") + oops.message.dispatchEvent(GameEvent.MissionStart, {}) + this.node.active=false; + } mission_end(){ mLogger.log(this.debugMode, 'MissionHomeComp', "[MissionHomeComp]=>mission_end") this.home_active() } - mission_start(){ - this.node.active=false - } + home_active(){ this.uodate_data() this.node.active=true