cgserver 12.0.8 → 12.2.0

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 (176) hide show
  1. package/README.md +9 -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 +340 -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 +74 -41
  9. package/dist/lib/Framework/Config/DbConfig.js +14 -14
  10. package/dist/lib/Framework/Config/FrameworkConfig.js +139 -173
  11. package/dist/lib/Framework/Config/IServerConfig.js +31 -31
  12. package/dist/lib/Framework/Config/_error_.js +35 -35
  13. package/dist/lib/Framework/Core/ByteTool.js +85 -85
  14. package/dist/lib/Framework/Core/Core.js +724 -688
  15. package/dist/lib/Framework/Core/Timer.js +116 -116
  16. package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +10 -11
  17. package/dist/lib/Framework/Database/Decorator/DBCache.js +98 -65
  18. package/dist/lib/Framework/Database/Decorator/NotNull.js +10 -11
  19. package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +10 -11
  20. package/dist/lib/Framework/Database/Decorator/Property.js +61 -61
  21. package/dist/lib/Framework/Database/Decorator/Table.js +14 -15
  22. package/dist/lib/Framework/Database/Decorator/Type.js +19 -20
  23. package/dist/lib/Framework/Database/MSSql/MSSqlManager.js +86 -53
  24. package/dist/lib/Framework/Database/Mongo/MongoBaseService.js +141 -141
  25. package/dist/lib/Framework/Database/Mongo/MongoManager.js +595 -547
  26. package/dist/lib/Framework/Database/Mongo/MongoServiceManager.js +52 -52
  27. package/dist/lib/Framework/Database/Mysql/MysqlBaseService.js +280 -280
  28. package/dist/lib/Framework/Database/Mysql/MysqlManager.js +138 -105
  29. package/dist/lib/Framework/Database/Redis/RedisManager.js +94 -61
  30. package/dist/lib/Framework/Decorator/AdminValidate.js +18 -19
  31. package/dist/lib/Framework/Decorator/AuthorityValidate.js +22 -22
  32. package/dist/lib/Framework/Decorator/CreatorValidate.js +18 -19
  33. package/dist/lib/Framework/Decorator/JsonAdminValidate.js +14 -15
  34. package/dist/lib/Framework/Decorator/JsonAuthorityValidate.js +20 -20
  35. package/dist/lib/Framework/Decorator/JsonCreatorValidate.js +18 -19
  36. package/dist/lib/Framework/Decorator/SyncCall.js +41 -42
  37. package/dist/lib/Framework/Decorator/SyncCallServer.js +77 -77
  38. package/dist/lib/Framework/Logic/CacheTool.js +106 -73
  39. package/dist/lib/Framework/Logic/EventTool.js +31 -28
  40. package/dist/lib/Framework/Logic/HttpTool.js +138 -105
  41. package/dist/lib/Framework/Logic/Log.js +121 -88
  42. package/dist/lib/Framework/Logic/SyncQueueTool.js +44 -44
  43. package/dist/lib/Framework/Server/ProtoFilter/GoogleProtoFilter.js +90 -57
  44. package/dist/lib/Framework/Server/ProtoFilter/IProtoFilter.js +9 -9
  45. package/dist/lib/Framework/Server/ProtoFilter/JsonProtoFilter.js +29 -29
  46. package/dist/lib/Framework/Server/ProtoFilter/ProtoFactory.js +35 -35
  47. package/dist/lib/Framework/Server/RpcWebSocketServer/CgMq.js +180 -180
  48. package/dist/lib/Framework/Server/RpcWebSocketServer/IRpc.js +38 -38
  49. package/dist/lib/Framework/Server/RpcWebSocketServer/IRpcClientWebSocket.js +253 -253
  50. package/dist/lib/Framework/Server/RpcWebSocketServer/IRpcServerWebSocket.js +94 -94
  51. package/dist/lib/Framework/Server/SocketServer/IClientSocket.js +44 -44
  52. package/dist/lib/Framework/Server/SocketServer/IServerSocket.js +114 -81
  53. package/dist/lib/Framework/Server/SocketServer/ISocket.js +255 -222
  54. package/dist/lib/Framework/Server/SocketServer/ISocketServer.js +177 -144
  55. package/dist/lib/Framework/Server/SocketServer/PacketParser.js +40 -40
  56. package/dist/lib/Framework/Server/WebServer/Controller/BaseController.js +119 -119
  57. package/dist/lib/Framework/Server/WebServer/Controller/MongoBaseUserController.js +171 -171
  58. package/dist/lib/Framework/Server/WebServer/Controller/MysqlBaseUserController.js +169 -169
  59. package/dist/lib/Framework/Server/WebServer/Engine/ControllerManager.js +115 -115
  60. package/dist/lib/Framework/Server/WebServer/Engine/Engine.js +254 -218
  61. package/dist/lib/Framework/Server/WebServer/Engine/RazorJs.js +543 -543
  62. package/dist/lib/Framework/Server/WebServer/Engine/Request.js +226 -226
  63. package/dist/lib/Framework/Server/WebServer/Engine/Response.js +120 -87
  64. package/dist/lib/Framework/Server/WebServer/IWebServer.js +55 -55
  65. package/dist/lib/Framework/Server/WebSocketServer/IClientWebSocket.js +44 -44
  66. package/dist/lib/Framework/Server/WebSocketServer/IServerWebSocket.js +128 -95
  67. package/dist/lib/Framework/Server/WebSocketServer/IWebSocket.js +248 -215
  68. package/dist/lib/Framework/Server/WebSocketServer/IWebSocketServer.js +250 -217
  69. package/dist/lib/Framework/Service/MongoAccountService.js +339 -339
  70. package/dist/lib/Framework/Service/MongoCacheService.js +50 -50
  71. package/dist/lib/Framework/Service/MongoUserService.js +129 -96
  72. package/dist/lib/Framework/Service/MysqlAccountService.js +411 -411
  73. package/dist/lib/Framework/Service/MysqlUserService.js +204 -171
  74. package/dist/lib/Framework/Service/ini.js +36 -36
  75. package/dist/lib/Framework/ThirdParty/AlipayTool.js +117 -205
  76. package/dist/lib/Framework/ThirdParty/Alisms.js +61 -50
  77. package/dist/lib/Framework/ThirdParty/AppleTool.js +271 -235
  78. package/dist/lib/Framework/ThirdParty/CgRankTool.js +215 -215
  79. package/dist/lib/Framework/ThirdParty/EmailTool.js +71 -38
  80. package/dist/lib/Framework/ThirdParty/QQTool.js +162 -129
  81. package/dist/lib/Framework/ThirdParty/QiniuTool.js +62 -29
  82. package/dist/lib/Framework/ThirdParty/Rpc.js +79 -79
  83. package/dist/lib/Framework/ThirdParty/WechatTool.js +167 -134
  84. package/dist/lib/Framework/cgserver.js +215 -212
  85. package/dist/lib/Framework/global.js +74 -74
  86. package/dist/lib/Framework/index.js +38 -5
  87. package/dist/lib/Framework/index_export_.js +180 -177
  88. package/dist/lib/test/test.js +21 -21
  89. package/dist/types/Framework/AI/AiObject.d.ts +5 -5
  90. package/dist/types/Framework/AI/Astar.d.ts +38 -38
  91. package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -24
  92. package/dist/types/Framework/AI/Entity.d.ts +12 -12
  93. package/dist/types/Framework/AI/Point.d.ts +17 -17
  94. package/dist/types/Framework/AI/TriggerMgr.d.ts +51 -51
  95. package/dist/types/Framework/Config/Config.d.ts +9 -9
  96. package/dist/types/Framework/Config/DbConfig.d.ts +11 -11
  97. package/dist/types/Framework/Config/FrameworkConfig.d.ts +146 -178
  98. package/dist/types/Framework/Config/IServerConfig.d.ts +9 -9
  99. package/dist/types/Framework/Config/_error_.d.ts +99 -99
  100. package/dist/types/Framework/Core/ByteTool.d.ts +21 -21
  101. package/dist/types/Framework/Core/Core.d.ts +119 -120
  102. package/dist/types/Framework/Core/Timer.d.ts +16 -16
  103. package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -1
  104. package/dist/types/Framework/Database/Decorator/DBCache.d.ts +22 -22
  105. package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -1
  106. package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -1
  107. package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -57
  108. package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -1
  109. package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -1
  110. package/dist/types/Framework/Database/MSSql/MSSqlManager.d.ts +26 -26
  111. package/dist/types/Framework/Database/Mongo/MongoBaseService.d.ts +116 -116
  112. package/dist/types/Framework/Database/Mongo/MongoManager.d.ts +207 -204
  113. package/dist/types/Framework/Database/Mongo/MongoServiceManager.d.ts +13 -13
  114. package/dist/types/Framework/Database/Mysql/MysqlBaseService.d.ts +34 -34
  115. package/dist/types/Framework/Database/Mysql/MysqlManager.d.ts +30 -30
  116. package/dist/types/Framework/Database/Redis/RedisManager.d.ts +24 -24
  117. package/dist/types/Framework/Decorator/AdminValidate.d.ts +1 -1
  118. package/dist/types/Framework/Decorator/AuthorityValidate.d.ts +2 -2
  119. package/dist/types/Framework/Decorator/CreatorValidate.d.ts +1 -1
  120. package/dist/types/Framework/Decorator/JsonAdminValidate.d.ts +1 -1
  121. package/dist/types/Framework/Decorator/JsonAuthorityValidate.d.ts +2 -2
  122. package/dist/types/Framework/Decorator/JsonCreatorValidate.d.ts +1 -1
  123. package/dist/types/Framework/Decorator/SyncCall.d.ts +12 -12
  124. package/dist/types/Framework/Decorator/SyncCallServer.d.ts +14 -14
  125. package/dist/types/Framework/Logic/CacheTool.d.ts +27 -27
  126. package/dist/types/Framework/Logic/EventTool.d.ts +11 -12
  127. package/dist/types/Framework/Logic/HttpTool.d.ts +19 -19
  128. package/dist/types/Framework/Logic/Log.d.ts +18 -18
  129. package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -21
  130. package/dist/types/Framework/Server/ProtoFilter/GoogleProtoFilter.d.ts +9 -9
  131. package/dist/types/Framework/Server/ProtoFilter/IProtoFilter.d.ts +10 -10
  132. package/dist/types/Framework/Server/ProtoFilter/JsonProtoFilter.d.ts +6 -6
  133. package/dist/types/Framework/Server/ProtoFilter/ProtoFactory.d.ts +12 -12
  134. package/dist/types/Framework/Server/RpcWebSocketServer/CgMq.d.ts +59 -59
  135. package/dist/types/Framework/Server/RpcWebSocketServer/IRpc.d.ts +33 -33
  136. package/dist/types/Framework/Server/RpcWebSocketServer/IRpcClientWebSocket.d.ts +34 -34
  137. package/dist/types/Framework/Server/RpcWebSocketServer/IRpcServerWebSocket.d.ts +23 -23
  138. package/dist/types/Framework/Server/SocketServer/IClientSocket.d.ts +16 -18
  139. package/dist/types/Framework/Server/SocketServer/IServerSocket.d.ts +27 -29
  140. package/dist/types/Framework/Server/SocketServer/ISocket.d.ts +78 -81
  141. package/dist/types/Framework/Server/SocketServer/ISocketServer.d.ts +44 -45
  142. package/dist/types/Framework/Server/SocketServer/PacketParser.d.ts +8 -10
  143. package/dist/types/Framework/Server/WebServer/Controller/BaseController.d.ts +34 -34
  144. package/dist/types/Framework/Server/WebServer/Controller/MongoBaseUserController.d.ts +28 -28
  145. package/dist/types/Framework/Server/WebServer/Controller/MysqlBaseUserController.d.ts +27 -27
  146. package/dist/types/Framework/Server/WebServer/Engine/ControllerManager.d.ts +37 -37
  147. package/dist/types/Framework/Server/WebServer/Engine/Engine.d.ts +42 -44
  148. package/dist/types/Framework/Server/WebServer/Engine/RazorJs.d.ts +21 -21
  149. package/dist/types/Framework/Server/WebServer/Engine/Request.d.ts +47 -50
  150. package/dist/types/Framework/Server/WebServer/Engine/Response.d.ts +26 -26
  151. package/dist/types/Framework/Server/WebServer/IWebServer.d.ts +22 -22
  152. package/dist/types/Framework/Server/WebSocketServer/IClientWebSocket.d.ts +17 -17
  153. package/dist/types/Framework/Server/WebSocketServer/IServerWebSocket.d.ts +37 -38
  154. package/dist/types/Framework/Server/WebSocketServer/IWebSocket.d.ts +76 -76
  155. package/dist/types/Framework/Server/WebSocketServer/IWebSocketServer.d.ts +49 -49
  156. package/dist/types/Framework/Service/MongoAccountService.d.ts +62 -62
  157. package/dist/types/Framework/Service/MongoCacheService.d.ts +19 -19
  158. package/dist/types/Framework/Service/MongoUserService.d.ts +31 -31
  159. package/dist/types/Framework/Service/MysqlAccountService.d.ts +67 -67
  160. package/dist/types/Framework/Service/MysqlUserService.d.ts +33 -33
  161. package/dist/types/Framework/Service/ini.d.ts +29 -29
  162. package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +76 -108
  163. package/dist/types/Framework/ThirdParty/Alisms.d.ts +23 -13
  164. package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -131
  165. package/dist/types/Framework/ThirdParty/CgRankTool.d.ts +107 -107
  166. package/dist/types/Framework/ThirdParty/EmailTool.d.ts +4 -4
  167. package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -41
  168. package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +5 -5
  169. package/dist/types/Framework/ThirdParty/Rpc.d.ts +28 -28
  170. package/dist/types/Framework/ThirdParty/WechatTool.d.ts +30 -30
  171. package/dist/types/Framework/cgserver.d.ts +63 -63
  172. package/dist/types/Framework/global.d.ts +45 -45
  173. package/dist/types/Framework/index.d.ts +2 -2
  174. package/dist/types/Framework/index_export_.d.ts +81 -79
  175. package/dist/types/test/test.d.ts +1 -1
  176. package/package.json +8 -4
@@ -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.TriggerManager = exports.Trigger = exports.EConditionType = exports.ETriggerType = void 0;
4
- const Core_1 = require("../Core/Core");
5
- const Log_1 = require("../Logic/Log");
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
- class TriggerManager {
24
- _regionTriggers = null;
25
- _conditionTriggers = {};
26
- //触发器的单个个体必须包含x,y,width,height,其他参数为各自需要添加
27
- init() {
28
- this.clearAll();
29
- }
30
- clearAll() {
31
- this.clearRegionTrigger();
32
- this.clearConditionTrigger();
33
- }
34
- clear(triggertype) {
35
- if (triggertype === undefined) {
36
- this.clearAll();
37
- }
38
- else if (triggertype == ETriggerType.Region) {
39
- this.clearRegionTrigger();
40
- }
41
- else {
42
- this.clearConditionTrigger();
43
- }
44
- }
45
- ////////////////////////////////////////////区域触发器//////////////////////////////////////////////////////
46
- //objs 需要检查的对象,regions触发起区域,callBackObj回调的对象
47
- initRegionTrigger(objs, triggers, callBackObj) {
48
- this.clearRegionTrigger();
49
- if (!triggers || triggers.length <= 0) {
50
- return;
51
- }
52
- for (let i = 0, length = triggers.length; i < length; ++i) {
53
- this._regionTriggers.triggerInfos[i] = { trigger: triggers[i] };
54
- }
55
- if (Core_1.core.isArray(objs)) {
56
- for (let i = 0, length = objs.length; i < length; ++i) {
57
- this._regionTriggers.objInfos[i] = { obj: objs[i], prePos: null };
58
- }
59
- }
60
- else {
61
- this._regionTriggers.objInfos[0] = { obj: objs, prePos: null };
62
- }
63
- if (typeof callBackObj !== "undefined") {
64
- this._regionTriggers.aiObj = callBackObj;
65
- }
66
- this._checkRegion(); //初始化check
67
- }
68
- clearRegionTrigger() {
69
- this._regionTriggers = { triggerInfos: [], objInfos: [], aiObj: null };
70
- }
71
- addObjToRegionTrigger(obj) {
72
- this._regionTriggers.objInfos[this._regionTriggers.objInfos.length] = { obj: obj, prePos: null };
73
- }
74
- removeObjInRegionTrigger(obj) {
75
- for (let i = 0; i < this._regionTriggers.objInfos.length; ++i) {
76
- let o = this._regionTriggers.objInfos[i].obj;
77
- if (o === obj) {
78
- this._regionTriggers.objInfos = this._regionTriggers.objInfos.splice(i, 1);
79
- return;
80
- }
81
- }
82
- }
83
- //是否在触发器内
84
- _isInTrigger(pos, region) {
85
- if (!pos || typeof region === "undefined") {
86
- return false;
87
- }
88
- Log_1.gLog.info("pos.x" + pos.x + " pos.y=" + pos.y);
89
- Log_1.gLog.info("region.x" + region.x + " region.y=" + region.y);
90
- if (pos.x < (region.x - region.width / 2)) {
91
- return false;
92
- }
93
- if (pos.x > (region.x + region.width / 2)) {
94
- return false;
95
- }
96
- if (pos.y < (region.y - region.height / 2)) {
97
- return false;
98
- }
99
- if (pos.y > (region.y + region.height / 2)) {
100
- return false;
101
- }
102
- return true;
103
- }
104
- //外部需要调用改接口
105
- check() {
106
- this._checkRegion();
107
- }
108
- _checkRegion() {
109
- for (let i = 0, length = this._regionTriggers.objInfos.length; i < length; ++i) {
110
- let info = this._regionTriggers.objInfos[i];
111
- if (!info) {
112
- continue;
113
- }
114
- let obj = info.obj;
115
- if (!obj) {
116
- this.removeObjInRegionTrigger(obj); //改对象已经无效
117
- continue;
118
- }
119
- let pos = obj.cellPos;
120
- if (!info.prePos) {
121
- info.prePos = pos;
122
- for (let i = 0, length = this._regionTriggers.triggerInfos.length; i < length; ++i) {
123
- let triggerInfo = this._regionTriggers.triggerInfos[i];
124
- if (this._isInTrigger(pos, triggerInfo.trigger.region)) {
125
- //原本在外面或首次检测,触发进入事件
126
- if (triggerInfo[obj.id] && triggerInfo[obj.id] == -1) {
127
- this._triggerIn(obj, triggerInfo.trigger);
128
- triggerInfo[obj.id] = 1;
129
- }
130
- }
131
- else {
132
- //原本在里面或者首次检测,现在不在了,触发走出触发器事件
133
- if (triggerInfo[obj.id] && triggerInfo[obj.id] == 1) {
134
- this._triggerOut(obj, triggerInfo.trigger);
135
- }
136
- triggerInfo[obj.id] = -1;
137
- }
138
- }
139
- }
140
- }
141
- }
142
- //从外面进入时触发
143
- _triggerIn(obj, trigger) {
144
- if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerIn) {
145
- return;
146
- }
147
- Log_1.gLog.info("some one triggered in");
148
- this._regionTriggers.aiObj.onTriggerIn(obj, trigger);
149
- }
150
- //从里面走出去的时候触发
151
- _triggerOut(obj, trigger) {
152
- if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerOut) {
153
- return;
154
- }
155
- Log_1.gLog.info("some one triggered out");
156
- this._regionTriggers.aiObj.onTriggerOut(obj, trigger);
157
- }
158
- //////////////////////////////////////条件触发器//////////////////////////////////////////////////
159
- initConditionTrigger() {
160
- this._conditionTriggers = {};
161
- for (let conditiontype in EConditionType) {
162
- this._conditionTriggers[conditiontype] = {};
163
- }
164
- }
165
- clearConditionTrigger() {
166
- this._conditionTriggers = [];
167
- for (let conditiontype in EConditionType) {
168
- this._conditionTriggers[EConditionType[conditiontype]] = {};
169
- }
170
- }
171
- triggerCondition(conditiontype, params, conditions) {
172
- params = params || {};
173
- conditions = conditions || {};
174
- for (let code in this._conditionTriggers[conditiontype]) {
175
- let info = this._conditionTriggers[conditiontype][code];
176
- for (let key in info.conditions) {
177
- if (info.conditions[key] !== conditions[key]) {
178
- return false;
179
- }
180
- }
181
- info.callback(params);
182
- }
183
- return true;
184
- }
185
- addConditionTriggerEvent(conditiontype, callback, conditions) {
186
- conditions = conditions || {};
187
- _GTriggerCode += 1;
188
- this._conditionTriggers[conditiontype][_GTriggerCode] = { callback: callback, conditions: conditions };
189
- return { type: conditiontype, code: _GTriggerCode };
190
- }
191
- removeConditionTriggerEvent(conditiontype, code) {
192
- if (code === undefined) {
193
- this._conditionTriggers[conditiontype] = {};
194
- }
195
- else {
196
- delete this._conditionTriggers[conditiontype][code];
197
- }
198
- }
199
- }
200
- exports.TriggerManager = TriggerManager;
201
- exports.gTriggerMgr = new TriggerManager();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gTriggerMgr = exports.TriggerManager = exports.Trigger = exports.EConditionType = exports.ETriggerType = void 0;
4
+ const Core_1 = require("../Core/Core");
5
+ const Log_1 = require("../Logic/Log");
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
+ class TriggerManager {
24
+ _regionTriggers = null;
25
+ _conditionTriggers = {};
26
+ //触发器的单个个体必须包含x,y,width,height,其他参数为各自需要添加
27
+ init() {
28
+ this.clearAll();
29
+ }
30
+ clearAll() {
31
+ this.clearRegionTrigger();
32
+ this.clearConditionTrigger();
33
+ }
34
+ clear(triggertype) {
35
+ if (triggertype === undefined) {
36
+ this.clearAll();
37
+ }
38
+ else if (triggertype == ETriggerType.Region) {
39
+ this.clearRegionTrigger();
40
+ }
41
+ else {
42
+ this.clearConditionTrigger();
43
+ }
44
+ }
45
+ ////////////////////////////////////////////区域触发器//////////////////////////////////////////////////////
46
+ //objs 需要检查的对象,regions触发起区域,callBackObj回调的对象
47
+ initRegionTrigger(objs, triggers, callBackObj) {
48
+ this.clearRegionTrigger();
49
+ if (!triggers || triggers.length <= 0) {
50
+ return;
51
+ }
52
+ for (let i = 0, length = triggers.length; i < length; ++i) {
53
+ this._regionTriggers.triggerInfos[i] = { trigger: triggers[i] };
54
+ }
55
+ if (Core_1.core.isArray(objs)) {
56
+ for (let i = 0, length = objs.length; i < length; ++i) {
57
+ this._regionTriggers.objInfos[i] = { obj: objs[i], prePos: null };
58
+ }
59
+ }
60
+ else {
61
+ this._regionTriggers.objInfos[0] = { obj: objs, prePos: null };
62
+ }
63
+ if (typeof callBackObj !== "undefined") {
64
+ this._regionTriggers.aiObj = callBackObj;
65
+ }
66
+ this._checkRegion(); //初始化check
67
+ }
68
+ clearRegionTrigger() {
69
+ this._regionTriggers = { triggerInfos: [], objInfos: [], aiObj: null };
70
+ }
71
+ addObjToRegionTrigger(obj) {
72
+ this._regionTriggers.objInfos[this._regionTriggers.objInfos.length] = { obj: obj, prePos: null };
73
+ }
74
+ removeObjInRegionTrigger(obj) {
75
+ for (let i = 0; i < this._regionTriggers.objInfos.length; ++i) {
76
+ let o = this._regionTriggers.objInfos[i].obj;
77
+ if (o === obj) {
78
+ this._regionTriggers.objInfos = this._regionTriggers.objInfos.splice(i, 1);
79
+ return;
80
+ }
81
+ }
82
+ }
83
+ //是否在触发器内
84
+ _isInTrigger(pos, region) {
85
+ if (!pos || typeof region === "undefined") {
86
+ return false;
87
+ }
88
+ Log_1.gLog.info("pos.x" + pos.x + " pos.y=" + pos.y);
89
+ Log_1.gLog.info("region.x" + region.x + " region.y=" + region.y);
90
+ if (pos.x < (region.x - region.width / 2)) {
91
+ return false;
92
+ }
93
+ if (pos.x > (region.x + region.width / 2)) {
94
+ return false;
95
+ }
96
+ if (pos.y < (region.y - region.height / 2)) {
97
+ return false;
98
+ }
99
+ if (pos.y > (region.y + region.height / 2)) {
100
+ return false;
101
+ }
102
+ return true;
103
+ }
104
+ //外部需要调用改接口
105
+ check() {
106
+ this._checkRegion();
107
+ }
108
+ _checkRegion() {
109
+ for (let i = 0, length = this._regionTriggers.objInfos.length; i < length; ++i) {
110
+ let info = this._regionTriggers.objInfos[i];
111
+ if (!info) {
112
+ continue;
113
+ }
114
+ let obj = info.obj;
115
+ if (!obj) {
116
+ this.removeObjInRegionTrigger(obj); //改对象已经无效
117
+ continue;
118
+ }
119
+ let pos = obj.cellPos;
120
+ if (!info.prePos) {
121
+ info.prePos = pos;
122
+ for (let i = 0, length = this._regionTriggers.triggerInfos.length; i < length; ++i) {
123
+ let triggerInfo = this._regionTriggers.triggerInfos[i];
124
+ if (this._isInTrigger(pos, triggerInfo.trigger.region)) {
125
+ //原本在外面或首次检测,触发进入事件
126
+ if (triggerInfo[obj.id] && triggerInfo[obj.id] == -1) {
127
+ this._triggerIn(obj, triggerInfo.trigger);
128
+ triggerInfo[obj.id] = 1;
129
+ }
130
+ }
131
+ else {
132
+ //原本在里面或者首次检测,现在不在了,触发走出触发器事件
133
+ if (triggerInfo[obj.id] && triggerInfo[obj.id] == 1) {
134
+ this._triggerOut(obj, triggerInfo.trigger);
135
+ }
136
+ triggerInfo[obj.id] = -1;
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ //从外面进入时触发
143
+ _triggerIn(obj, trigger) {
144
+ if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerIn) {
145
+ return;
146
+ }
147
+ Log_1.gLog.info("some one triggered in");
148
+ this._regionTriggers.aiObj.onTriggerIn(obj, trigger);
149
+ }
150
+ //从里面走出去的时候触发
151
+ _triggerOut(obj, trigger) {
152
+ if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerOut) {
153
+ return;
154
+ }
155
+ Log_1.gLog.info("some one triggered out");
156
+ this._regionTriggers.aiObj.onTriggerOut(obj, trigger);
157
+ }
158
+ //////////////////////////////////////条件触发器//////////////////////////////////////////////////
159
+ initConditionTrigger() {
160
+ this._conditionTriggers = {};
161
+ for (let conditiontype in EConditionType) {
162
+ this._conditionTriggers[conditiontype] = {};
163
+ }
164
+ }
165
+ clearConditionTrigger() {
166
+ this._conditionTriggers = [];
167
+ for (let conditiontype in EConditionType) {
168
+ this._conditionTriggers[EConditionType[conditiontype]] = {};
169
+ }
170
+ }
171
+ triggerCondition(conditiontype, params, conditions) {
172
+ params = params || {};
173
+ conditions = conditions || {};
174
+ for (let code in this._conditionTriggers[conditiontype]) {
175
+ let info = this._conditionTriggers[conditiontype][code];
176
+ for (let key in info.conditions) {
177
+ if (info.conditions[key] !== conditions[key]) {
178
+ return false;
179
+ }
180
+ }
181
+ info.callback(params);
182
+ }
183
+ return true;
184
+ }
185
+ addConditionTriggerEvent(conditiontype, callback, conditions) {
186
+ conditions = conditions || {};
187
+ _GTriggerCode += 1;
188
+ this._conditionTriggers[conditiontype][_GTriggerCode] = { callback: callback, conditions: conditions };
189
+ return { type: conditiontype, code: _GTriggerCode };
190
+ }
191
+ removeConditionTriggerEvent(conditiontype, code) {
192
+ if (code === undefined) {
193
+ this._conditionTriggers[conditiontype] = {};
194
+ }
195
+ else {
196
+ delete this._conditionTriggers[conditiontype][code];
197
+ }
198
+ }
199
+ }
200
+ exports.TriggerManager = TriggerManager;
201
+ exports.gTriggerMgr = new TriggerManager();