xx hai 1 ano
pai
achega
d7a4b0e18f

+ 9 - 0
assets/resources/animation.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "3aeb6bb7-84f3-4499-8d06-df5593bab4b2",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 213 - 0
assets/resources/animation/img_point_1.anim

@@ -0,0 +1,213 @@
+[
+  {
+    "__type__": "cc.AnimationClip",
+    "_name": "img_point_1",
+    "_objFlags": 0,
+    "__editorExtras__": {
+      "embeddedPlayerGroups": []
+    },
+    "_native": "",
+    "sample": 10,
+    "speed": 1,
+    "wrapMode": 22,
+    "enableTrsBlending": false,
+    "_duration": 2,
+    "_hash": 500763545,
+    "_tracks": [
+      {
+        "__id__": 1
+      }
+    ],
+    "_exoticAnimation": null,
+    "_events": [],
+    "_embeddedPlayers": [],
+    "_additiveSettings": {
+      "__id__": 11
+    },
+    "_auxiliaryCurveEntries": []
+  },
+  {
+    "__type__": "cc.animation.VectorTrack",
+    "_binding": {
+      "__type__": "cc.animation.TrackBinding",
+      "path": {
+        "__id__": 2
+      },
+      "proxy": null
+    },
+    "_channels": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 5
+      },
+      {
+        "__id__": 7
+      },
+      {
+        "__id__": 9
+      }
+    ],
+    "_nComponents": 3
+  },
+  {
+    "__type__": "cc.animation.TrackPath",
+    "_paths": [
+      "eulerAngles"
+    ]
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 4
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [
+      0,
+      2
+    ],
+    "_values": [
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      },
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      }
+    ],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 6
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [
+      0,
+      2
+    ],
+    "_values": [
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      },
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      }
+    ],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 8
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [
+      0,
+      2
+    ],
+    "_values": [
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      },
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": -120,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      }
+    ],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 10
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [],
+    "_values": [],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.AnimationClipAdditiveSettings",
+    "enabled": false,
+    "refClip": null
+  }
+]

+ 13 - 0
assets/resources/animation/img_point_1.anim.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "2.0.3",
+  "importer": "animation-clip",
+  "imported": true,
+  "uuid": "df10ff03-a606-40e4-8155-44212b97777d",
+  "files": [
+    ".cconb"
+  ],
+  "subMetas": {},
+  "userData": {
+    "name": "img_point_1"
+  }
+}

+ 213 - 0
assets/resources/animation/img_point_2.anim

@@ -0,0 +1,213 @@
+[
+  {
+    "__type__": "cc.AnimationClip",
+    "_name": "img_point_2",
+    "_objFlags": 0,
+    "__editorExtras__": {
+      "embeddedPlayerGroups": []
+    },
+    "_native": "",
+    "sample": 10,
+    "speed": 1,
+    "wrapMode": 22,
+    "enableTrsBlending": false,
+    "_duration": 2,
+    "_hash": 500763545,
+    "_tracks": [
+      {
+        "__id__": 1
+      }
+    ],
+    "_exoticAnimation": null,
+    "_events": [],
+    "_embeddedPlayers": [],
+    "_additiveSettings": {
+      "__id__": 11
+    },
+    "_auxiliaryCurveEntries": []
+  },
+  {
+    "__type__": "cc.animation.VectorTrack",
+    "_binding": {
+      "__type__": "cc.animation.TrackBinding",
+      "path": {
+        "__id__": 2
+      },
+      "proxy": null
+    },
+    "_channels": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 5
+      },
+      {
+        "__id__": 7
+      },
+      {
+        "__id__": 9
+      }
+    ],
+    "_nComponents": 3
+  },
+  {
+    "__type__": "cc.animation.TrackPath",
+    "_paths": [
+      "eulerAngles"
+    ]
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 4
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [
+      0,
+      2
+    ],
+    "_values": [
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      },
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      }
+    ],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 6
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [
+      0,
+      2
+    ],
+    "_values": [
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      },
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      }
+    ],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 8
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [
+      0,
+      2
+    ],
+    "_values": [
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 0,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      },
+      {
+        "__type__": "cc.RealKeyframeValue",
+        "interpolationMode": 0,
+        "tangentWeightMode": 0,
+        "value": 110,
+        "rightTangent": 0,
+        "rightTangentWeight": 1,
+        "leftTangent": 0,
+        "leftTangentWeight": 1,
+        "easingMethod": 0,
+        "__editorExtras__": {
+          "tangentMode": 0
+        }
+      }
+    ],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.animation.Channel",
+    "_curve": {
+      "__id__": 10
+    }
+  },
+  {
+    "__type__": "cc.RealCurve",
+    "_times": [],
+    "_values": [],
+    "preExtrapolation": 1,
+    "postExtrapolation": 1
+  },
+  {
+    "__type__": "cc.AnimationClipAdditiveSettings",
+    "enabled": false,
+    "refClip": null
+  }
+]

+ 13 - 0
assets/resources/animation/img_point_2.anim.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "2.0.3",
+  "importer": "animation-clip",
+  "imported": true,
+  "uuid": "5e21f12c-d4ba-4eda-a31c-4368ee6a4027",
+  "files": [
+    ".cconb"
+  ],
+  "subMetas": {},
+  "userData": {
+    "name": "img_point_2"
+  }
+}

+ 98 - 114
assets/resources/effect/particle/weiqi/weiqi.plist

@@ -1,116 +1,100 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
-  <dict>
-    <key>angle</key>
-    <integer>360</integer>
-    <key>angleVariance</key>
-    <integer>360</integer>
-    <key>blendFuncDestination</key>
-    <integer>1</integer>
-    <key>blendFuncSource</key>
-    <integer>2</integer>
-    <key>duration</key>
-    <integer>-1</integer>
-    <key>emitterType</key>
-    <integer>0</integer>
-    <key>finishColorAlpha</key>
-    <real>0.8392156862745098</real>
-    <key>finishColorBlue</key>
-    <real>0.07450980392156863</real>
-    <key>finishColorGreen</key>
-    <real>0.6313725490196078</real>
-    <key>finishColorRed</key>
-    <real>0.6784313725490196</real>
-    <key>finishColorVarianceAlpha</key>
-    <integer>0</integer>
-    <key>finishColorVarianceBlue</key>
-    <integer>0</integer>
-    <key>finishColorVarianceGreen</key>
-    <integer>0</integer>
-    <key>finishColorVarianceRed</key>
-    <integer>0</integer>
-    <key>finishParticleSize</key>
-    <real>30.31999969482422</real>
-    <key>finishParticleSizeVariance</key>
-    <integer>0</integer>
-    <key>gravityx</key>
-    <real>0.25</real>
-    <key>gravityy</key>
-    <real>0.8600000143051147</real>
-    <key>maxParticles</key>
-    <integer>200</integer>
-    <key>maxRadius</key>
-    <integer>0</integer>
-    <key>maxRadiusVariance</key>
-    <integer>0</integer>
-    <key>minRadius</key>
-    <integer>0</integer>
-    <key>particleLifespan</key>
-    <real>0.20000000298023224</real>
-    <key>particleLifespanVariance</key>
-    <real>0.5</real>
-    <key>radialAccelVariance</key>
-    <real>65.79000091552734</real>
-    <key>radialAcceleration</key>
-    <real>-671.0499877929688</real>
-    <key>rotatePerSecond</key>
-    <integer>0</integer>
-    <key>rotatePerSecondVariance</key>
-    <integer>0</integer>
-    <key>rotationEnd</key>
-    <real>-47.369998931884766</real>
-    <key>rotationEndVariance</key>
-    <real>-142.11000061035156</real>
-    <key>rotationStart</key>
-    <real>-47.369998931884766</real>
-    <key>rotationStartVariance</key>
-    <integer>0</integer>
-    <key>sourcePositionVariancex</key>
-    <integer>7</integer>
-    <key>sourcePositionVariancey</key>
-    <integer>7</integer>
-    <key>sourcePositionx</key>
-    <real>373.7277526855469</real>
-    <key>sourcePositiony</key>
-    <real>478.40472412109375</real>
-    <key>speed</key>
-    <integer>0</integer>
-    <key>speedVariance</key>
-    <real>190.7899932861328</real>
-    <key>startColorAlpha</key>
-    <real>0.6392156862745098</real>
-    <key>startColorBlue</key>
-    <real>0.33725490196078434</real>
-    <key>startColorGreen</key>
-    <real>0.7843137254901961</real>
-    <key>startColorRed</key>
-    <real>0.792156862745098</real>
-    <key>startColorVarianceAlpha</key>
-    <integer>0</integer>
-    <key>startColorVarianceBlue</key>
-    <integer>0</integer>
-    <key>startColorVarianceGreen</key>
-    <integer>0</integer>
-    <key>startColorVarianceRed</key>
-    <integer>0</integer>
-    <key>startParticleSize</key>
-    <real>3.369999885559082</real>
-    <key>startParticleSizeVariance</key>
-    <integer>50</integer>
-    <key>tangentialAccelVariance</key>
-    <real>65.79000091552734</real>
-    <key>tangentialAcceleration</key>
-    <real>-92.11000061035156</real>
-    <key>positionType</key>
-    <integer>0</integer>
-    <key>rotationIsDir</key>
-    <false/>
-    <key>minRadiusVariance</key>
-    <integer>0</integer>
-    <key>emissionRate</key>
-    <real>999.999985098839</real>
-    <key>spriteFrameUuid</key>
-    <string>24c419ea-63a8-4ea1-a9d0-7fc469489bbc@f9941</string>
-  </dict>
-</plist>
+    <dict>
+        <key>frames</key>
+        <dict>
+            <key>1.png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{76,228},{49,56}}</string>
+                <key>offset</key>
+                <string>{-5,184}</string>
+                <key>rotated</key>
+                <true/>
+                <key>sourceColorRect</key>
+                <string>{{48,0},{49,56}}</string>
+                <key>sourceSize</key>
+                <string>{155,424}</string>
+            </dict>
+            <key>2.png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,228},{35,72}}</string>
+                <key>offset</key>
+                <string>{2,144}</string>
+                <key>rotated</key>
+                <true/>
+                <key>sourceColorRect</key>
+                <string>{{62,32},{35,72}}</string>
+                <key>sourceSize</key>
+                <string>{155,424}</string>
+            </dict>
+            <key>3.png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{142,108},{89,122}}</string>
+                <key>offset</key>
+                <string>{2,97}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{35,54},{89,122}}</string>
+                <key>sourceSize</key>
+                <string>{155,424}</string>
+            </dict>
+            <key>4.png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,2},{93,148}}</string>
+                <key>offset</key>
+                <string>{-5,24}</string>
+                <key>rotated</key>
+                <true/>
+                <key>sourceColorRect</key>
+                <string>{{26,114},{93,148}}</string>
+                <key>sourceSize</key>
+                <string>{155,424}</string>
+            </dict>
+            <key>5.png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{152,2},{97,104}}</string>
+                <key>offset</key>
+                <string>{0,-60}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{29,220},{97,104}}</string>
+                <key>sourceSize</key>
+                <string>{155,424}</string>
+            </dict>
+            <key>6.png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,97},{129,138}}</string>
+                <key>offset</key>
+                <string>{3,-129}</string>
+                <key>rotated</key>
+                <true/>
+                <key>sourceColorRect</key>
+                <string>{{16,272},{129,138}}</string>
+                <key>sourceSize</key>
+                <string>{155,424}</string>
+            </dict>
+        </dict>
+        <key>metadata</key>
+        <dict>
+            <key>format</key>
+            <integer>2</integer>
+            <key>realTextureFileName</key>
+            <string>weiqi.png</string>
+            <key>size</key>
+            <string>{256,512}</string>
+            <key>smartupdate</key>
+            <string>$TexturePacker:SmartUpdate:5f92ed87e4d6db518c77cd871f2a5225$</string>
+            <key>textureFileName</key>
+            <string>weiqi.png</string>
+        </dict>
+    </dict>
+</plist>

+ 282 - 59
assets/resources/effect/particle/weiqi/weiqi.plist.meta

@@ -1,70 +1,293 @@
 {
-  "ver": "1.0.2",
-  "importer": "particle",
+  "ver": "1.0.8",
+  "importer": "sprite-atlas",
   "imported": true,
-  "uuid": "78c8a3c1-99ce-4b26-a2ba-6820f5fd74be",
+  "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9",
   "files": [
-    ".json",
-    ".plist"
+    ".json"
   ],
-  "subMetas": {},
-  "userData": {
-    "totalParticles": 200,
-    "life": 0.20000000298023224,
-    "lifeVar": 0.5,
-    "emissionRate": 999.999985098839,
-    "duration": -1,
-    "srcBlendFactor": 2,
-    "dstBlendFactor": 1,
-    "startColor": {
-      "_val": 2740373706
-    },
-    "startColorVar": {
-      "_val": 0
+  "subMetas": {
+    "c30fb": {
+      "importer": "sprite-frame",
+      "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9@c30fb",
+      "displayName": "",
+      "id": "c30fb",
+      "name": "1",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": true,
+        "offsetX": -5,
+        "offsetY": 184,
+        "trimX": 76,
+        "trimY": 228,
+        "width": 49,
+        "height": 56,
+        "rawWidth": 155,
+        "rawHeight": 424,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [],
+          "indexes": [],
+          "uv": [],
+          "nuv": [],
+          "minPos": [],
+          "maxPos": []
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+        "atlasUuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9"
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
     },
-    "endColor": {
-      "_val": 3591610797
+    "c86cc": {
+      "importer": "sprite-frame",
+      "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9@c86cc",
+      "displayName": "",
+      "id": "c86cc",
+      "name": "2",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": true,
+        "offsetX": 2,
+        "offsetY": 144,
+        "trimX": 2,
+        "trimY": 228,
+        "width": 35,
+        "height": 72,
+        "rawWidth": 155,
+        "rawHeight": 424,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [],
+          "indexes": [],
+          "uv": [],
+          "nuv": [],
+          "minPos": [],
+          "maxPos": []
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+        "atlasUuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9"
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
     },
-    "endColorVar": {
-      "_val": 0
+    "e7223": {
+      "importer": "sprite-frame",
+      "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9@e7223",
+      "displayName": "",
+      "id": "e7223",
+      "name": "3",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 2,
+        "offsetY": 97,
+        "trimX": 142,
+        "trimY": 108,
+        "width": 89,
+        "height": 122,
+        "rawWidth": 155,
+        "rawHeight": 424,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [],
+          "indexes": [],
+          "uv": [],
+          "nuv": [],
+          "minPos": [],
+          "maxPos": []
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+        "atlasUuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9"
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
     },
-    "startSize": 3.369999885559082,
-    "startSizeVar": 50,
-    "endSize": 30.31999969482422,
-    "endSizeVar": 0,
-    "positionType": 0,
-    "sourcePos": {
-      "x": 0,
-      "y": 0
+    "a795c": {
+      "importer": "sprite-frame",
+      "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9@a795c",
+      "displayName": "",
+      "id": "a795c",
+      "name": "4",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": true,
+        "offsetX": -5,
+        "offsetY": 24,
+        "trimX": 2,
+        "trimY": 2,
+        "width": 93,
+        "height": 148,
+        "rawWidth": 155,
+        "rawHeight": 424,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [],
+          "indexes": [],
+          "uv": [],
+          "nuv": [],
+          "minPos": [],
+          "maxPos": []
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+        "atlasUuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9"
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
     },
-    "posVar": {
-      "x": 7,
-      "y": 7
+    "e7d45": {
+      "importer": "sprite-frame",
+      "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9@e7d45",
+      "displayName": "",
+      "id": "e7d45",
+      "name": "5",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": -60,
+        "trimX": 152,
+        "trimY": 2,
+        "width": 97,
+        "height": 104,
+        "rawWidth": 155,
+        "rawHeight": 424,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [],
+          "indexes": [],
+          "uv": [],
+          "nuv": [],
+          "minPos": [],
+          "maxPos": []
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+        "atlasUuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9"
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
     },
-    "angle": 360,
-    "angleVar": 360,
-    "startSpin": -47.369998931884766,
-    "startSpinVar": 0,
-    "endSpin": -47.369998931884766,
-    "endSpinVar": -142.11000061035156,
-    "emitterMode": 0,
-    "gravity": {
-      "x": 0.25,
-      "y": 0.8600000143051147
-    },
-    "speed": 0,
-    "speedVar": 190.7899932861328,
-    "radialAccel": -671.0499877929688,
-    "radialAccelVar": 65.79000091552734,
-    "tangentialAccel": -92.11000061035156,
-    "tangentialAccelVar": 65.79000091552734,
-    "rotationIsDir": false,
-    "startRadius": 0,
-    "startRadiusVar": 0,
-    "endRadius": 0,
-    "endRadiusVar": 0,
-    "rotatePerS": 0,
-    "rotatePerSVar": 0,
-    "spriteFrameUuid": "24c419ea-63a8-4ea1-a9d0-7fc469489bbc@f9941"
+    "116ec": {
+      "importer": "sprite-frame",
+      "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9@116ec",
+      "displayName": "",
+      "id": "116ec",
+      "name": "6",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": true,
+        "offsetX": 3,
+        "offsetY": -129,
+        "trimX": 2,
+        "trimY": 97,
+        "width": 129,
+        "height": 138,
+        "rawWidth": 155,
+        "rawHeight": 424,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [],
+          "indexes": [],
+          "uv": [],
+          "nuv": [],
+          "minPos": [],
+          "maxPos": []
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+        "atlasUuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9"
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "atlasTextureName": "weiqi.png",
+    "format": 2,
+    "uuid": "82b43a17-a295-4c62-a1b3-54a3223c86e9",
+    "textureUuid": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a"
   }
 }

BIN=BIN
assets/resources/effect/particle/weiqi/weiqi.png


+ 134 - 0
assets/resources/effect/particle/weiqi/weiqi.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.26",
+  "importer": "image",
+  "imported": true,
+  "uuid": "cbdee626-0d57-4a34-bcbe-3d056ec0daac",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+      "displayName": "weiqi",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac",
+        "isUuid": true,
+        "visible": false,
+        "minfilter": "linear",
+        "magfilter": "linear",
+        "mipfilter": "none",
+        "anisotropy": 0
+      },
+      "ver": "1.0.22",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    },
+    "f9941": {
+      "importer": "sprite-frame",
+      "uuid": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@f9941",
+      "displayName": "weiqi",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": -2.5,
+        "offsetY": 116,
+        "trimX": 2,
+        "trimY": 3,
+        "width": 247,
+        "height": 274,
+        "rawWidth": 256,
+        "rawHeight": 512,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -123.5,
+            -137,
+            0,
+            123.5,
+            -137,
+            0,
+            -123.5,
+            137,
+            0,
+            123.5,
+            137,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            2,
+            509,
+            249,
+            509,
+            2,
+            235,
+            249,
+            235
+          ],
+          "nuv": [
+            0.0078125,
+            0.458984375,
+            0.97265625,
+            0.458984375,
+            0.0078125,
+            0.994140625,
+            0.97265625,
+            0.994140625
+          ],
+          "minPos": [
+            -123.5,
+            -137,
+            0
+          ],
+          "maxPos": [
+            123.5,
+            137,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "cbdee626-0d57-4a34-bcbe-3d056ec0daac@f9941"
+  }
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 933 - 141
assets/resources/prefabs/game.prefab


+ 5 - 0
assets/script/config.ts

@@ -99,6 +99,11 @@ export class config  {
     public static UI_EVENT ={
         GET_NEW_CAR:"get_new_car"
     }
+
+    public static ADS_CONFIG = {
+        GAME_RELIFE_VIDEO:"asdasdas122321", //游戏看视频复活
+        GAME_RELIFE_SHARE_TITLE:"分享游戏获得复活"//游戏分享复活
+    }
 }
 
 

+ 9 - 0
assets/script/fw.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "9ec7c0f4-4d70-46d8-b353-02b9d6c7df01",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 16 - 0
assets/script/fw/base_ui.ts

@@ -0,0 +1,16 @@
+import { _decorator, Component, Node } from 'cc';
+import { uiManager } from '../manager/uiManager';
+const { ccclass, property } = _decorator;
+
+@ccclass('base_ui')
+export class base_ui extends Component {
+   protected onButtonListen(btn:Node,call_back){
+        uiManager.Instance().onButtonListen(btn,call_back)
+   }
+
+   protected close(){
+        this.node.removeFromParent()
+   }
+}
+
+

+ 9 - 0
assets/script/fw/base_ui.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "305f9534-3ea9-4be0-9714-8f48ab773611",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 14 - 8
assets/script/game/car.ts

@@ -45,7 +45,7 @@ export class car extends Component {
     private isStartGame:Boolean = false
     @property(Node) spr:Node = null
     @property(Node) hp_bar:Node = null
-    public init(m:Node,cb,cb1,g:game){
+    public init(m:Node,cb,cb1,g:game,isReLife:boolean = false){
         this.spr.getComponent(Sprite).spriteFrame = imageCacheManager.getGameCarImageById(userDataManager.user_car_list.default_car_id)
         this.spr.getComponent(buff_manager).init()
         this.origin_pos_y = this.node.position.y
@@ -97,8 +97,12 @@ export class car extends Component {
         this.move_speed_y = tools.game_config.car_origin_speed
         this.hp = tools.game_config.car_init_num
         this.hp_bar.getComponent(hp_bar).updateHp(this.hp)
-        this.hp = 100
-        this.scores = 0
+        // this.hp = 100
+        if(isReLife){
+
+        }else{
+            this.scores = 0
+        }
         this.updateHp()
         this.updateScores()
         this.node.getComponent(RigidBody2D).gravityScale = -3
@@ -211,11 +215,13 @@ export class car extends Component {
         Tween.stopAllByTarget(this.lab_hp)
         tween(this.lab_hp).delay(0.02).call(()=>{ this.isStopY = false}).start()
         if(this.hp<0){
-            Tween.stopAllByTarget(this.node)
-            this.stopGame()
-            // this.node.getComponent(RigidBody2D).gravityScale = 0
-            // this.node.getComponent(RigidBody2D).linearDamping = 0
-            this.over_cb()
+            if(this.isStartGame){
+                Tween.stopAllByTarget(this.node)
+                this.stopGame()
+                // this.node.getComponent(RigidBody2D).gravityScale = 0
+                // this.node.getComponent(RigidBody2D).linearDamping = 0
+                this.over_cb()
+            }
         }else{
             if(data!=null){
                 switch (data.buff_type) {

+ 9 - 6
assets/script/game/game.ts

@@ -40,7 +40,8 @@ export class game extends Component {
     private gameBoxList:Node[] = []
     private gameWallList:Node[] = []
     private gameCoinList:Node[] = []
-    public show(cb){
+    private isFristOverGame:boolean = true
+    public show(cb,isReLife:boolean = false){
         this.mCallBackHome = cb
         this.removeAll()
         audioManager.Instance().playMusic(config.AUDIO.game_bgm)
@@ -55,8 +56,8 @@ export class game extends Component {
         this.game_pool_manager.init()
         this.bf_show.initView()
         this.content.position = Vec3.ZERO
-        this.car.position = new Vec3(this.car.position.x,-300,this.car.position.z)
-        this.car.getComponent(car).init(this.content,this.onOver.bind(this),this.updateScores.bind(this),this)
+        this.car.position = new Vec3(0,-300,this.car.position.z)
+        this.car.getComponent(car).init(this.content,this.onOver.bind(this),this.updateScores.bind(this),this,isReLife)
         for (let index = 0; index < 3; index++) {
             this.addItem(index)
         }
@@ -104,12 +105,14 @@ export class game extends Component {
         this.count_time.active = false
         director.once(Director.EVENT_AFTER_DRAW,()=>{
             this.removeAll()
-            this.results_view.getComponent(results).show(this.car.getComponent(car).getScores(),()=>{
-                this.show(this.mCallBackHome)
+            this.results_view.getComponent(results).show(this.car.getComponent(car).getScores(),(isReLife:boolean=false)=>{
+                this.show(this.mCallBackHome,isReLife)
             },()=>{
                 this.removeSelf()
                 this.mCallBackHome()
-            })
+            },this.isFristOverGame)
+
+            this.isFristOverGame = false
         })
    
     }

+ 38 - 2
assets/script/game/results.ts

@@ -6,6 +6,8 @@ import { uiManager } from '../manager/uiManager';
 import { user_results } from '../data';
 import { userDataManager } from '../manager/userDataManager';
 import { ClientEvent } from '../lib/clientEvent';
+import { SdkUtil } from '../sdkUtil';
+import { results_unlock_car } from './results_unlock_car';
 const { ccclass, property } = _decorator;
 
 @ccclass('results')
@@ -13,6 +15,12 @@ export class results extends Component {
     @property(Node) btn_restart:Node = null
     @property(Node) lab_scores:Node = null
     @property(Node) btn_back_home:Node = null
+    @property(Node) first_over_node:Node = null
+    @property(Node) not_first_over_node:Node = null
+    @property(Node) btn_video_reLife:Node = null
+    @property(Node) btn_share_reLife:Node = null
+    @property(Node) check_back_home:Node = null
+    @property(Node) unlock_car:Node = null
     private call_back = null
     private back_home_cb = null
     start() {
@@ -27,6 +35,30 @@ export class results extends Component {
                 this.back_home_cb()
            }
         })
+
+        uiManager.Instance().onButtonListen(this.check_back_home,()=>{
+            if(this.back_home_cb){
+                 this.back_home_cb()
+            }
+         })
+
+        uiManager.Instance().onButtonListen(this.btn_video_reLife,()=>{
+            SdkUtil.showVideoAd(config.ADS_CONFIG.GAME_RELIFE_VIDEO,()=>{
+                if(this.call_back){
+                    this.call_back(true)
+                    this.close()
+                }
+            })
+        })
+
+         uiManager.Instance().onButtonListen(this.btn_share_reLife,()=>{
+            SdkUtil.shareGame(config.ADS_CONFIG.GAME_RELIFE_SHARE_TITLE,()=>{
+                if(this.call_back){
+                    this.call_back(true)
+                    this.close()
+                }
+            })
+         })
     }
 
     private close(){
@@ -34,8 +66,10 @@ export class results extends Component {
     }
 
 
-    public show(scores:number,call,back_home_cb){
+    public show(scores:number,call,back_home_cb,isFristOverGame:boolean){
         this.back_home_cb = back_home_cb
+        this.first_over_node.active = isFristOverGame
+        this.not_first_over_node.active =!isFristOverGame
         http.post(config.API.sync_integral,{"integral":scores},(err,data)=>{
             if(!err){
                 let d = JSON.parse(data)
@@ -43,8 +77,10 @@ export class results extends Component {
                 if(d.code===config.status.SUCCESS){
                     let res:user_results = d.content
                     if(res.obtain_list.length<=0){
+                        this.unlock_car.getComponent(results_unlock_car).hide()
                         console.log("啥也没获取到")
                     }else{
+                        this.unlock_car.getComponent(results_unlock_car).show(res.default_car_id)
                         userDataManager.user_car_list.default_car_id = res.default_car_id
                         ClientEvent.dispatchEvent(config.UI_EVENT.GET_NEW_CAR)
                     }
@@ -60,7 +96,7 @@ export class results extends Component {
         })
         audioManager.Instance().playSound(config.AUDIO.win)
         this.node.active = true
-        this.lab_scores.getComponent(Label).string = "积分:"+ scores+""
+        this.lab_scores.getComponent(Label).string =scores+""
         this.call_back = call
     }
 }

+ 18 - 0
assets/script/game/results_unlock_car.ts

@@ -0,0 +1,18 @@
+import { _decorator, Component, Node, Sprite } from 'cc';
+import { imageCacheManager } from '../manager/imageCacheManager';
+const { ccclass, property } = _decorator;
+
+@ccclass('results_unlock_car')
+export class results_unlock_car extends Component {
+    @property(Node) spr_car:Node = null
+    public show(car_id:number){
+        this.node.active = true
+        this.spr_car.getComponent(Sprite).spriteFrame = imageCacheManager.getHomeCarImageById(car_id)
+    }
+
+    public hide(){
+        this.node.active = false
+    }
+}
+
+

+ 9 - 0
assets/script/game/results_unlock_car.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "0d55d6c1-4fed-48cb-800a-b9b5e0b7bc2c",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 15 - 82
assets/script/sdkUtil.ts

@@ -86,16 +86,25 @@ export class SdkUtil {
     }
 
     // 分享游戏
-    public static shareGame(title: string, imageUrl: string, videoPath: string) {
+    public static shareGame(title: string, call_back) {
         if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
-            if(videoPath!="") {
-                // this.ttShareScreenRecordVideo(config.gameName,videoPath)
-            }
+            call_back()
         } else if(sys.platform == sys.Platform.WECHAT_GAME) {
             title = title + '好刺激、好好玩'
-            // this.wxShare(title, imageUrl)
+        }else{
+            call_back()
         }
     }
+    // public static shareGame(title: string, imageUrl: string, videoPath: string) {
+    //     if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+    //         if(videoPath!="") {
+    //             // this.ttShareScreenRecordVideo(config.gameName,videoPath)
+    //         }
+    //     } else if(sys.platform == sys.Platform.WECHAT_GAME) {
+    //         title = title + '好刺激、好好玩'
+    //         // this.wxShare(title, imageUrl)
+    //     }
+    // }
 
     // 获取广告id
     public static getAdId(ad_type = config.AD_TYPE.UNKNOWN):string {
@@ -134,83 +143,7 @@ export class SdkUtil {
     
     // 显示激励视频广告
     public static showVideoAd(_adUnitId: string, call_back) {
-    //     if(gameManager.isFreeAds()) {
-    //         call_back({"isEnded":true})
-    //         return
-    //     }
-    //     if(sys.platform==sys.Platform.BYTEDANCE_MINI_GAME||sys.platform==sys.Platform.WECHAT_GAME){
-    //         gameManager.Singleton.showLoadingLevel()
-    //         if(sys.platform==sys.Platform.BYTEDANCE_MINI_GAME) {
-    //             SdkUtil.videoAd = tt.createRewardedVideoAd({adUnitId: _adUnitId});
-    //         } else if(sys.platform==sys.Platform.WECHAT_GAME) {
-    //             gameManager.Singleton.hideLoadingLevel()
-    //             call_back({"isEnded":true})
-    //             return
-    //             // SdkUtil.videoAd = wx.createRewardedVideoAd({adUnitId: _adUnitId});
-    //         }
-
-    //         if(SdkUtil.videoAd==null){ 
-    //             gameManager.Singleton.hideLoadingLevel()
-    //             return
-    //          }
-
-    //         SdkUtil.videoAd.onLoad(() => {
-    //             SdkUtil.isLookAd = true
-    //             SdkUtil.videoAd.show();
-    //             console.log("广告加载完成");
-    //         });
-    //         SdkUtil.videoAd.onClose((res) => {
-    //             call_back(res)
-    //             SdkUtil.isLookAd = false
-    //             SdkUtil.videoAd.destroy()
-    //             gameManager.Singleton.hideLoadingLevel()
-    //         });
-    //         SdkUtil.videoAd.onError((res) => {
-    //             let errorString = res.errCode + '-' + res.errMsg
-    //             call_back({isEnded:false,errorString:errorString})
-    //             SdkUtil.isLookAd = false
-    //             SdkUtil.videoAd.destroy()
-    //             gameManager.Singleton.hideLoadingLevel()
-    //         });
-    //         SdkUtil.videoAd.load()
-    //     }
-    // }
-
-    // //------------------------------  微信相关  ------------------------------//
-
-    // // 微信分享
-    // public static wxShare(title: string, imageUrl: string) {
-    //     // console.log('微信分享=',title, 'imageUrl=',imageUrl)
-    //     wx.showShareMenu({
-    //         withShareTicket: true,
-    //         // shareAppMessage(可以删除):显示分享给好友选项,shareTimeline(可以删除):显示分享至朋友圈选项
-	// 	    // 可以只开启前者。如果要开启后者,则两者必须都开启才能生效。
-    //         // menus: ['shareAppMessage', 'shareTimeline'],
-    //         menus: ['shareAppMessage'],
-    //         complete: () => {}
-    //     });
-    //     // 主动分享
-    //     wx.shareAppMessage({
-    //         title: title,
-    //         imageUrl: imageUrl
-    //     });
-    // }
-
-
-    // //------------------------------  抖音相关  ------------------------------//
-
-    // // 抖音获取系统信息
-    // public static ttGetSystemInfo(callback) {
-    //     if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
-    //         tt.getSystemInfo({
-    //             success:(res) => {
-    //                 // console.log('tt.getSystemInfo=',res)
-    //                 // appName: "Douyin" appName: "douyin_lite"
-    //                 SdkUtil.tt_systemInfo = res
-    //                 callback()
-    //             }
-    //         })
-    //     }
+        call_back()
     }
 
     // 抖音添加快捷键(目前仅支持:抖音(Douyin) 和 抖音极速版(douyin_lite))

+ 4 - 6
assets/script/ui/setting/setting.ts

@@ -1,18 +1,16 @@
 import { _decorator, Component, Node } from 'cc';
 import { uiManager } from '../../manager/uiManager';
+import { base_ui } from '../../fw/base_ui';
 const { ccclass, property } = _decorator;
 
 @ccclass('setting')
-export class setting extends Component {
+export class setting extends base_ui {
    @property(Node) btn_close:Node = null
    protected start(): void {
-       uiManager.Instance().onButtonListen(this.btn_close,()=>{
-        this.close()
+        this.onButtonListen(this.btn_close,()=>{
+            this.close()
        })
    }
-   close(){
-        this.node.removeFromParent()
-   }
 }
 
 

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio