Gold gathering

This commit is contained in:
Martin 2022-12-19 15:50:24 +01:00
parent c2bf40b471
commit 5650165d3c
14 changed files with 363 additions and 164 deletions

View File

@ -38,10 +38,13 @@
}, },
{ {
"__id__": 18 "__id__": 18
},
{
"__id__": 20
} }
], ],
"_prefab": { "_prefab": {
"__id__": 20 "__id__": 22
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@ -135,8 +138,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 9, "width": 18,
"height": 14 "height": 28
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
@ -147,7 +150,7 @@
}, },
{ {
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "53nGERPRhPy6FM/FhqJb8c" "fileId": "dfvDv0RdZNeLAIWzWNC0pJ"
}, },
{ {
"__type__": "cc.Sprite", "__type__": "cc.Sprite",
@ -176,7 +179,7 @@
}, },
"_type": 0, "_type": 0,
"_fillType": 0, "_fillType": 0,
"_sizeMode": 1, "_sizeMode": 0,
"_fillCenter": { "_fillCenter": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
"x": 0, "x": 0,
@ -244,8 +247,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 9, "width": 18,
"height": 14 "height": 28
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
@ -285,7 +288,7 @@
}, },
"_type": 0, "_type": 0,
"_fillType": 0, "_fillType": 0,
"_sizeMode": 1, "_sizeMode": 0,
"_fillCenter": { "_fillCenter": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
"x": 0, "x": 0,
@ -359,7 +362,7 @@
"__id__": 19 "__id__": 19
}, },
"tag": 0, "tag": 0,
"_group": 1, "_group": 128,
"_density": 1, "_density": 1,
"_sensor": false, "_sensor": false,
"_friction": 0.2, "_friction": 0.2,
@ -367,12 +370,12 @@
"_offset": { "_offset": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
"x": 0, "x": 0,
"y": 2.3 "y": 4
}, },
"_size": { "_size": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 12, "width": 18,
"height": 12 "height": 20
}, },
"_id": "" "_id": ""
}, },
@ -380,6 +383,23 @@
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "67joCa7ptP34A+uWLWHsEf" "fileId": "67joCa7ptP34A+uWLWHsEf"
}, },
{
"__type__": "41f67AOEYRMTLXwNf7CG9iO",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 21
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "08V7VtIFBG1bgEhFLO5GoU"
},
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {

View File

@ -27,11 +27,11 @@
"_active": true, "_active": true,
"_components": [], "_components": [],
"_prefab": { "_prefab": {
"__id__": 94 "__id__": 96
}, },
"autoReleaseAssets": false, "autoReleaseAssets": false,
"_globals": { "_globals": {
"__id__": 97 "__id__": 99
}, },
"_id": "cffa5b19-2043-4cef-8221-1a10ab7a2c1f" "_id": "cffa5b19-2043-4cef-8221-1a10ab7a2c1f"
}, },
@ -232,22 +232,22 @@
"__id__": 30 "__id__": 30
}, },
{ {
"__id__": 36 "__id__": 38
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{
"__id__": 90
},
{
"__id__": 91
},
{ {
"__id__": 92 "__id__": 92
}, },
{ {
"__id__": 93 "__id__": 93
},
{
"__id__": 94
},
{
"__id__": 95
} }
], ],
"_prefab": null, "_prefab": null,
@ -674,12 +674,15 @@
}, },
{ {
"__id__": 33 "__id__": 33
},
{
"__id__": 35
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 35 "__id__": 37
} }
], ],
"_prefab": null, "_prefab": null,
@ -771,7 +774,7 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "EnemySpawner", "_name": "GoldSpawner",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 30 "__id__": 30
@ -810,6 +813,64 @@
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
"_id": "4c8/jo4pJOlpZd+rBu+9OO"
},
{
"__type__": "abf1f+QyaNNZYu5Gsnr631R",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 33
},
"_enabled": true,
"__prefab": null,
"goldPrefab": {
"__uuid__": "eb604b78-90e3-4379-bb3a-7f1271d8a403",
"__expectedType__": "cc.Prefab"
},
"_id": "e09xeGmLJFQZ8h6y27oyCC"
},
{
"__type__": "cc.Node",
"_name": "EnemySpawner",
"_objFlags": 0,
"_parent": {
"__id__": 30
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 36
}
],
"_prefab": null,
"_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": "936Vpv3ydL8JZMvakVgAP5" "_id": "936Vpv3ydL8JZMvakVgAP5"
}, },
{ {
@ -817,7 +878,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 33 "__id__": 35
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -847,11 +908,14 @@
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
"enemySpawner": { "enemySpawner": {
"__id__": 34 "__id__": 36
}, },
"xpSpawner": { "xpSpawner": {
"__id__": 32 "__id__": 32
}, },
"goldSpawner": {
"__id__": 34
},
"_id": "1ffjazmm5IkZwKInsSIULY" "_id": "1ffjazmm5IkZwKInsSIULY"
}, },
{ {
@ -863,28 +927,28 @@
}, },
"_children": [ "_children": [
{ {
"__id__": 37 "__id__": 39
}, },
{ {
"__id__": 63 "__id__": 65
}, },
{ {
"__id__": 77 "__id__": 79
}, },
{ {
"__id__": 80 "__id__": 82
}, },
{ {
"__id__": 83 "__id__": 85
}, },
{ {
"__id__": 86 "__id__": 88
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 89 "__id__": 91
} }
], ],
"_prefab": null, "_prefab": null,
@ -921,20 +985,20 @@
"_name": "GameUI", "_name": "GameUI",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 36 "__id__": 38
}, },
"_children": [ "_children": [
{ {
"__id__": 38 "__id__": 40
}, },
{ {
"__id__": 53 "__id__": 55
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 62 "__id__": 64
} }
], ],
"_prefab": null, "_prefab": null,
@ -971,23 +1035,23 @@
"_name": "TopUI", "_name": "TopUI",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 37 "__id__": 39
}, },
"_children": [ "_children": [
{ {
"__id__": 39 "__id__": 41
}, },
{ {
"__id__": 48 "__id__": 50
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 51 "__id__": 53
}, },
{ {
"__id__": 52 "__id__": 54
} }
], ],
"_prefab": null, "_prefab": null,
@ -1024,23 +1088,23 @@
"_name": "XpBar", "_name": "XpBar",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 38 "__id__": 40
}, },
"_children": [ "_children": [
{ {
"__id__": 40 "__id__": 42
}, },
{ {
"__id__": 43 "__id__": 45
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 46 "__id__": 48
}, },
{ {
"__id__": 47 "__id__": 49
} }
], ],
"_prefab": null, "_prefab": null,
@ -1077,16 +1141,16 @@
"_name": "Background", "_name": "Background",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 39 "__id__": 41
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 41 "__id__": 43
}, },
{ {
"__id__": 42 "__id__": 44
} }
], ],
"_prefab": null, "_prefab": null,
@ -1123,7 +1187,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 40 "__id__": 42
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1144,7 +1208,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 40 "__id__": 42
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1182,16 +1246,16 @@
"_name": "MovableBar", "_name": "MovableBar",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 39 "__id__": 41
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 44 "__id__": 46
}, },
{ {
"__id__": 45 "__id__": 47
} }
], ],
"_prefab": null, "_prefab": null,
@ -1228,7 +1292,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 43 "__id__": 45
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1249,7 +1313,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 43 "__id__": 45
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1287,7 +1351,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 39 "__id__": 41
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1308,12 +1372,12 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 39 "__id__": 41
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
"_barSprite": { "_barSprite": {
"__id__": 45 "__id__": 47
}, },
"_mode": 0, "_mode": 0,
"_totalLength": 600, "_totalLength": 600,
@ -1326,16 +1390,16 @@
"_name": "TimeAliveText", "_name": "TimeAliveText",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 38 "__id__": 40
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 49 "__id__": 51
}, },
{ {
"__id__": 50 "__id__": 52
} }
], ],
"_prefab": null, "_prefab": null,
@ -1372,7 +1436,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 48 "__id__": 50
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1393,7 +1457,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 48 "__id__": 50
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1434,7 +1498,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 38 "__id__": 40
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1455,7 +1519,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 38 "__id__": 40
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1484,17 +1548,17 @@
"_name": "UI", "_name": "UI",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 37 "__id__": 39
}, },
"_children": [ "_children": [
{ {
"__id__": 54 "__id__": 56
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 61 "__id__": 63
} }
], ],
"_prefab": null, "_prefab": null,
@ -1531,23 +1595,23 @@
"_name": "VirtualJoystic", "_name": "VirtualJoystic",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 53 "__id__": 55
}, },
"_children": [ "_children": [
{ {
"__id__": 55 "__id__": 57
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{
"__id__": 58
},
{
"__id__": 59
},
{ {
"__id__": 60 "__id__": 60
},
{
"__id__": 61
},
{
"__id__": 62
} }
], ],
"_prefab": null, "_prefab": null,
@ -1584,16 +1648,16 @@
"_name": "Knob", "_name": "Knob",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 54 "__id__": 56
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 56 "__id__": 58
}, },
{ {
"__id__": 57 "__id__": 59
} }
], ],
"_prefab": null, "_prefab": null,
@ -1630,7 +1694,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 55 "__id__": 57
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1651,7 +1715,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 55 "__id__": 57
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1689,7 +1753,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 54 "__id__": 56
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1710,7 +1774,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 54 "__id__": 56
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1748,13 +1812,13 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 54 "__id__": 56
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
"maxDistance": 50, "maxDistance": 50,
"knob": { "knob": {
"__id__": 55 "__id__": 57
}, },
"_id": "50ceZG62tGlYXvZWEvSDKl" "_id": "50ceZG62tGlYXvZWEvSDKl"
}, },
@ -1763,7 +1827,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 53 "__id__": 55
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -1784,15 +1848,15 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 37 "__id__": 39
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
"xpBar": { "xpBar": {
"__id__": 47 "__id__": 49
}, },
"timeAliveText": { "timeAliveText": {
"__id__": 50 "__id__": 52
}, },
"_id": "bau/7eItRFrKKoAZZb/uYL" "_id": "bau/7eItRFrKKoAZZb/uYL"
}, },
@ -1801,20 +1865,20 @@
"_name": "ModalWindowManager", "_name": "ModalWindowManager",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 36 "__id__": 38
}, },
"_children": [ "_children": [
{ {
"__id__": 64 "__id__": 66
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 75 "__id__": 77
}, },
{ {
"__id__": 76 "__id__": 78
} }
], ],
"_prefab": null, "_prefab": null,
@ -1850,17 +1914,17 @@
"__type__": "cc.Node", "__type__": "cc.Node",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 63 "__id__": 65
}, },
"_prefab": { "_prefab": {
"__id__": 65 "__id__": 67
}, },
"__editorExtras__": {} "__editorExtras__": {}
}, },
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {
"__id__": 64 "__id__": 66
}, },
"asset": { "asset": {
"__uuid__": "663674aa-da1c-44b0-8049-49db9b020973", "__uuid__": "663674aa-da1c-44b0-8049-49db9b020973",
@ -1868,11 +1932,11 @@
}, },
"fileId": "32U/bJCUBDlaQxxGFNXZTu", "fileId": "32U/bJCUBDlaQxxGFNXZTu",
"instance": { "instance": {
"__id__": 66 "__id__": 68
}, },
"targetOverrides": [ "targetOverrides": [
{ {
"__id__": 73 "__id__": 75
} }
] ]
}, },
@ -1882,20 +1946,20 @@
"mountedChildren": [], "mountedChildren": [],
"mountedComponents": [], "mountedComponents": [],
"propertyOverrides": [ "propertyOverrides": [
{
"__id__": 67
},
{ {
"__id__": 69 "__id__": 69
}, },
{
"__id__": 70
},
{ {
"__id__": 71 "__id__": 71
}, },
{ {
"__id__": 72 "__id__": 72
},
{
"__id__": 73
},
{
"__id__": 74
} }
], ],
"removedComponents": [] "removedComponents": []
@ -1903,7 +1967,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 68 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_name" "_name"
@ -1919,7 +1983,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 68 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_lpos" "_lpos"
@ -1934,7 +1998,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 68 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_lrot" "_lrot"
@ -1950,7 +2014,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 68 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_euler" "_euler"
@ -1965,7 +2029,7 @@
{ {
"__type__": "CCPropertyOverrideInfo", "__type__": "CCPropertyOverrideInfo",
"targetInfo": { "targetInfo": {
"__id__": 68 "__id__": 70
}, },
"propertyPath": [ "propertyPath": [
"_active" "_active"
@ -1982,7 +2046,7 @@
], ],
"target": null, "target": null,
"targetInfo": { "targetInfo": {
"__id__": 74 "__id__": 76
} }
}, },
{ {
@ -1996,7 +2060,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 63 "__id__": 65
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2017,7 +2081,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 63 "__id__": 65
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2034,16 +2098,16 @@
"_name": "Sprite", "_name": "Sprite",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 36 "__id__": 38
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 78 "__id__": 80
}, },
{ {
"__id__": 79 "__id__": 81
} }
], ],
"_prefab": null, "_prefab": null,
@ -2080,7 +2144,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 77 "__id__": 79
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2101,7 +2165,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 77 "__id__": 79
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2139,16 +2203,16 @@
"_name": "Sprite-001", "_name": "Sprite-001",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 36 "__id__": 38
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 81 "__id__": 83
}, },
{ {
"__id__": 82 "__id__": 84
} }
], ],
"_prefab": null, "_prefab": null,
@ -2185,7 +2249,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 80 "__id__": 82
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2206,7 +2270,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 80 "__id__": 82
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2244,16 +2308,16 @@
"_name": "Sprite-002", "_name": "Sprite-002",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 36 "__id__": 38
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 84 "__id__": 86
}, },
{ {
"__id__": 85 "__id__": 87
} }
], ],
"_prefab": null, "_prefab": null,
@ -2290,7 +2354,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 83 "__id__": 85
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2311,7 +2375,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 83 "__id__": 85
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2349,16 +2413,16 @@
"_name": "Sprite-003", "_name": "Sprite-003",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 36 "__id__": 38
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 87 "__id__": 89
}, },
{ {
"__id__": 88 "__id__": 90
} }
], ],
"_prefab": null, "_prefab": null,
@ -2395,7 +2459,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 86 "__id__": 88
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2416,7 +2480,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 86 "__id__": 88
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2454,7 +2518,7 @@
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"node": { "node": {
"__id__": 36 "__id__": 38
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2523,7 +2587,7 @@
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
"_cameraComponent": { "_cameraComponent": {
"__id__": 89 "__id__": 91
}, },
"_alignCanvasWithScreen": true, "_alignCanvasWithScreen": true,
"_id": "12O/ljcVlEqLmVm3U2gEOQ" "_id": "12O/ljcVlEqLmVm3U2gEOQ"
@ -2567,7 +2631,7 @@
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
"virtualJoystic": { "virtualJoystic": {
"__id__": 60 "__id__": 62
}, },
"player": null, "player": null,
"haloProjectileLauncherComponent": { "haloProjectileLauncherComponent": {
@ -2580,19 +2644,19 @@
"__id__": 21 "__id__": 21
}, },
"enemyManager": { "enemyManager": {
"__id__": 35 "__id__": 37
}, },
"camera": { "camera": {
"__id__": 89 "__id__": 91
}, },
"gameUI": { "gameUI": {
"__id__": 62 "__id__": 64
}, },
"background": { "background": {
"__id__": 15 "__id__": 15
}, },
"modalWindowManager": { "modalWindowManager": {
"__id__": 76 "__id__": 78
}, },
"_id": "3a9z1bqlFCGL4/WyDwU4L5" "_id": "3a9z1bqlFCGL4/WyDwU4L5"
}, },
@ -2601,7 +2665,7 @@
"fileId": "cffa5b19-2043-4cef-8221-1a10ab7a2c1f", "fileId": "cffa5b19-2043-4cef-8221-1a10ab7a2c1f",
"targetOverrides": [ "targetOverrides": [
{ {
"__id__": 95 "__id__": 97
} }
], ],
"nestedPrefabInstanceRoots": [ "nestedPrefabInstanceRoots": [
@ -2612,14 +2676,14 @@
"__id__": 22 "__id__": 22
}, },
{ {
"__id__": 64 "__id__": 66
} }
] ]
}, },
{ {
"__type__": "cc.TargetOverrideInfo", "__type__": "cc.TargetOverrideInfo",
"source": { "source": {
"__id__": 93 "__id__": 95
}, },
"sourceInfo": null, "sourceInfo": null,
"propertyPath": [ "propertyPath": [
@ -2629,7 +2693,7 @@
"__id__": 22 "__id__": 22
}, },
"targetInfo": { "targetInfo": {
"__id__": 96 "__id__": 98
} }
}, },
{ {
@ -2641,19 +2705,19 @@
{ {
"__type__": "cc.SceneGlobals", "__type__": "cc.SceneGlobals",
"ambient": { "ambient": {
"__id__": 98
},
"shadows": {
"__id__": 99
},
"_skybox": {
"__id__": 100 "__id__": 100
}, },
"fog": { "shadows": {
"__id__": 101 "__id__": 101
}, },
"octree": { "_skybox": {
"__id__": 102 "__id__": 102
},
"fog": {
"__id__": 103
},
"octree": {
"__id__": 104
} }
}, },
{ {

View File

@ -4,15 +4,16 @@ import { Player } from "../Unit/Player/Player";
import { GameTimer } from "../../Services/GameTimer"; import { GameTimer } from "../../Services/GameTimer";
import { XP } from "../XP/XP"; import { XP } from "../XP/XP";
import { Enemy } from "../Unit/Enemy/Enemy"; import { Enemy } from "../Unit/Enemy/Enemy";
import { Gold } from "../Gold/Gold";
import { GameResult } from "../Game";
export class PlayerCollisionSystem { export class PlayerCollisionSystem {
private playerContacts: Collider2D[] = []; private playerContacts: Collider2D[] = [];
private collisionTimer: GameTimer; private collisionTimer: GameTimer;
private player: Player;
private groupToResolver: Map<number, (collider: Collider2D) => void> = new Map<number, (collider: Collider2D) => void>(); private groupToResolver: Map<number, (collider: Collider2D) => void> = new Map<number, (collider: Collider2D) => void>();
public constructor(player: Player, collisionDelay: number) { public constructor(private player: Player, collisionDelay: number, private gameResult: GameResult) {
this.player = player; this.player = player;
player.Collider.on(Contact2DType.BEGIN_CONTACT, this.onPlayerContactBegin, this); player.Collider.on(Contact2DType.BEGIN_CONTACT, this.onPlayerContactBegin, this);
@ -22,6 +23,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.XP, this.resolveXpContact.bind(this)); this.groupToResolver.set(GroupType.XP, this.resolveXpContact.bind(this));
this.groupToResolver.set(GroupType.GOLD, this.resolveGoldContact.bind(this));
} }
public gameTick(deltaTime: number): void { public gameTick(deltaTime: number): void {
@ -70,4 +72,12 @@ export class PlayerCollisionSystem {
console.log("Collided with xp: " + xp); console.log("Collided with xp: " + xp);
} }
private resolveGoldContact(goldCollider: Collider2D): void {
const gold: Gold = goldCollider.node.getComponent(Gold);
gold.pickup();
this.gameResult.goldCoins++;
console.log("Collided with gold " + gold);
}
} }

View File

@ -65,6 +65,7 @@ export class Game extends Component {
translationData: TranslationData, translationData: TranslationData,
testValues?: TestValues testValues?: TestValues
): Promise<GameResult> { ): Promise<GameResult> {
const gameResult = new GameResult();
const metaUpgrades = new MetaUpgrades(userData.game.metaUpgrades, settings.metaUpgrades); const metaUpgrades = new MetaUpgrades(userData.game.metaUpgrades, settings.metaUpgrades);
this.virtualJoystic.init(); this.virtualJoystic.init();
@ -75,7 +76,7 @@ export class Game extends Component {
this.player.init(multiInput, this.createPlayerData(settings.player, metaUpgrades)); this.player.init(multiInput, this.createPlayerData(settings.player, metaUpgrades));
this.playerCollisionSystem = new PlayerCollisionSystem(this.player, settings.player.collisionDelay); this.playerCollisionSystem = new PlayerCollisionSystem(this.player, settings.player.collisionDelay, gameResult);
new WeaponCollisionSystem(this.player.Weapon); new WeaponCollisionSystem(this.player.Weapon);
this.enemyManager.init(this.player.node, settings.enemyManager); this.enemyManager.init(this.player.node, settings.enemyManager);
@ -128,11 +129,11 @@ export class Game extends Component {
this.gamePauser.resume(); this.gamePauser.resume();
// while not dead while (this.player.Health.IsAlive) await delay(100);
await delay(1000000);
this.gamePauser.pause(); this.gamePauser.pause();
Game.instance = null; Game.instance = null;
return { goldCoins: 1, score: Math.floor(this.timeAlive) }; gameResult.score = this.timeAlive;
return gameResult;
} }
public update(deltaTime: number): void { public update(deltaTime: number): void {

View File

@ -0,0 +1,12 @@
{
"ver": "1.1.0",
"importer": "directory",
"imported": true,
"uuid": "51704601-c62e-4fff-93ee-73a81cac6e1b",
"files": [],
"subMetas": {},
"userData": {
"compressionType": {},
"isRemoteBundle": {}
}
}

View File

@ -0,0 +1,23 @@
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;
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "41f6700e-1184-4c4c-b5f0-35fec21bd88e",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -0,0 +1,26 @@
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);
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "abf1ff90-c9a3-4d65-8bb9-1ac9ebeb7d51",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -7,5 +7,6 @@ export enum GroupType {
WEAPON = 1 << 3, WEAPON = 1 << 3,
XP = 1 << 4, XP = 1 << 4,
PLAYER_PROJECTILE = 1 << 5, PLAYER_PROJECTILE = 1 << 5,
ENEMY_PROJECTILE = 1 << 6 ENEMY_PROJECTILE = 1 << 6,
GOLD = 1 << 7
} }

View File

@ -1,6 +1,7 @@
import { Component, Node, randomRange, Vec3, _decorator } from "cc"; import { Component, Node, random, randomRange, Vec3, _decorator } from "cc";
import { EnemyManagerSettings } from "../../Data/GameSettings"; import { EnemyManagerSettings } from "../../Data/GameSettings";
import { GoldSpawner } from "../../Gold/GoldSpawner";
import { XPSpawner } from "../../XP/XPSpawner"; import { XPSpawner } from "../../XP/XPSpawner";
import { Enemy } from "./Enemy"; import { Enemy } from "./Enemy";
import { EnemyMovementType } from "./EnemyMovementType"; import { EnemyMovementType } from "./EnemyMovementType";
@ -20,6 +21,7 @@ const { ccclass, property } = _decorator;
export class EnemyManager extends Component { export class EnemyManager extends Component {
@property(EnemySpawner) private enemySpawner: EnemySpawner; @property(EnemySpawner) private enemySpawner: EnemySpawner;
@property(XPSpawner) private xpSpawner: XPSpawner; @property(XPSpawner) private xpSpawner: XPSpawner;
@property(GoldSpawner) private goldSpawner: GoldSpawner;
private movementTypeToMover: Map<EnemyMovementType, EnemyMover> = new Map<EnemyMovementType, EnemyMover>(); private movementTypeToMover: Map<EnemyMovementType, EnemyMover> = new Map<EnemyMovementType, EnemyMover>();
@ -50,6 +52,7 @@ export class EnemyManager extends Component {
this.movementTypeToMover.set(EnemyMovementType.PeriodicFollow, new PeriodicFollowTargetEnemyMover(targetNode, 5, 5)); this.movementTypeToMover.set(EnemyMovementType.PeriodicFollow, new PeriodicFollowTargetEnemyMover(targetNode, 5, 5));
this.xpSpawner.init(); this.xpSpawner.init();
this.goldSpawner.init();
} }
public gameTick(deltaTime: number): void { public gameTick(deltaTime: number): void {
@ -72,6 +75,21 @@ export class EnemyManager extends Component {
position.y += randomRange(-10, 10); position.y += randomRange(-10, 10);
this.xpSpawner.spawnXp(position, 1); this.xpSpawner.spawnXp(position, 1);
} }
if (0 < enemy.GoldReward) {
if (enemy.GoldReward < 1) {
if (random() < enemy.GoldReward) {
this.goldSpawner.spawn(enemy.node.worldPosition);
}
} else {
for (let i = 0; i < enemy.GoldReward; i++) {
const position: Vec3 = enemy.node.worldPosition;
position.x += randomRange(-10, 10);
position.y += randomRange(-10, 10);
this.goldSpawner.spawn(position);
}
}
}
} }
private onEnemyLifetimeEnded(enemy: Enemy): void { private onEnemyLifetimeEnded(enemy: Enemy): void {

View File

@ -33,8 +33,8 @@ export class GameRunner {
} }
AppRoot.Instance.SaveSystem.save(userData); AppRoot.Instance.SaveSystem.save(userData);
console.log("Gold coins: " + result); await delay(1000);
console.log("All gold coins: " + userData.game.goldCoins); director.loadScene("Menu");
this.isRunning = false; this.isRunning = false;
} }

View File

@ -66,6 +66,7 @@ export class UpgradesModalWindow extends ModalWindow<Empty, Empty> {
const level = ++this.userData.game.metaUpgrades[this.typeToLevelKey.get(upgradeType)]; const level = ++this.userData.game.metaUpgrades[this.typeToLevelKey.get(upgradeType)];
this.typeToUpgradeUI.get(upgradeType).updateLevel(level); this.typeToUpgradeUI.get(upgradeType).updateLevel(level);
this.goldCoinsLabel.string = this.userData.game.goldCoins.toString();
AppRoot.Instance.SaveSystem.save(this.userData); AppRoot.Instance.SaveSystem.save(this.userData);
} }
} }

View File

@ -24,16 +24,21 @@
{ {
"index": 6, "index": 6,
"name": "ENEMY_PROJECTILE" "name": "ENEMY_PROJECTILE"
},
{
"index": 7,
"name": "GOLD"
} }
], ],
"collisionMatrix": { "collisionMatrix": {
"0": 0, "0": 0,
"1": 84, "1": 212,
"2": 42, "2": 42,
"3": 4, "3": 4,
"4": 2, "4": 2,
"5": 4, "5": 4,
"6": 2 "6": 2,
"7": 2
} }
}, },
"general": { "general": {