mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2024-12-25 11:18:54 +00:00
Item refactoring
This commit is contained in:
parent
1b5b449d0b
commit
4b2d35a733
@ -308,23 +308,6 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "cfXyVJoitMGp/0liEUZfNP"
|
"fileId": "cfXyVJoitMGp/0liEUZfNP"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__type__": "7a536G2OudFtpTsoF8yLXiW",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"node": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_enabled": true,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 15
|
|
||||||
},
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "72AObOIbxCf6LIYsYqoFZF"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__type__": "cc.Animation",
|
"__type__": "cc.Animation",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@ -334,7 +317,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 17
|
"__id__": 15
|
||||||
},
|
},
|
||||||
"playOnLoad": true,
|
"playOnLoad": true,
|
||||||
"_clips": [
|
"_clips": [
|
||||||
@ -362,10 +345,10 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 19
|
"__id__": 17
|
||||||
},
|
},
|
||||||
"tag": 0,
|
"tag": 0,
|
||||||
"_group": 1,
|
"_group": 16,
|
||||||
"_density": 1,
|
"_density": 1,
|
||||||
"_sensor": false,
|
"_sensor": false,
|
||||||
"_friction": 0.2,
|
"_friction": 0.2,
|
||||||
@ -386,6 +369,24 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "b5zZIKDzhK3q3Rd8OiKUPa"
|
"fileId": "b5zZIKDzhK3q3Rd8OiKUPa"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "724bauqfhVH0YWsXug16uHL",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 19
|
||||||
|
},
|
||||||
|
"itemType": 4,
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "9eD6pXLdNKw4xswCPxsN+q"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
"root": {
|
"root": {
|
||||||
|
@ -348,7 +348,7 @@
|
|||||||
"__id__": 17
|
"__id__": 17
|
||||||
},
|
},
|
||||||
"tag": 0,
|
"tag": 0,
|
||||||
"_group": 128,
|
"_group": 16,
|
||||||
"_density": 1,
|
"_density": 1,
|
||||||
"_sensor": false,
|
"_sensor": false,
|
||||||
"_friction": 0.2,
|
"_friction": 0.2,
|
||||||
@ -370,7 +370,7 @@
|
|||||||
"fileId": "67joCa7ptP34A+uWLWHsEf"
|
"fileId": "67joCa7ptP34A+uWLWHsEf"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "41f67AOEYRMTLXwNf7CG9iO",
|
"__type__": "724bauqfhVH0YWsXug16uHL",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
@ -380,11 +380,12 @@
|
|||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 19
|
"__id__": 19
|
||||||
},
|
},
|
||||||
|
"itemType": 1,
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "08V7VtIFBG1bgEhFLO5GoU"
|
"fileId": "9eg+N94AJL7qX1hwDoulo4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
|
@ -320,7 +320,7 @@
|
|||||||
"__id__": 15
|
"__id__": 15
|
||||||
},
|
},
|
||||||
"tag": 0,
|
"tag": 0,
|
||||||
"_group": 256,
|
"_group": 16,
|
||||||
"_density": 1,
|
"_density": 1,
|
||||||
"_sensor": false,
|
"_sensor": false,
|
||||||
"_friction": 0.2,
|
"_friction": 0.2,
|
||||||
@ -366,7 +366,7 @@
|
|||||||
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "18f8d5p42FOc4uYonNdBzCm",
|
"__type__": "724bauqfhVH0YWsXug16uHL",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
"_objFlags": 0,
|
"_objFlags": 0,
|
||||||
"node": {
|
"node": {
|
||||||
@ -376,14 +376,12 @@
|
|||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 19
|
"__id__": 19
|
||||||
},
|
},
|
||||||
"animation": {
|
"itemType": 2,
|
||||||
"__id__": 16
|
|
||||||
},
|
|
||||||
"_id": ""
|
"_id": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "65lXWGNONBy5ucPc5KmOaR"
|
"fileId": "c3RTRN6tpK45dDIl3T8NlW"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
|
@ -306,23 +306,6 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "75WVRoLrtKLrJihCVsxa4D"
|
"fileId": "75WVRoLrtKLrJihCVsxa4D"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__type__": "7a536G2OudFtpTsoF8yLXiW",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"node": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_enabled": false,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 15
|
|
||||||
},
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "72AObOIbxCf6LIYsYqoFZF"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__type__": "cc.Animation",
|
"__type__": "cc.Animation",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@ -332,7 +315,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": false,
|
"_enabled": false,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 17
|
"__id__": 15
|
||||||
},
|
},
|
||||||
"playOnLoad": true,
|
"playOnLoad": true,
|
||||||
"_clips": [
|
"_clips": [
|
||||||
@ -351,6 +334,24 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "724bauqfhVH0YWsXug16uHL",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 17
|
||||||
|
},
|
||||||
|
"itemType": 3,
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "acBeV6ARtPG5vuHymyG+Tp"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
"root": {
|
"root": {
|
||||||
|
@ -337,26 +337,6 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "75WVRoLrtKLrJihCVsxa4D"
|
"fileId": "75WVRoLrtKLrJihCVsxa4D"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__type__": "7a536G2OudFtpTsoF8yLXiW",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"node": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_enabled": true,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 17
|
|
||||||
},
|
|
||||||
"animation": {
|
|
||||||
"__id__": 18
|
|
||||||
},
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "72AObOIbxCf6LIYsYqoFZF"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__type__": "cc.Animation",
|
"__type__": "cc.Animation",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@ -366,7 +346,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 19
|
"__id__": 17
|
||||||
},
|
},
|
||||||
"playOnLoad": true,
|
"playOnLoad": true,
|
||||||
"_clips": [
|
"_clips": [
|
||||||
@ -385,6 +365,27 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
"fileId": "3ag4rexLNJW6A/sp6OpwZ8"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "801bc1fEuVM5pPn2btm9NKZ",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 19
|
||||||
|
},
|
||||||
|
"itemType": 0,
|
||||||
|
"animation": {
|
||||||
|
"__id__": 16
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "2aiKM2kApHv7jncY6Pmvgt"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
"root": {
|
"root": {
|
||||||
|
@ -26,22 +26,25 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__id__": 40
|
"__id__": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 136
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_active": true,
|
"_active": true,
|
||||||
"_components": [
|
"_components": [
|
||||||
{
|
|
||||||
"__id__": 136
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__id__": 138
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__id__": 140
|
"__id__": 140
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 142
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__id__": 144
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"_prefab": {
|
"_prefab": {
|
||||||
"__id__": 142
|
"__id__": 146
|
||||||
},
|
},
|
||||||
"_lpos": {
|
"_lpos": {
|
||||||
"__type__": "cc.Vec3",
|
"__type__": "cc.Vec3",
|
||||||
@ -2902,6 +2905,90 @@
|
|||||||
},
|
},
|
||||||
"fileId": "c6aL8FlztEHJ6sRFCXQnge"
|
"fileId": "c6aL8FlztEHJ6sRFCXQnge"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.Node",
|
||||||
|
"_name": "Magnet",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"_parent": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_children": [],
|
||||||
|
"_active": true,
|
||||||
|
"_components": [
|
||||||
|
{
|
||||||
|
"__id__": 137
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"_prefab": {
|
||||||
|
"__id__": 139
|
||||||
|
},
|
||||||
|
"_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": 1,
|
||||||
|
"y": 1,
|
||||||
|
"z": 1
|
||||||
|
},
|
||||||
|
"_layer": 33554432,
|
||||||
|
"_euler": {
|
||||||
|
"__type__": "cc.Vec3",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CircleCollider2D",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 136
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 138
|
||||||
|
},
|
||||||
|
"tag": 0,
|
||||||
|
"_group": 1,
|
||||||
|
"_density": 1,
|
||||||
|
"_sensor": false,
|
||||||
|
"_friction": 0.2,
|
||||||
|
"_restitution": 0,
|
||||||
|
"_offset": {
|
||||||
|
"__type__": "cc.Vec2",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"_radius": 260,
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "2cKwIyAIBAm5fq0pDIOT0e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.PrefabInfo",
|
||||||
|
"root": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"asset": {
|
||||||
|
"__id__": 0
|
||||||
|
},
|
||||||
|
"fileId": "aec1+SeS9G0b8TjOixk1ws"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.UITransform",
|
"__type__": "cc.UITransform",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@ -2911,7 +2998,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": false,
|
"_enabled": false,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 137
|
"__id__": 141
|
||||||
},
|
},
|
||||||
"_contentSize": {
|
"_contentSize": {
|
||||||
"__type__": "cc.Size",
|
"__type__": "cc.Size",
|
||||||
@ -2938,10 +3025,10 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 139
|
"__id__": 143
|
||||||
},
|
},
|
||||||
"collider": {
|
"collider": {
|
||||||
"__id__": 140
|
"__id__": 144
|
||||||
},
|
},
|
||||||
"playerUI": {
|
"playerUI": {
|
||||||
"__id__": 37
|
"__id__": 37
|
||||||
@ -2973,7 +3060,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 141
|
"__id__": 145
|
||||||
},
|
},
|
||||||
"tag": 0,
|
"tag": 0,
|
||||||
"_group": 2,
|
"_group": 2,
|
||||||
|
@ -2317,7 +2317,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "96r5a19KlArZj66lP1XbqT"
|
"fileId": "e4VgJe0ytLH585U+gaoqU4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
|
@ -429,34 +429,6 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "2eO+M9deJI1KYyU2Otv4xD"
|
"fileId": "2eO+M9deJI1KYyU2Otv4xD"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"__type__": "f7ac68qK+pC7LXQWJdgAYVs",
|
|
||||||
"_name": "",
|
|
||||||
"_objFlags": 0,
|
|
||||||
"node": {
|
|
||||||
"__id__": 1
|
|
||||||
},
|
|
||||||
"_enabled": true,
|
|
||||||
"__prefab": {
|
|
||||||
"__id__": 21
|
|
||||||
},
|
|
||||||
"animation": {
|
|
||||||
"__id__": 15
|
|
||||||
},
|
|
||||||
"testField": "",
|
|
||||||
"skillPrefab": {
|
|
||||||
"__uuid__": "5dccf426-aeb0-4b4e-9e1c-ae9fd74dcf7a",
|
|
||||||
"__expectedType__": "cc.Prefab"
|
|
||||||
},
|
|
||||||
"skillParent": {
|
|
||||||
"__id__": 9
|
|
||||||
},
|
|
||||||
"_id": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.CompPrefabInfo",
|
|
||||||
"fileId": "2f6poVi1pJKJ3WzVB7L/Nq"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"__type__": "cc.Widget",
|
"__type__": "cc.Widget",
|
||||||
"_name": "",
|
"_name": "",
|
||||||
@ -467,7 +439,7 @@
|
|||||||
},
|
},
|
||||||
"_enabled": true,
|
"_enabled": true,
|
||||||
"__prefab": {
|
"__prefab": {
|
||||||
"__id__": 23
|
"__id__": 21
|
||||||
},
|
},
|
||||||
"_alignFlags": 45,
|
"_alignFlags": 45,
|
||||||
"_target": null,
|
"_target": null,
|
||||||
@ -493,6 +465,35 @@
|
|||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "67Ws0zREFMYKNYvOHw9C0b"
|
"fileId": "67Ws0zREFMYKNYvOHw9C0b"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"__type__": "f7ac68qK+pC7LXQWJdgAYVs",
|
||||||
|
"_name": "",
|
||||||
|
"_objFlags": 0,
|
||||||
|
"node": {
|
||||||
|
"__id__": 1
|
||||||
|
},
|
||||||
|
"_enabled": true,
|
||||||
|
"__prefab": {
|
||||||
|
"__id__": 23
|
||||||
|
},
|
||||||
|
"animation": {
|
||||||
|
"__id__": 15
|
||||||
|
},
|
||||||
|
"closeButton": null,
|
||||||
|
"backgroundCloseButton": null,
|
||||||
|
"skillPrefab": {
|
||||||
|
"__uuid__": "5dccf426-aeb0-4b4e-9e1c-ae9fd74dcf7a",
|
||||||
|
"__expectedType__": "cc.Prefab"
|
||||||
|
},
|
||||||
|
"skillParent": {
|
||||||
|
"__id__": 9
|
||||||
|
},
|
||||||
|
"_id": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__type__": "cc.CompPrefabInfo",
|
||||||
|
"fileId": "00cUXISL9FB7Ezx2pI9k4V"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
"root": {
|
"root": {
|
||||||
@ -502,31 +503,6 @@
|
|||||||
"__id__": 0
|
"__id__": 0
|
||||||
},
|
},
|
||||||
"fileId": "32U/bJCUBDlaQxxGFNXZTu",
|
"fileId": "32U/bJCUBDlaQxxGFNXZTu",
|
||||||
"targetOverrides": [
|
"targetOverrides": []
|
||||||
{
|
|
||||||
"__id__": 25
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.TargetOverrideInfo",
|
|
||||||
"source": {
|
|
||||||
"__id__": 20
|
|
||||||
},
|
|
||||||
"sourceInfo": null,
|
|
||||||
"propertyPath": [
|
|
||||||
"skills",
|
|
||||||
"2"
|
|
||||||
],
|
|
||||||
"target": null,
|
|
||||||
"targetInfo": {
|
|
||||||
"__id__": 26
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"__type__": "cc.TargetInfo",
|
|
||||||
"localID": [
|
|
||||||
"8fXLBTR/JKgZXZPA29Dci3"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -1112,7 +1112,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.CompPrefabInfo",
|
"__type__": "cc.CompPrefabInfo",
|
||||||
"fileId": "dcTNwE4SNLOZujvnWi9lB6"
|
"fileId": "0cPaLYMJxO4aigeWF8icoV"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"__type__": "cc.PrefabInfo",
|
"__type__": "cc.PrefabInfo",
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,8 @@
|
|||||||
import { _decorator, Component, Node, AudioClip } from "cc";
|
import { _decorator, Component, Node, AudioClip } from "cc";
|
||||||
import { AppRoot } from "../../AppRoot/AppRoot";
|
import { AppRoot } from "../../AppRoot/AppRoot";
|
||||||
import { AudioPlayer } from "../../Services/AudioPlayer/AudioPlayer";
|
import { AudioPlayer } from "../../Services/AudioPlayer/AudioPlayer";
|
||||||
import { ItemManager, ItemType } from "../Items/ItemManager";
|
import { ItemManager } from "../Items/ItemManager";
|
||||||
|
import { ItemType } from "../Items/ItemType";
|
||||||
import { Enemy } from "../Unit/Enemy/Enemy";
|
import { Enemy } from "../Unit/Enemy/Enemy";
|
||||||
import { EnemyManager } from "../Unit/Enemy/EnemyManager";
|
import { EnemyManager } from "../Unit/Enemy/EnemyManager";
|
||||||
import { Player } from "../Unit/Player/Player";
|
import { Player } from "../Unit/Player/Player";
|
||||||
|
@ -3,10 +3,8 @@ import { ISignal } from "../../Services/EventSystem/ISignal";
|
|||||||
import { Signal } from "../../Services/EventSystem/Signal";
|
import { Signal } from "../../Services/EventSystem/Signal";
|
||||||
import { GameTimer } from "../../Services/GameTimer";
|
import { GameTimer } from "../../Services/GameTimer";
|
||||||
import { GroupType } from "../GroupType";
|
import { GroupType } from "../GroupType";
|
||||||
import { Gold } from "../Items/Gold/Gold";
|
import { Item } from "../Items/Item";
|
||||||
import { HealthPotion } from "../Items/HealthPotion/HealthPotion";
|
|
||||||
import { ItemManager } from "../Items/ItemManager";
|
import { ItemManager } from "../Items/ItemManager";
|
||||||
import { XP } from "../Items/XP/XP";
|
|
||||||
import { Projectile } from "../Projectile/Projectile";
|
import { Projectile } from "../Projectile/Projectile";
|
||||||
import { Enemy } from "../Unit/Enemy/Enemy";
|
import { Enemy } from "../Unit/Enemy/Enemy";
|
||||||
import { Player } from "../Unit/Player/Player";
|
import { Player } from "../Unit/Player/Player";
|
||||||
@ -29,9 +27,7 @@ export class PlayerCollisionSystem {
|
|||||||
|
|
||||||
this.groupToResolver.set(GroupType.ENEMY, this.resolveEnemyContact.bind(this));
|
this.groupToResolver.set(GroupType.ENEMY, this.resolveEnemyContact.bind(this));
|
||||||
this.groupToResolver.set(GroupType.ENEMY_PROJECTILE, this.resolveEnemyProjectileContact.bind(this));
|
this.groupToResolver.set(GroupType.ENEMY_PROJECTILE, this.resolveEnemyProjectileContact.bind(this));
|
||||||
this.groupToResolver.set(GroupType.XP, this.resolveXpContact.bind(this));
|
this.groupToResolver.set(GroupType.ITEM, this.resolveItemContact.bind(this));
|
||||||
this.groupToResolver.set(GroupType.GOLD, this.resolveGoldContact.bind(this));
|
|
||||||
this.groupToResolver.set(GroupType.HEALTH_POTION, this.resolveHealthPotionContact.bind(this));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public gameTick(deltaTime: number): void {
|
public gameTick(deltaTime: number): void {
|
||||||
@ -86,16 +82,8 @@ export class PlayerCollisionSystem {
|
|||||||
this.player.Health.damage(damage);
|
this.player.Health.damage(damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
private resolveXpContact(xpCollider: Collider2D): void {
|
private resolveItemContact(xpCollider: Collider2D): void {
|
||||||
console.log("Collided with XP");
|
console.log("Collided with item");
|
||||||
this.itemManager.pickupXP(xpCollider.node.getComponent(XP));
|
this.itemManager.pickupItem(xpCollider.node.getComponent(Item));
|
||||||
}
|
|
||||||
|
|
||||||
private resolveGoldContact(goldCollider: Collider2D): void {
|
|
||||||
this.itemManager.pickupGold(goldCollider.node.getComponent(Gold));
|
|
||||||
}
|
|
||||||
|
|
||||||
private resolveHealthPotionContact(healthPotionCollider: Collider2D): void {
|
|
||||||
this.itemManager.pickupHealthPotion(healthPotionCollider.node.getComponent(HealthPotion));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,8 @@ export enum GroupType {
|
|||||||
PLAYER = 1 << 1,
|
PLAYER = 1 << 1,
|
||||||
ENEMY = 1 << 2,
|
ENEMY = 1 << 2,
|
||||||
WEAPON = 1 << 3,
|
WEAPON = 1 << 3,
|
||||||
XP = 1 << 4,
|
ITEM = 1 << 4,
|
||||||
PLAYER_PROJECTILE = 1 << 5,
|
PLAYER_PROJECTILE = 1 << 5,
|
||||||
ENEMY_PROJECTILE = 1 << 6,
|
ENEMY_PROJECTILE = 1 << 6,
|
||||||
GOLD = 1 << 7,
|
MAGNET_RANGE = 1 << 7
|
||||||
HEALTH_POTION = 1 << 8
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"ver": "1.1.0",
|
|
||||||
"importer": "directory",
|
|
||||||
"imported": true,
|
|
||||||
"uuid": "51704601-c62e-4fff-93ee-73a81cac6e1b",
|
|
||||||
"files": [],
|
|
||||||
"subMetas": {},
|
|
||||||
"userData": {
|
|
||||||
"compressionType": {},
|
|
||||||
"isRemoteBundle": {}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
import { Component, Vec3, _decorator } from "cc";
|
|
||||||
import { ISignal } from "../../../Services/EventSystem/ISignal";
|
|
||||||
import { Signal } from "../../../Services/EventSystem/Signal";
|
|
||||||
|
|
||||||
const { ccclass, property } = _decorator;
|
|
||||||
|
|
||||||
@ccclass("Gold")
|
|
||||||
export class Gold extends Component {
|
|
||||||
private pickUpEvent: Signal<Gold> = new Signal<Gold>();
|
|
||||||
|
|
||||||
public setup(position: Vec3): void {
|
|
||||||
this.node.setWorldPosition(position);
|
|
||||||
this.node.active = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public get PickupEvent(): ISignal<Gold> {
|
|
||||||
return this.pickUpEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public pickup(): void {
|
|
||||||
this.pickUpEvent.trigger(this);
|
|
||||||
this.node.active = false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
import { Component, Prefab, Vec3, _decorator } from "cc";
|
|
||||||
import { ObjectPool } from "../../../Services/ObjectPool";
|
|
||||||
import { Gold } from "./Gold";
|
|
||||||
|
|
||||||
const { ccclass, property } = _decorator;
|
|
||||||
|
|
||||||
@ccclass("GoldSpawner")
|
|
||||||
export class GoldSpawner extends Component {
|
|
||||||
@property(Prefab) public goldPrefab: Prefab;
|
|
||||||
|
|
||||||
private goldPool: ObjectPool<Gold>;
|
|
||||||
public init(): void {
|
|
||||||
this.goldPool = new ObjectPool<Gold>(this.goldPrefab, this.node, 5, "Gold");
|
|
||||||
}
|
|
||||||
|
|
||||||
public spawn(position: Vec3): void {
|
|
||||||
const gold: Gold = this.goldPool.borrow();
|
|
||||||
gold.setup(position);
|
|
||||||
gold.PickupEvent.on(this.return, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private return(gold: Gold): void {
|
|
||||||
gold.PickupEvent.off(this.return);
|
|
||||||
this.goldPool.return(gold);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"ver": "1.1.0",
|
|
||||||
"importer": "directory",
|
|
||||||
"imported": true,
|
|
||||||
"uuid": "5f34fac0-e23f-42da-9c26-d55b9df6ef32",
|
|
||||||
"files": [],
|
|
||||||
"subMetas": {},
|
|
||||||
"userData": {
|
|
||||||
"compressionType": {},
|
|
||||||
"isRemoteBundle": {}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
import { Animation, Component, Vec3, _decorator } from "cc";
|
|
||||||
import { ISignal } from "../../../Services/EventSystem/ISignal";
|
|
||||||
import { Signal } from "../../../Services/EventSystem/Signal";
|
|
||||||
|
|
||||||
const { ccclass, property } = _decorator;
|
|
||||||
|
|
||||||
@ccclass("HealthPotion")
|
|
||||||
export class HealthPotion extends Component {
|
|
||||||
@property(Animation) private animation: Animation;
|
|
||||||
|
|
||||||
private pickUpEvent: Signal<HealthPotion> = new Signal<HealthPotion>();
|
|
||||||
|
|
||||||
public setup(position: Vec3): void {
|
|
||||||
this.node.setWorldPosition(position);
|
|
||||||
this.node.active = true;
|
|
||||||
this.animation.play("DropStart");
|
|
||||||
}
|
|
||||||
|
|
||||||
public get PickupEvent(): ISignal<HealthPotion> {
|
|
||||||
return this.pickUpEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public pickup(): void {
|
|
||||||
this.pickUpEvent.trigger(this);
|
|
||||||
this.node.active = false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
import { Component, Prefab, Vec3, _decorator } from "cc";
|
|
||||||
import { ObjectPool } from "../../../Services/ObjectPool";
|
|
||||||
import { HealthPotion } from "./HealthPotion";
|
|
||||||
|
|
||||||
const { ccclass, property } = _decorator;
|
|
||||||
|
|
||||||
@ccclass("HealthPotionSpawner")
|
|
||||||
export class HealthPotionSpawner extends Component {
|
|
||||||
@property(Prefab) public healthPotionPrefab: Prefab;
|
|
||||||
|
|
||||||
private healthPotionPool: ObjectPool<HealthPotion>;
|
|
||||||
|
|
||||||
public init(): void {
|
|
||||||
this.healthPotionPool = new ObjectPool<HealthPotion>(this.healthPotionPrefab, this.node, 5, "HealthPotion");
|
|
||||||
}
|
|
||||||
|
|
||||||
public spawn(position: Vec3): void {
|
|
||||||
const healthPotion: HealthPotion = this.healthPotionPool.borrow();
|
|
||||||
healthPotion.setup(position);
|
|
||||||
healthPotion.PickupEvent.on(this.return, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private return(healthPotion: HealthPotion): void {
|
|
||||||
healthPotion.PickupEvent.off(this.return);
|
|
||||||
this.healthPotionPool.return(healthPotion);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"ver": "4.0.23",
|
|
||||||
"importer": "typescript",
|
|
||||||
"imported": true,
|
|
||||||
"uuid": "1e3b0c7f-c831-4778-8688-d8e2c0f6dc00",
|
|
||||||
"files": [],
|
|
||||||
"subMetas": {},
|
|
||||||
"userData": {}
|
|
||||||
}
|
|
30
assets/Scripts/Game/Items/Item.ts
Normal file
30
assets/Scripts/Game/Items/Item.ts
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import { _decorator, Component, Node, Vec3, ccenum, Enum } from "cc";
|
||||||
|
import { ISignal } from "../../Services/EventSystem/ISignal";
|
||||||
|
import { Signal } from "../../Services/EventSystem/Signal";
|
||||||
|
import { ItemType } from "./ItemType";
|
||||||
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
@ccclass("Item")
|
||||||
|
export class Item extends Component {
|
||||||
|
@property({ type: Enum(ItemType) }) private itemType: ItemType;
|
||||||
|
|
||||||
|
private pickUpEvent = new Signal<Item>();
|
||||||
|
|
||||||
|
public get ItemType(): ItemType {
|
||||||
|
return <ItemType>this.itemType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public setup(position: Vec3): void {
|
||||||
|
this.node.setWorldPosition(position);
|
||||||
|
this.node.active = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get PickupEvent(): ISignal<Item> {
|
||||||
|
return this.pickUpEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public pickup(): void {
|
||||||
|
this.pickUpEvent.trigger(this);
|
||||||
|
this.node.active = false;
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
"ver": "4.0.23",
|
"ver": "4.0.23",
|
||||||
"importer": "typescript",
|
"importer": "typescript",
|
||||||
"imported": true,
|
"imported": true,
|
||||||
"uuid": "18f8de69-e361-4e73-8b98-a2735d0730a6",
|
"uuid": "724babaa-7e15-47d1-85ac-5ee835eae1cb",
|
||||||
"files": [],
|
"files": [],
|
||||||
"subMetas": {},
|
"subMetas": {},
|
||||||
"userData": {}
|
"userData": {}
|
@ -6,20 +6,20 @@ import { GameResult } from "../Game";
|
|||||||
import { Enemy } from "../Unit/Enemy/Enemy";
|
import { Enemy } from "../Unit/Enemy/Enemy";
|
||||||
import { EnemyManager } from "../Unit/Enemy/EnemyManager";
|
import { EnemyManager } from "../Unit/Enemy/EnemyManager";
|
||||||
import { Player } from "../Unit/Player/Player";
|
import { Player } from "../Unit/Player/Player";
|
||||||
import { Gold } from "./Gold/Gold";
|
import { Item } from "./Item";
|
||||||
import { GoldSpawner } from "./Gold/GoldSpawner";
|
import { ItemSpawner } from "./ItemSpawner";
|
||||||
import { HealthPotion } from "./HealthPotion/HealthPotion";
|
import { ItemType } from "./ItemType";
|
||||||
import { HealthPotionSpawner } from "./HealthPotion/HealthPotionSpawner";
|
|
||||||
import { PickupEffectManager } from "./PickupEffect/PickupEffectManager";
|
import { PickupEffectManager } from "./PickupEffect/PickupEffectManager";
|
||||||
import { XP } from "./XP/XP";
|
|
||||||
import { XPSpawner } from "./XP/XPSpawner";
|
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
@ccclass("ItemManager")
|
@ccclass("ItemManager")
|
||||||
export class ItemManager extends Component {
|
export class ItemManager extends Component {
|
||||||
@property(XPSpawner) private xpSpawner: XPSpawner;
|
@property(ItemSpawner) private xpSpawner: ItemSpawner;
|
||||||
@property(GoldSpawner) private goldSpawner: GoldSpawner;
|
@property(ItemSpawner) private goldSpawner: ItemSpawner;
|
||||||
@property(HealthPotionSpawner) private healthPotionSpawner: HealthPotionSpawner;
|
@property(ItemSpawner) private healthPotionSpawner: ItemSpawner;
|
||||||
|
@property(ItemSpawner) private magnetSpawner: ItemSpawner;
|
||||||
|
@property(ItemSpawner) private chestSpawner: ItemSpawner;
|
||||||
@property(PickupEffectManager) private pickupEffectManager: PickupEffectManager;
|
@property(PickupEffectManager) private pickupEffectManager: PickupEffectManager;
|
||||||
|
|
||||||
private player: Player;
|
private player: Player;
|
||||||
@ -28,6 +28,8 @@ export class ItemManager extends Component {
|
|||||||
|
|
||||||
private pickupEvent = new Signal<ItemType>();
|
private pickupEvent = new Signal<ItemType>();
|
||||||
|
|
||||||
|
private itemTypeToAction = new Map<ItemType, () => void>();
|
||||||
|
|
||||||
public init(enemyManager: EnemyManager, player: Player, gameResult: GameResult, settings: ItemSettings): void {
|
public init(enemyManager: EnemyManager, player: Player, gameResult: GameResult, settings: ItemSettings): void {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.gameResult = gameResult;
|
this.gameResult = gameResult;
|
||||||
@ -39,34 +41,40 @@ export class ItemManager extends Component {
|
|||||||
this.xpSpawner.init();
|
this.xpSpawner.init();
|
||||||
this.goldSpawner.init();
|
this.goldSpawner.init();
|
||||||
this.healthPotionSpawner.init();
|
this.healthPotionSpawner.init();
|
||||||
|
this.magnetSpawner.init();
|
||||||
|
this.chestSpawner.init();
|
||||||
|
|
||||||
this.pickupEffectManager.init();
|
this.pickupEffectManager.init();
|
||||||
|
|
||||||
|
this.itemTypeToAction.set(ItemType.XP, this.addXP.bind(this));
|
||||||
|
this.itemTypeToAction.set(ItemType.Gold, this.addGold.bind(this));
|
||||||
|
this.itemTypeToAction.set(ItemType.HealthPotion, this.useHealthPotion.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
public get PickupEvent(): ISignal<ItemType> {
|
public get PickupEvent(): ISignal<ItemType> {
|
||||||
return this.pickupEvent;
|
return this.pickupEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public pickupXP(xp: XP): void {
|
public pickupItem(item: Item): void {
|
||||||
this.pickupEffectManager.showEffect(xp.node.worldPosition);
|
if (!this.itemTypeToAction.has(item.ItemType)) throw new Error("Does not have behaviour set for " + item.ItemType);
|
||||||
this.pickupEvent.trigger(ItemType.XP);
|
|
||||||
|
|
||||||
this.player.Level.addXp(xp.Value);
|
this.pickupEffectManager.showEffect(item.node.worldPosition);
|
||||||
xp.pickup();
|
this.pickupEvent.trigger(item.ItemType);
|
||||||
|
|
||||||
|
this.itemTypeToAction.get(item.ItemType)();
|
||||||
|
|
||||||
|
item.pickup();
|
||||||
}
|
}
|
||||||
|
|
||||||
public pickupGold(gold: Gold): void {
|
private addXP(): void {
|
||||||
this.pickupEffectManager.showEffect(gold.node.worldPosition);
|
this.player.Level.addXp(1);
|
||||||
this.pickupEvent.trigger(ItemType.Gold);
|
}
|
||||||
|
|
||||||
gold.pickup();
|
private addGold(): void {
|
||||||
this.gameResult.goldCoins++;
|
this.gameResult.goldCoins++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public pickupHealthPotion(healthPotion: HealthPotion): void {
|
private useHealthPotion(): void {
|
||||||
this.pickupEffectManager.showEffect(healthPotion.node.worldPosition);
|
|
||||||
this.pickupEvent.trigger(ItemType.HealthPotion);
|
|
||||||
|
|
||||||
healthPotion.pickup();
|
|
||||||
this.player.Health.heal(this.healthPerPotion);
|
this.player.Health.heal(this.healthPerPotion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,7 +94,7 @@ export class ItemManager extends Component {
|
|||||||
|
|
||||||
private trySpawnXP(enemy: Enemy): void {
|
private trySpawnXP(enemy: Enemy): void {
|
||||||
for (let index = 0; index < enemy.XPReward; index++) {
|
for (let index = 0; index < enemy.XPReward; index++) {
|
||||||
this.xpSpawner.spawnXp(this.getRandomPosition(enemy), 1);
|
this.xpSpawner.spawn(this.getRandomPosition(enemy));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,9 +129,3 @@ export class ItemManager extends Component {
|
|||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum ItemType {
|
|
||||||
XP,
|
|
||||||
Gold,
|
|
||||||
HealthPotion
|
|
||||||
}
|
|
||||||
|
26
assets/Scripts/Game/Items/ItemSpawner.ts
Normal file
26
assets/Scripts/Game/Items/ItemSpawner.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { Component, Prefab, Vec3, _decorator } from "cc";
|
||||||
|
import { ObjectPool } from "../../Services/ObjectPool";
|
||||||
|
import { Item } from "./Item";
|
||||||
|
|
||||||
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
@ccclass("ItemSpawner")
|
||||||
|
export class ItemSpawner extends Component {
|
||||||
|
@property(Prefab) public itemPrefab: Prefab;
|
||||||
|
|
||||||
|
private itemPool: ObjectPool<Item>;
|
||||||
|
public init(): void {
|
||||||
|
this.itemPool = new ObjectPool<Item>(this.itemPrefab, this.node, 5, "Item");
|
||||||
|
}
|
||||||
|
|
||||||
|
public spawn(position: Vec3): void {
|
||||||
|
const item: Item = this.itemPool.borrow();
|
||||||
|
item.setup(position);
|
||||||
|
item.PickupEvent.on(this.return, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private return(gold: Item): void {
|
||||||
|
gold.PickupEvent.off(this.return);
|
||||||
|
this.itemPool.return(gold);
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
"ver": "4.0.23",
|
"ver": "4.0.23",
|
||||||
"importer": "typescript",
|
"importer": "typescript",
|
||||||
"imported": true,
|
"imported": true,
|
||||||
"uuid": "abf1ff90-c9a3-4d65-8bb9-1ac9ebeb7d51",
|
"uuid": "74c52c0a-cced-4f28-a00d-a012374264bb",
|
||||||
"files": [],
|
"files": [],
|
||||||
"subMetas": {},
|
"subMetas": {},
|
||||||
"userData": {}
|
"userData": {}
|
7
assets/Scripts/Game/Items/ItemType.ts
Normal file
7
assets/Scripts/Game/Items/ItemType.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export enum ItemType {
|
||||||
|
XP,
|
||||||
|
Gold,
|
||||||
|
HealthPotion,
|
||||||
|
Magnet,
|
||||||
|
Chest
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
"ver": "4.0.23",
|
"ver": "4.0.23",
|
||||||
"importer": "typescript",
|
"importer": "typescript",
|
||||||
"imported": true,
|
"imported": true,
|
||||||
"uuid": "41f6700e-1184-4c4c-b5f0-35fec21bd88e",
|
"uuid": "bd234201-f46c-4031-8e2d-930fa90b2277",
|
||||||
"files": [],
|
"files": [],
|
||||||
"subMetas": {},
|
"subMetas": {},
|
||||||
"userData": {}
|
"userData": {}
|
@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"ver": "1.1.0",
|
|
||||||
"importer": "directory",
|
|
||||||
"imported": true,
|
|
||||||
"uuid": "1e85dd0e-3cbc-4870-9a6a-50e0c29cfeb7",
|
|
||||||
"files": [],
|
|
||||||
"subMetas": {},
|
|
||||||
"userData": {
|
|
||||||
"compressionType": {},
|
|
||||||
"isRemoteBundle": {}
|
|
||||||
}
|
|
||||||
}
|
|
14
assets/Scripts/Game/Items/XP.ts
Normal file
14
assets/Scripts/Game/Items/XP.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import { Animation, Vec3, _decorator } from "cc";
|
||||||
|
import { Item } from "./Item";
|
||||||
|
|
||||||
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
@ccclass("XP")
|
||||||
|
export class XP extends Item {
|
||||||
|
@property(Animation) private animation: Animation;
|
||||||
|
|
||||||
|
public setup(position: Vec3): void {
|
||||||
|
super.setup(position);
|
||||||
|
this.animation.play("DropStart");
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
"ver": "4.0.23",
|
"ver": "4.0.23",
|
||||||
"importer": "typescript",
|
"importer": "typescript",
|
||||||
"imported": true,
|
"imported": true,
|
||||||
"uuid": "7a5361b6-3ae7-45b6-94ec-a05f322d7896",
|
"uuid": "801bcd5f-12e5-4ce6-93e7-d9bb66f4d299",
|
||||||
"files": [],
|
"files": [],
|
||||||
"subMetas": {},
|
"subMetas": {},
|
||||||
"userData": {}
|
"userData": {}
|
@ -1,33 +0,0 @@
|
|||||||
import { Animation, Component, Vec3, _decorator } from "cc";
|
|
||||||
import { ISignal } from "../../../Services/EventSystem/ISignal";
|
|
||||||
import { Signal } from "../../../Services/EventSystem/Signal";
|
|
||||||
|
|
||||||
const { ccclass, property } = _decorator;
|
|
||||||
|
|
||||||
@ccclass("XP")
|
|
||||||
export class XP extends Component {
|
|
||||||
@property(Animation) private animation: Animation;
|
|
||||||
|
|
||||||
private pickUpEvent: Signal<XP> = new Signal<XP>();
|
|
||||||
private value = 2;
|
|
||||||
|
|
||||||
public setup(position: Vec3, value: number): void {
|
|
||||||
this.node.setWorldPosition(position);
|
|
||||||
this.value = value;
|
|
||||||
this.node.active = true;
|
|
||||||
this.animation.play("DropStart");
|
|
||||||
}
|
|
||||||
|
|
||||||
public get Value(): number {
|
|
||||||
return this.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public get PickupEvent(): ISignal<XP> {
|
|
||||||
return this.pickUpEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public pickup(): void {
|
|
||||||
this.pickUpEvent.trigger(this);
|
|
||||||
this.node.active = false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
import { Component, Prefab, Vec3, _decorator } from "cc";
|
|
||||||
import { ObjectPool } from "../../../Services/ObjectPool";
|
|
||||||
|
|
||||||
import { XP } from "./XP";
|
|
||||||
const { ccclass, property } = _decorator;
|
|
||||||
|
|
||||||
@ccclass("XPSpawner")
|
|
||||||
export class XPSpawner extends Component {
|
|
||||||
@property(Prefab) public xpPrefab: Prefab;
|
|
||||||
|
|
||||||
private xpPool: ObjectPool<XP>;
|
|
||||||
public init(): void {
|
|
||||||
this.xpPool = new ObjectPool<XP>(this.xpPrefab, this.node, 5, "XP");
|
|
||||||
}
|
|
||||||
|
|
||||||
public spawnXp(position: Vec3, value: number): void {
|
|
||||||
const xp: XP = this.xpPool.borrow();
|
|
||||||
xp.setup(position, value);
|
|
||||||
xp.PickupEvent.on(this.returnXp, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private returnXp(xp: XP): void {
|
|
||||||
xp.PickupEvent.off(this.returnXp);
|
|
||||||
this.xpPool.return(xp);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"ver": "4.0.23",
|
|
||||||
"importer": "typescript",
|
|
||||||
"imported": true,
|
|
||||||
"uuid": "ab9e206b-f11a-417c-814b-07d29c59ed6e",
|
|
||||||
"files": [],
|
|
||||||
"subMetas": {},
|
|
||||||
"userData": {}
|
|
||||||
}
|
|
@ -15,7 +15,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index": 4,
|
"index": 4,
|
||||||
"name": "XP"
|
"name": "ITEM"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index": 5,
|
"index": 5,
|
||||||
@ -26,12 +26,8 @@
|
|||||||
"name": "ENEMY_PROJECTILE"
|
"name": "ENEMY_PROJECTILE"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index": 7,
|
"index": 9,
|
||||||
"name": "GOLD"
|
"name": "MAGNET_RANGE"
|
||||||
},
|
|
||||||
{
|
|
||||||
"index": 8,
|
|
||||||
"name": "HEALTH_POTION"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"collisionMatrix": {
|
"collisionMatrix": {
|
||||||
@ -43,7 +39,8 @@
|
|||||||
"5": 4,
|
"5": 4,
|
||||||
"6": 2,
|
"6": 2,
|
||||||
"7": 2,
|
"7": 2,
|
||||||
"8": 2
|
"8": 2,
|
||||||
|
"9": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
|
Loading…
Reference in New Issue
Block a user