cgserver 8.6.8 → 8.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/README.md +4 -0
  2. package/dist/lib/Framework/AI/AiObject.js +10 -10
  3. package/dist/lib/Framework/AI/Astar.js +133 -133
  4. package/dist/lib/Framework/AI/BehaviorAI.js +307 -307
  5. package/dist/lib/Framework/AI/Entity.js +33 -33
  6. package/dist/lib/Framework/AI/Point.js +68 -68
  7. package/dist/lib/Framework/AI/TriggerMgr.js +201 -201
  8. package/dist/lib/Framework/Config/Config.js +53 -53
  9. package/dist/lib/Framework/Config/DbConfig.js +14 -0
  10. package/dist/lib/Framework/Config/FrameworkConfig.js +207 -240
  11. package/dist/lib/Framework/Config/IServerConfig.js +26 -26
  12. package/dist/lib/Framework/Config/_error_.js +35 -35
  13. package/dist/lib/Framework/Core/Core.js +639 -639
  14. package/dist/lib/Framework/Core/Timer.js +116 -116
  15. package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +11 -11
  16. package/dist/lib/Framework/Database/Decorator/DBCache.js +64 -64
  17. package/dist/lib/Framework/Database/Decorator/NotNull.js +11 -11
  18. package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +11 -11
  19. package/dist/lib/Framework/Database/Decorator/Property.js +61 -61
  20. package/dist/lib/Framework/Database/Decorator/Table.js +15 -15
  21. package/dist/lib/Framework/Database/Decorator/Type.js +20 -20
  22. package/dist/lib/Framework/Database/MSSqlManager.js +53 -43
  23. package/dist/lib/Framework/Database/MongoBaseService.js +117 -117
  24. package/dist/lib/Framework/Database/MongoManager.js +462 -462
  25. package/dist/lib/Framework/Database/MysqlBaseService.js +281 -281
  26. package/dist/lib/Framework/Database/MysqlManager.js +179 -180
  27. package/dist/lib/Framework/Database/RedisManager.js +61 -53
  28. package/dist/lib/Framework/Decorator/AdminValidate.js +19 -19
  29. package/dist/lib/Framework/Decorator/AuthorityValidate.js +22 -22
  30. package/dist/lib/Framework/Decorator/CreatorValidate.js +19 -19
  31. package/dist/lib/Framework/Decorator/JsonAdminValidate.js +15 -15
  32. package/dist/lib/Framework/Decorator/JsonAuthorityValidate.js +20 -20
  33. package/dist/lib/Framework/Decorator/JsonCreatorValidate.js +19 -19
  34. package/dist/lib/Framework/Decorator/SyncCall.js +42 -42
  35. package/dist/lib/Framework/Decorator/SyncCallServer.js +77 -77
  36. package/dist/lib/Framework/Logic/CacheTool.js +73 -73
  37. package/dist/lib/Framework/Logic/EventTool.js +27 -27
  38. package/dist/lib/Framework/Logic/HttpTool.js +75 -75
  39. package/dist/lib/Framework/Logic/Log.js +140 -140
  40. package/dist/lib/Framework/Logic/SyncQueueTool.js +43 -43
  41. package/dist/lib/Framework/Service/MongoAccountService.js +367 -367
  42. package/dist/lib/Framework/Service/MongoCacheService.js +42 -42
  43. package/dist/lib/Framework/Service/MongoUserService.js +100 -100
  44. package/dist/lib/Framework/Service/MysqlAccountService.js +441 -441
  45. package/dist/lib/Framework/Service/MysqlUserService.js +171 -171
  46. package/dist/lib/Framework/Service/ini.js +36 -36
  47. package/dist/lib/Framework/SocketServer/IClientWebSocket.js +44 -44
  48. package/dist/lib/Framework/SocketServer/IRpc.js +12 -12
  49. package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js +63 -63
  50. package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js +63 -63
  51. package/dist/lib/Framework/SocketServer/IServerWebSocket.js +75 -75
  52. package/dist/lib/Framework/SocketServer/ISocketServer.js +205 -202
  53. package/dist/lib/Framework/SocketServer/IWebSocket.js +195 -195
  54. package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -57
  55. package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +8 -8
  56. package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -29
  57. package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +31 -31
  58. package/dist/lib/Framework/ThirdParty/AlipayTool.js +203 -203
  59. package/dist/lib/Framework/ThirdParty/Alisms.js +46 -46
  60. package/dist/lib/Framework/ThirdParty/AppleTool.js +234 -234
  61. package/dist/lib/Framework/ThirdParty/CgMq.js +132 -132
  62. package/dist/lib/Framework/ThirdParty/EmailTool.js +33 -33
  63. package/dist/lib/Framework/ThirdParty/OpenSocial.js +32 -32
  64. package/dist/lib/Framework/ThirdParty/QQTool.js +118 -118
  65. package/dist/lib/Framework/ThirdParty/QiniuTool.js +21 -21
  66. package/dist/lib/Framework/ThirdParty/Rpc.js +63 -63
  67. package/dist/lib/Framework/ThirdParty/WechatOATool.js +61 -61
  68. package/dist/lib/Framework/ThirdParty/WechatTool.js +74 -74
  69. package/dist/lib/Framework/WebServer/Controller/BaseController.js +112 -112
  70. package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -169
  71. package/dist/lib/Framework/WebServer/Controller/MysqlBaseUserController.js +169 -169
  72. package/dist/lib/Framework/WebServer/Engine/ControllerManager.js +112 -112
  73. package/dist/lib/Framework/WebServer/Engine/Engine.js +152 -152
  74. package/dist/lib/Framework/WebServer/Engine/RazorJs.js +544 -544
  75. package/dist/lib/Framework/WebServer/Engine/Request.js +237 -237
  76. package/dist/lib/Framework/WebServer/Engine/Response.js +100 -100
  77. package/dist/lib/Framework/WebServer/IWebServer.js +59 -54
  78. package/dist/lib/Framework/cgserver.js +121 -111
  79. package/dist/lib/Framework/index.js +201 -191
  80. package/dist/lib/test/test.js +21 -21
  81. package/dist/types/Framework/AI/AiObject.d.ts +5 -5
  82. package/dist/types/Framework/AI/Astar.d.ts +38 -38
  83. package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -24
  84. package/dist/types/Framework/AI/Entity.d.ts +12 -12
  85. package/dist/types/Framework/AI/Point.d.ts +17 -17
  86. package/dist/types/Framework/AI/TriggerMgr.d.ts +52 -52
  87. package/dist/types/Framework/Config/Config.d.ts +12 -12
  88. package/dist/types/Framework/Config/DbConfig.d.ts +10 -0
  89. package/dist/types/Framework/Config/FrameworkConfig.d.ts +203 -228
  90. package/dist/types/Framework/Config/IServerConfig.d.ts +9 -9
  91. package/dist/types/Framework/Config/_error_.d.ts +99 -99
  92. package/dist/types/Framework/Core/Core.d.ts +108 -108
  93. package/dist/types/Framework/Core/Timer.d.ts +16 -16
  94. package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -1
  95. package/dist/types/Framework/Database/Decorator/DBCache.d.ts +23 -23
  96. package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -1
  97. package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -1
  98. package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -57
  99. package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -1
  100. package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -1
  101. package/dist/types/Framework/Database/MSSqlManager.d.ts +27 -17
  102. package/dist/types/Framework/Database/MongoBaseService.d.ts +81 -81
  103. package/dist/types/Framework/Database/MongoManager.d.ts +156 -156
  104. package/dist/types/Framework/Database/MysqlBaseService.d.ts +34 -34
  105. package/dist/types/Framework/Database/MysqlManager.d.ts +53 -41
  106. package/dist/types/Framework/Database/RedisManager.d.ts +24 -17
  107. package/dist/types/Framework/Decorator/AdminValidate.d.ts +1 -1
  108. package/dist/types/Framework/Decorator/AuthorityValidate.d.ts +2 -2
  109. package/dist/types/Framework/Decorator/CreatorValidate.d.ts +1 -1
  110. package/dist/types/Framework/Decorator/JsonAdminValidate.d.ts +1 -1
  111. package/dist/types/Framework/Decorator/JsonAuthorityValidate.d.ts +2 -2
  112. package/dist/types/Framework/Decorator/JsonCreatorValidate.d.ts +1 -1
  113. package/dist/types/Framework/Decorator/SyncCall.d.ts +12 -12
  114. package/dist/types/Framework/Decorator/SyncCallServer.d.ts +14 -14
  115. package/dist/types/Framework/Logic/CacheTool.d.ts +27 -27
  116. package/dist/types/Framework/Logic/EventTool.d.ts +13 -13
  117. package/dist/types/Framework/Logic/HttpTool.d.ts +15 -15
  118. package/dist/types/Framework/Logic/Log.d.ts +25 -25
  119. package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -21
  120. package/dist/types/Framework/Service/MongoAccountService.d.ts +69 -69
  121. package/dist/types/Framework/Service/MongoCacheService.d.ts +14 -14
  122. package/dist/types/Framework/Service/MongoUserService.d.ts +35 -35
  123. package/dist/types/Framework/Service/MysqlAccountService.d.ts +74 -74
  124. package/dist/types/Framework/Service/MysqlUserService.d.ts +33 -33
  125. package/dist/types/Framework/Service/ini.d.ts +29 -29
  126. package/dist/types/Framework/SocketServer/IClientWebSocket.d.ts +17 -17
  127. package/dist/types/Framework/SocketServer/IRpc.d.ts +8 -8
  128. package/dist/types/Framework/SocketServer/IRpcClientWebSocket.d.ts +16 -16
  129. package/dist/types/Framework/SocketServer/IRpcServerWebSocket.d.ts +16 -16
  130. package/dist/types/Framework/SocketServer/IServerWebSocket.d.ts +28 -28
  131. package/dist/types/Framework/SocketServer/ISocketServer.d.ts +45 -45
  132. package/dist/types/Framework/SocketServer/IWebSocket.d.ts +60 -60
  133. package/dist/types/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -9
  134. package/dist/types/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -9
  135. package/dist/types/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -6
  136. package/dist/types/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -8
  137. package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +109 -109
  138. package/dist/types/Framework/ThirdParty/Alisms.d.ts +14 -14
  139. package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -131
  140. package/dist/types/Framework/ThirdParty/CgMq.d.ts +51 -51
  141. package/dist/types/Framework/ThirdParty/EmailTool.d.ts +5 -5
  142. package/dist/types/Framework/ThirdParty/OpenSocial.d.ts +7 -7
  143. package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -41
  144. package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +6 -6
  145. package/dist/types/Framework/ThirdParty/Rpc.d.ts +20 -20
  146. package/dist/types/Framework/ThirdParty/WechatOATool.d.ts +13 -13
  147. package/dist/types/Framework/ThirdParty/WechatTool.d.ts +20 -20
  148. package/dist/types/Framework/WebServer/Controller/BaseController.d.ts +33 -33
  149. package/dist/types/Framework/WebServer/Controller/MongoBaseUserController.d.ts +27 -27
  150. package/dist/types/Framework/WebServer/Controller/MysqlBaseUserController.d.ts +27 -27
  151. package/dist/types/Framework/WebServer/Engine/ControllerManager.d.ts +35 -35
  152. package/dist/types/Framework/WebServer/Engine/Engine.d.ts +21 -21
  153. package/dist/types/Framework/WebServer/Engine/RazorJs.d.ts +21 -21
  154. package/dist/types/Framework/WebServer/Engine/Request.d.ts +35 -35
  155. package/dist/types/Framework/WebServer/Engine/Response.d.ts +30 -30
  156. package/dist/types/Framework/WebServer/IWebServer.d.ts +20 -20
  157. package/dist/types/Framework/cgserver.d.ts +27 -25
  158. package/dist/types/Framework/index.d.ts +91 -86
  159. package/dist/types/test/test.d.ts +1 -1
  160. package/package.json +29 -32
@@ -1,33 +1,33 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Entity = void 0;
4
- const Point_1 = require("./Point");
5
- //世界物体,具有坐标可移动等特性
6
- class Entity {
7
- _id = -1;
8
- get id() {
9
- return this._id;
10
- }
11
- _world_pos = new Point_1.Point();
12
- get worldPos() {
13
- return this._world_pos;
14
- }
15
- set worldPos(value) {
16
- this._world_pos = value;
17
- }
18
- _cell = new Point_1.Point();
19
- get cellPos() {
20
- return this._cell;
21
- }
22
- set cellPos(value) {
23
- this._cell = value;
24
- }
25
- initPos(pos) {
26
- //不能直接赋值,因为是引用
27
- this._world_pos.x = pos.x + 0.5;
28
- this._world_pos.y = pos.y + 0.5;
29
- this._cell.x = pos.x;
30
- this._cell.y = pos.y;
31
- }
32
- }
33
- exports.Entity = Entity;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Entity = void 0;
4
+ const Point_1 = require("./Point");
5
+ //世界物体,具有坐标可移动等特性
6
+ class Entity {
7
+ _id = -1;
8
+ get id() {
9
+ return this._id;
10
+ }
11
+ _world_pos = new Point_1.Point();
12
+ get worldPos() {
13
+ return this._world_pos;
14
+ }
15
+ set worldPos(value) {
16
+ this._world_pos = value;
17
+ }
18
+ _cell = new Point_1.Point();
19
+ get cellPos() {
20
+ return this._cell;
21
+ }
22
+ set cellPos(value) {
23
+ this._cell = value;
24
+ }
25
+ initPos(pos) {
26
+ //不能直接赋值,因为是引用
27
+ this._world_pos.x = pos.x + 0.5;
28
+ this._world_pos.y = pos.y + 0.5;
29
+ this._cell.x = pos.x;
30
+ this._cell.y = pos.y;
31
+ }
32
+ }
33
+ exports.Entity = Entity;
@@ -1,68 +1,68 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Point = void 0;
4
- class Point {
5
- x = 0;
6
- y = 0;
7
- constructor(x = 0, y = 0) {
8
- this.x = x;
9
- this.y = y;
10
- }
11
- sub(pt) {
12
- return new Point(this.x - pt.x, this.y - pt.y);
13
- }
14
- subSelf(pt) {
15
- this.x -= pt.x;
16
- this.y -= pt.y;
17
- }
18
- add(pt) {
19
- return new Point(this.x + pt.x, this.y + pt.y);
20
- }
21
- addSelf(pt) {
22
- this.x += pt.x;
23
- this.y += pt.y;
24
- }
25
- equals(pt) {
26
- return this.x == pt.x && this.y == pt.y;
27
- }
28
- fuzzyEqual(pt, w) {
29
- let dtx = Math.abs(this.x - pt.x);
30
- if (dtx >= w) {
31
- return false;
32
- }
33
- let dty = Math.abs(this.y - pt.y);
34
- if (dty >= w) {
35
- return false;
36
- }
37
- return true;
38
- }
39
- length() {
40
- return Math.sqrt(this.x * this.x + this.y * this.y);
41
- }
42
- mul(n) {
43
- return new Point(this.x * n, this.y * n);
44
- }
45
- mulSelf(n) {
46
- this.x *= n;
47
- this.y *= n;
48
- }
49
- toI() {
50
- return new Point(Math.floor(this.x), Math.floor(this.y));
51
- }
52
- normalize() {
53
- let len = this.length();
54
- if (len == 0) {
55
- return new Point();
56
- }
57
- return new Point(this.x / len, this.y / len);
58
- }
59
- normalizeSelf() {
60
- let len = this.length();
61
- if (len == 0) {
62
- return;
63
- }
64
- this.x /= len;
65
- this.y /= len;
66
- }
67
- }
68
- exports.Point = Point;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Point = void 0;
4
+ class Point {
5
+ x = 0;
6
+ y = 0;
7
+ constructor(x = 0, y = 0) {
8
+ this.x = x;
9
+ this.y = y;
10
+ }
11
+ sub(pt) {
12
+ return new Point(this.x - pt.x, this.y - pt.y);
13
+ }
14
+ subSelf(pt) {
15
+ this.x -= pt.x;
16
+ this.y -= pt.y;
17
+ }
18
+ add(pt) {
19
+ return new Point(this.x + pt.x, this.y + pt.y);
20
+ }
21
+ addSelf(pt) {
22
+ this.x += pt.x;
23
+ this.y += pt.y;
24
+ }
25
+ equals(pt) {
26
+ return this.x == pt.x && this.y == pt.y;
27
+ }
28
+ fuzzyEqual(pt, w) {
29
+ let dtx = Math.abs(this.x - pt.x);
30
+ if (dtx >= w) {
31
+ return false;
32
+ }
33
+ let dty = Math.abs(this.y - pt.y);
34
+ if (dty >= w) {
35
+ return false;
36
+ }
37
+ return true;
38
+ }
39
+ length() {
40
+ return Math.sqrt(this.x * this.x + this.y * this.y);
41
+ }
42
+ mul(n) {
43
+ return new Point(this.x * n, this.y * n);
44
+ }
45
+ mulSelf(n) {
46
+ this.x *= n;
47
+ this.y *= n;
48
+ }
49
+ toI() {
50
+ return new Point(Math.floor(this.x), Math.floor(this.y));
51
+ }
52
+ normalize() {
53
+ let len = this.length();
54
+ if (len == 0) {
55
+ return new Point();
56
+ }
57
+ return new Point(this.x / len, this.y / len);
58
+ }
59
+ normalizeSelf() {
60
+ let len = this.length();
61
+ if (len == 0) {
62
+ return;
63
+ }
64
+ this.x /= len;
65
+ this.y /= len;
66
+ }
67
+ }
68
+ exports.Point = Point;
@@ -1,201 +1,201 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GTriggerMgr = exports.Trigger = exports.EConditionType = exports.ETriggerType = void 0;
4
- const Log_1 = require("./../Logic/Log");
5
- const Core_1 = require("../Core/Core");
6
- var ETriggerType;
7
- (function (ETriggerType) {
8
- ETriggerType[ETriggerType["Region"] = 0] = "Region";
9
- ETriggerType[ETriggerType["Condition"] = 1] = "Condition";
10
- })(ETriggerType = exports.ETriggerType || (exports.ETriggerType = {}));
11
- var EConditionType;
12
- (function (EConditionType) {
13
- EConditionType[EConditionType["Die"] = 0] = "Die";
14
- EConditionType[EConditionType["Hit"] = 1] = "Hit";
15
- EConditionType[EConditionType["HP"] = 2] = "HP";
16
- EConditionType[EConditionType["MP"] = 3] = "MP";
17
- })(EConditionType = exports.EConditionType || (exports.EConditionType = {}));
18
- class Trigger {
19
- region = null;
20
- }
21
- exports.Trigger = Trigger;
22
- let _GTriggerCode = 0;
23
- exports.GTriggerMgr = null;
24
- class TriggerManager {
25
- _regionTriggers = null;
26
- _conditionTriggers = {};
27
- //触发器的单个个体必须包含x,y,width,height,其他参数为各自需要添加
28
- init() {
29
- this.clearAll();
30
- }
31
- clearAll() {
32
- this.clearRegionTrigger();
33
- this.clearConditionTrigger();
34
- }
35
- clear(triggertype) {
36
- if (triggertype === undefined) {
37
- this.clearAll();
38
- }
39
- else if (triggertype == ETriggerType.Region) {
40
- this.clearRegionTrigger();
41
- }
42
- else {
43
- this.clearConditionTrigger();
44
- }
45
- }
46
- ////////////////////////////////////////////区域触发器//////////////////////////////////////////////////////
47
- //objs 需要检查的对象,regions触发起区域,callBackObj回调的对象
48
- initRegionTrigger(objs, triggers, callBackObj) {
49
- this.clearRegionTrigger();
50
- if (!triggers || triggers.length <= 0) {
51
- return;
52
- }
53
- for (let i = 0, length = triggers.length; i < length; ++i) {
54
- this._regionTriggers.triggerInfos[i] = { trigger: triggers[i] };
55
- }
56
- if (Core_1.core.isArray(objs)) {
57
- for (let i = 0, length = objs.length; i < length; ++i) {
58
- this._regionTriggers.objInfos[i] = { obj: objs[i], prePos: null };
59
- }
60
- }
61
- else {
62
- this._regionTriggers.objInfos[0] = { obj: objs, prePos: null };
63
- }
64
- if (typeof callBackObj !== "undefined") {
65
- this._regionTriggers.aiObj = callBackObj;
66
- }
67
- this._checkRegion(); //初始化check
68
- }
69
- clearRegionTrigger() {
70
- this._regionTriggers = { triggerInfos: [], objInfos: [], aiObj: null };
71
- }
72
- addObjToRegionTrigger(obj) {
73
- this._regionTriggers.objInfos[this._regionTriggers.objInfos.length] = { obj: obj, prePos: null };
74
- }
75
- removeObjInRegionTrigger(obj) {
76
- for (let i = 0; i < this._regionTriggers.objInfos.length; ++i) {
77
- let o = this._regionTriggers.objInfos[i].obj;
78
- if (o === obj) {
79
- this._regionTriggers.objInfos = this._regionTriggers.objInfos.splice(i, 1);
80
- return;
81
- }
82
- }
83
- }
84
- //是否在触发器内
85
- _isInTrigger(pos, region) {
86
- if (!pos || typeof region === "undefined") {
87
- return false;
88
- }
89
- Log_1.GLog.info("pos.x" + pos.x + " pos.y=" + pos.y);
90
- Log_1.GLog.info("region.x" + region.x + " region.y=" + region.y);
91
- if (pos.x < (region.x - region.width / 2)) {
92
- return false;
93
- }
94
- if (pos.x > (region.x + region.width / 2)) {
95
- return false;
96
- }
97
- if (pos.y < (region.y - region.height / 2)) {
98
- return false;
99
- }
100
- if (pos.y > (region.y + region.height / 2)) {
101
- return false;
102
- }
103
- return true;
104
- }
105
- //外部需要调用改接口
106
- check() {
107
- this._checkRegion();
108
- }
109
- _checkRegion() {
110
- for (let i = 0, length = this._regionTriggers.objInfos.length; i < length; ++i) {
111
- let info = this._regionTriggers.objInfos[i];
112
- if (!info) {
113
- continue;
114
- }
115
- let obj = info.obj;
116
- if (!obj) {
117
- this.removeObjInRegionTrigger(obj); //改对象已经无效
118
- continue;
119
- }
120
- let pos = obj.cellPos;
121
- if (!info.prePos) {
122
- info.prePos = pos;
123
- for (let i = 0, length = this._regionTriggers.triggerInfos.length; i < length; ++i) {
124
- let triggerInfo = this._regionTriggers.triggerInfos[i];
125
- if (this._isInTrigger(pos, triggerInfo.trigger.region)) {
126
- //原本在外面或首次检测,触发进入事件
127
- if (triggerInfo[obj.id] && triggerInfo[obj.id] == -1) {
128
- this._triggerIn(obj, triggerInfo.trigger);
129
- triggerInfo[obj.id] = 1;
130
- }
131
- }
132
- else {
133
- //原本在里面或者首次检测,现在不在了,触发走出触发器事件
134
- if (triggerInfo[obj.id] && triggerInfo[obj.id] == 1) {
135
- this._triggerOut(obj, triggerInfo.trigger);
136
- }
137
- triggerInfo[obj.id] = -1;
138
- }
139
- }
140
- }
141
- }
142
- }
143
- //从外面进入时触发
144
- _triggerIn(obj, trigger) {
145
- if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerIn) {
146
- return;
147
- }
148
- Log_1.GLog.info("some one triggered in");
149
- this._regionTriggers.aiObj.onTriggerIn(obj, trigger);
150
- }
151
- //从里面走出去的时候触发
152
- _triggerOut(obj, trigger) {
153
- if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerOut) {
154
- return;
155
- }
156
- Log_1.GLog.info("some one triggered out");
157
- this._regionTriggers.aiObj.onTriggerOut(obj, trigger);
158
- }
159
- //////////////////////////////////////条件触发器//////////////////////////////////////////////////
160
- initConditionTrigger() {
161
- this._conditionTriggers = {};
162
- for (let conditiontype in EConditionType) {
163
- this._conditionTriggers[conditiontype] = {};
164
- }
165
- }
166
- clearConditionTrigger() {
167
- this._conditionTriggers = [];
168
- for (let conditiontype in EConditionType) {
169
- this._conditionTriggers[EConditionType[conditiontype]] = {};
170
- }
171
- }
172
- triggerCondition(conditiontype, params, conditions) {
173
- params = params || {};
174
- conditions = conditions || {};
175
- for (let code in this._conditionTriggers[conditiontype]) {
176
- let info = this._conditionTriggers[conditiontype][code];
177
- for (let key in info.conditions) {
178
- if (info.conditions[key] !== conditions[key]) {
179
- return false;
180
- }
181
- }
182
- info.callback(params);
183
- }
184
- return true;
185
- }
186
- addConditionTriggerEvent(conditiontype, callback, conditions) {
187
- conditions = conditions || {};
188
- _GTriggerCode += 1;
189
- this._conditionTriggers[conditiontype][_GTriggerCode] = { callback: callback, conditions: conditions };
190
- return { type: conditiontype, code: _GTriggerCode };
191
- }
192
- removeConditionTriggerEvent(conditiontype, code) {
193
- if (code === undefined) {
194
- this._conditionTriggers[conditiontype] = {};
195
- }
196
- else {
197
- delete this._conditionTriggers[conditiontype][code];
198
- }
199
- }
200
- }
201
- exports.GTriggerMgr = new TriggerManager();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GTriggerMgr = exports.Trigger = exports.EConditionType = exports.ETriggerType = void 0;
4
+ const Log_1 = require("./../Logic/Log");
5
+ const Core_1 = require("../Core/Core");
6
+ var ETriggerType;
7
+ (function (ETriggerType) {
8
+ ETriggerType[ETriggerType["Region"] = 0] = "Region";
9
+ ETriggerType[ETriggerType["Condition"] = 1] = "Condition";
10
+ })(ETriggerType || (exports.ETriggerType = ETriggerType = {}));
11
+ var EConditionType;
12
+ (function (EConditionType) {
13
+ EConditionType[EConditionType["Die"] = 0] = "Die";
14
+ EConditionType[EConditionType["Hit"] = 1] = "Hit";
15
+ EConditionType[EConditionType["HP"] = 2] = "HP";
16
+ EConditionType[EConditionType["MP"] = 3] = "MP";
17
+ })(EConditionType || (exports.EConditionType = EConditionType = {}));
18
+ class Trigger {
19
+ region = null;
20
+ }
21
+ exports.Trigger = Trigger;
22
+ let _GTriggerCode = 0;
23
+ exports.GTriggerMgr = null;
24
+ class TriggerManager {
25
+ _regionTriggers = null;
26
+ _conditionTriggers = {};
27
+ //触发器的单个个体必须包含x,y,width,height,其他参数为各自需要添加
28
+ init() {
29
+ this.clearAll();
30
+ }
31
+ clearAll() {
32
+ this.clearRegionTrigger();
33
+ this.clearConditionTrigger();
34
+ }
35
+ clear(triggertype) {
36
+ if (triggertype === undefined) {
37
+ this.clearAll();
38
+ }
39
+ else if (triggertype == ETriggerType.Region) {
40
+ this.clearRegionTrigger();
41
+ }
42
+ else {
43
+ this.clearConditionTrigger();
44
+ }
45
+ }
46
+ ////////////////////////////////////////////区域触发器//////////////////////////////////////////////////////
47
+ //objs 需要检查的对象,regions触发起区域,callBackObj回调的对象
48
+ initRegionTrigger(objs, triggers, callBackObj) {
49
+ this.clearRegionTrigger();
50
+ if (!triggers || triggers.length <= 0) {
51
+ return;
52
+ }
53
+ for (let i = 0, length = triggers.length; i < length; ++i) {
54
+ this._regionTriggers.triggerInfos[i] = { trigger: triggers[i] };
55
+ }
56
+ if (Core_1.core.isArray(objs)) {
57
+ for (let i = 0, length = objs.length; i < length; ++i) {
58
+ this._regionTriggers.objInfos[i] = { obj: objs[i], prePos: null };
59
+ }
60
+ }
61
+ else {
62
+ this._regionTriggers.objInfos[0] = { obj: objs, prePos: null };
63
+ }
64
+ if (typeof callBackObj !== "undefined") {
65
+ this._regionTriggers.aiObj = callBackObj;
66
+ }
67
+ this._checkRegion(); //初始化check
68
+ }
69
+ clearRegionTrigger() {
70
+ this._regionTriggers = { triggerInfos: [], objInfos: [], aiObj: null };
71
+ }
72
+ addObjToRegionTrigger(obj) {
73
+ this._regionTriggers.objInfos[this._regionTriggers.objInfos.length] = { obj: obj, prePos: null };
74
+ }
75
+ removeObjInRegionTrigger(obj) {
76
+ for (let i = 0; i < this._regionTriggers.objInfos.length; ++i) {
77
+ let o = this._regionTriggers.objInfos[i].obj;
78
+ if (o === obj) {
79
+ this._regionTriggers.objInfos = this._regionTriggers.objInfos.splice(i, 1);
80
+ return;
81
+ }
82
+ }
83
+ }
84
+ //是否在触发器内
85
+ _isInTrigger(pos, region) {
86
+ if (!pos || typeof region === "undefined") {
87
+ return false;
88
+ }
89
+ Log_1.GLog.info("pos.x" + pos.x + " pos.y=" + pos.y);
90
+ Log_1.GLog.info("region.x" + region.x + " region.y=" + region.y);
91
+ if (pos.x < (region.x - region.width / 2)) {
92
+ return false;
93
+ }
94
+ if (pos.x > (region.x + region.width / 2)) {
95
+ return false;
96
+ }
97
+ if (pos.y < (region.y - region.height / 2)) {
98
+ return false;
99
+ }
100
+ if (pos.y > (region.y + region.height / 2)) {
101
+ return false;
102
+ }
103
+ return true;
104
+ }
105
+ //外部需要调用改接口
106
+ check() {
107
+ this._checkRegion();
108
+ }
109
+ _checkRegion() {
110
+ for (let i = 0, length = this._regionTriggers.objInfos.length; i < length; ++i) {
111
+ let info = this._regionTriggers.objInfos[i];
112
+ if (!info) {
113
+ continue;
114
+ }
115
+ let obj = info.obj;
116
+ if (!obj) {
117
+ this.removeObjInRegionTrigger(obj); //改对象已经无效
118
+ continue;
119
+ }
120
+ let pos = obj.cellPos;
121
+ if (!info.prePos) {
122
+ info.prePos = pos;
123
+ for (let i = 0, length = this._regionTriggers.triggerInfos.length; i < length; ++i) {
124
+ let triggerInfo = this._regionTriggers.triggerInfos[i];
125
+ if (this._isInTrigger(pos, triggerInfo.trigger.region)) {
126
+ //原本在外面或首次检测,触发进入事件
127
+ if (triggerInfo[obj.id] && triggerInfo[obj.id] == -1) {
128
+ this._triggerIn(obj, triggerInfo.trigger);
129
+ triggerInfo[obj.id] = 1;
130
+ }
131
+ }
132
+ else {
133
+ //原本在里面或者首次检测,现在不在了,触发走出触发器事件
134
+ if (triggerInfo[obj.id] && triggerInfo[obj.id] == 1) {
135
+ this._triggerOut(obj, triggerInfo.trigger);
136
+ }
137
+ triggerInfo[obj.id] = -1;
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ //从外面进入时触发
144
+ _triggerIn(obj, trigger) {
145
+ if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerIn) {
146
+ return;
147
+ }
148
+ Log_1.GLog.info("some one triggered in");
149
+ this._regionTriggers.aiObj.onTriggerIn(obj, trigger);
150
+ }
151
+ //从里面走出去的时候触发
152
+ _triggerOut(obj, trigger) {
153
+ if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerOut) {
154
+ return;
155
+ }
156
+ Log_1.GLog.info("some one triggered out");
157
+ this._regionTriggers.aiObj.onTriggerOut(obj, trigger);
158
+ }
159
+ //////////////////////////////////////条件触发器//////////////////////////////////////////////////
160
+ initConditionTrigger() {
161
+ this._conditionTriggers = {};
162
+ for (let conditiontype in EConditionType) {
163
+ this._conditionTriggers[conditiontype] = {};
164
+ }
165
+ }
166
+ clearConditionTrigger() {
167
+ this._conditionTriggers = [];
168
+ for (let conditiontype in EConditionType) {
169
+ this._conditionTriggers[EConditionType[conditiontype]] = {};
170
+ }
171
+ }
172
+ triggerCondition(conditiontype, params, conditions) {
173
+ params = params || {};
174
+ conditions = conditions || {};
175
+ for (let code in this._conditionTriggers[conditiontype]) {
176
+ let info = this._conditionTriggers[conditiontype][code];
177
+ for (let key in info.conditions) {
178
+ if (info.conditions[key] !== conditions[key]) {
179
+ return false;
180
+ }
181
+ }
182
+ info.callback(params);
183
+ }
184
+ return true;
185
+ }
186
+ addConditionTriggerEvent(conditiontype, callback, conditions) {
187
+ conditions = conditions || {};
188
+ _GTriggerCode += 1;
189
+ this._conditionTriggers[conditiontype][_GTriggerCode] = { callback: callback, conditions: conditions };
190
+ return { type: conditiontype, code: _GTriggerCode };
191
+ }
192
+ removeConditionTriggerEvent(conditiontype, code) {
193
+ if (code === undefined) {
194
+ this._conditionTriggers[conditiontype] = {};
195
+ }
196
+ else {
197
+ delete this._conditionTriggers[conditiontype][code];
198
+ }
199
+ }
200
+ }
201
+ exports.GTriggerMgr = new TriggerManager();