cgserver 5.4.12 → 5.4.13

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 (199) hide show
  1. package/lib/Framework/AI/AiObject.d.ts +5 -0
  2. package/lib/Framework/AI/AiObject.js +11 -0
  3. package/lib/Framework/AI/AiObject.js.map +1 -0
  4. package/lib/Framework/AI/Astar.d.ts +38 -0
  5. package/lib/Framework/AI/Astar.js +134 -0
  6. package/lib/Framework/AI/Astar.js.map +1 -0
  7. package/lib/Framework/AI/BehaviorAI.d.ts +24 -0
  8. package/lib/Framework/AI/BehaviorAI.js +308 -0
  9. package/lib/Framework/AI/BehaviorAI.js.map +1 -0
  10. package/lib/Framework/AI/Entity.d.ts +12 -0
  11. package/lib/Framework/AI/Entity.js +34 -0
  12. package/lib/Framework/AI/Entity.js.map +1 -0
  13. package/lib/Framework/AI/Point.d.ts +17 -0
  14. package/lib/Framework/AI/Point.js +69 -0
  15. package/lib/Framework/AI/Point.js.map +1 -0
  16. package/lib/Framework/AI/TriggerMgr.d.ts +52 -0
  17. package/lib/Framework/AI/TriggerMgr.js +202 -0
  18. package/lib/Framework/AI/TriggerMgr.js.map +1 -0
  19. package/lib/Framework/Config/Config.d.ts +7 -0
  20. package/lib/Framework/Config/Config.js +38 -0
  21. package/lib/Framework/Config/Config.js.map +1 -0
  22. package/lib/Framework/Config/FrameworkConfig.d.ts +219 -0
  23. package/lib/Framework/Config/FrameworkConfig.js +225 -0
  24. package/lib/Framework/Config/FrameworkConfig.js.map +1 -0
  25. package/lib/Framework/Config/ServerConfig.d.ts +9 -0
  26. package/lib/Framework/Config/ServerConfig.js +19 -0
  27. package/lib/Framework/Config/ServerConfig.js.map +1 -0
  28. package/lib/Framework/Config/_error_.d.ts +95 -0
  29. package/lib/Framework/Config/_error_.js +35 -0
  30. package/lib/Framework/Config/_error_.js.map +1 -0
  31. package/lib/Framework/Core/Core.d.ts +101 -0
  32. package/lib/Framework/Core/Core.js +562 -0
  33. package/lib/Framework/Core/Core.js.map +1 -0
  34. package/lib/Framework/Core/Timer.d.ts +16 -0
  35. package/lib/Framework/Core/Timer.js +117 -0
  36. package/lib/Framework/Core/Timer.js.map +1 -0
  37. package/lib/Framework/Database/BaseMongoService.d.ts +67 -0
  38. package/lib/Framework/Database/BaseMongoService.js +80 -0
  39. package/lib/Framework/Database/BaseMongoService.js.map +1 -0
  40. package/lib/Framework/Database/BaseService.d.ts +34 -0
  41. package/lib/Framework/Database/BaseService.js +282 -0
  42. package/lib/Framework/Database/BaseService.js.map +1 -0
  43. package/lib/Framework/Database/Decorator/AutoIncrement.d.ts +1 -0
  44. package/lib/Framework/Database/Decorator/AutoIncrement.js +12 -0
  45. package/lib/Framework/Database/Decorator/AutoIncrement.js.map +1 -0
  46. package/lib/Framework/Database/Decorator/DBCache.d.ts +21 -0
  47. package/lib/Framework/Database/Decorator/DBCache.js +65 -0
  48. package/lib/Framework/Database/Decorator/DBCache.js.map +1 -0
  49. package/lib/Framework/Database/Decorator/NotNull.d.ts +1 -0
  50. package/lib/Framework/Database/Decorator/NotNull.js +12 -0
  51. package/lib/Framework/Database/Decorator/NotNull.js.map +1 -0
  52. package/lib/Framework/Database/Decorator/PrimaryKey.d.ts +1 -0
  53. package/lib/Framework/Database/Decorator/PrimaryKey.js +12 -0
  54. package/lib/Framework/Database/Decorator/PrimaryKey.js.map +1 -0
  55. package/lib/Framework/Database/Decorator/Property.d.ts +55 -0
  56. package/lib/Framework/Database/Decorator/Property.js +62 -0
  57. package/lib/Framework/Database/Decorator/Property.js.map +1 -0
  58. package/lib/Framework/Database/Decorator/Table.d.ts +1 -0
  59. package/lib/Framework/Database/Decorator/Table.js +16 -0
  60. package/lib/Framework/Database/Decorator/Table.js.map +1 -0
  61. package/lib/Framework/Database/Decorator/Type.d.ts +1 -0
  62. package/lib/Framework/Database/Decorator/Type.js +21 -0
  63. package/lib/Framework/Database/Decorator/Type.js.map +1 -0
  64. package/lib/Framework/Database/MongoManager.d.ts +135 -0
  65. package/lib/Framework/Database/MongoManager.js +407 -0
  66. package/lib/Framework/Database/MongoManager.js.map +1 -0
  67. package/lib/Framework/Database/MysqlManager.d.ts +41 -0
  68. package/lib/Framework/Database/MysqlManager.js +181 -0
  69. package/lib/Framework/Database/MysqlManager.js.map +1 -0
  70. package/lib/Framework/Database/RedisManager.d.ts +64 -0
  71. package/lib/Framework/Database/RedisManager.js +409 -0
  72. package/lib/Framework/Database/RedisManager.js.map +1 -0
  73. package/lib/Framework/Logic/CacheTool.d.ts +25 -0
  74. package/lib/Framework/Logic/CacheTool.js +74 -0
  75. package/lib/Framework/Logic/CacheTool.js.map +1 -0
  76. package/lib/Framework/Logic/HttpTool.d.ts +14 -0
  77. package/lib/Framework/Logic/HttpTool.js +59 -0
  78. package/lib/Framework/Logic/HttpTool.js.map +1 -0
  79. package/lib/Framework/Logic/Log.d.ts +15 -0
  80. package/lib/Framework/Logic/Log.js +78 -0
  81. package/lib/Framework/Logic/Log.js.map +1 -0
  82. package/lib/Framework/Service/AccountService.d.ts +77 -0
  83. package/lib/Framework/Service/AccountService.js +474 -0
  84. package/lib/Framework/Service/AccountService.js.map +1 -0
  85. package/lib/Framework/Service/MongoAccountService.d.ts +78 -0
  86. package/lib/Framework/Service/MongoAccountService.js +397 -0
  87. package/lib/Framework/Service/MongoAccountService.js.map +1 -0
  88. package/lib/Framework/Service/MongoCacheService.d.ts +13 -0
  89. package/lib/Framework/Service/MongoCacheService.js +28 -0
  90. package/lib/Framework/Service/MongoCacheService.js.map +1 -0
  91. package/lib/Framework/Service/MongoUserService.d.ts +36 -0
  92. package/lib/Framework/Service/MongoUserService.js +94 -0
  93. package/lib/Framework/Service/MongoUserService.js.map +1 -0
  94. package/lib/Framework/Service/UserService.d.ts +36 -0
  95. package/lib/Framework/Service/UserService.js +185 -0
  96. package/lib/Framework/Service/UserService.js.map +1 -0
  97. package/lib/Framework/Service/ini.d.ts +28 -0
  98. package/lib/Framework/Service/ini.js +36 -0
  99. package/lib/Framework/Service/ini.js.map +1 -0
  100. package/lib/Framework/SocketServer/IClientWebSocket.d.ts +24 -0
  101. package/lib/Framework/SocketServer/IClientWebSocket.js +72 -0
  102. package/lib/Framework/SocketServer/IClientWebSocket.js.map +1 -0
  103. package/lib/Framework/SocketServer/IServerWebSocket.d.ts +13 -0
  104. package/lib/Framework/SocketServer/IServerWebSocket.js +42 -0
  105. package/lib/Framework/SocketServer/IServerWebSocket.js.map +1 -0
  106. package/lib/Framework/SocketServer/ISocketServer.d.ts +36 -0
  107. package/lib/Framework/SocketServer/ISocketServer.js +189 -0
  108. package/lib/Framework/SocketServer/ISocketServer.js.map +1 -0
  109. package/lib/Framework/SocketServer/IWebSocket.d.ts +44 -0
  110. package/lib/Framework/SocketServer/IWebSocket.js +224 -0
  111. package/lib/Framework/SocketServer/IWebSocket.js.map +1 -0
  112. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -0
  113. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +58 -0
  114. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +1 -0
  115. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -0
  116. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +9 -0
  117. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +1 -0
  118. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -0
  119. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +30 -0
  120. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +1 -0
  121. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -0
  122. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +32 -0
  123. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +1 -0
  124. package/lib/Framework/ThirdParty/AlipayTool.d.ts +40 -0
  125. package/lib/Framework/ThirdParty/AlipayTool.js +123 -0
  126. package/lib/Framework/ThirdParty/AlipayTool.js.map +1 -0
  127. package/lib/Framework/ThirdParty/Alisms.d.ts +14 -0
  128. package/lib/Framework/ThirdParty/Alisms.js +47 -0
  129. package/lib/Framework/ThirdParty/Alisms.js.map +1 -0
  130. package/lib/Framework/ThirdParty/AppleTool.d.ts +131 -0
  131. package/lib/Framework/ThirdParty/AppleTool.js +235 -0
  132. package/lib/Framework/ThirdParty/AppleTool.js.map +1 -0
  133. package/lib/Framework/ThirdParty/EmailTool.d.ts +5 -0
  134. package/lib/Framework/ThirdParty/EmailTool.js +34 -0
  135. package/lib/Framework/ThirdParty/EmailTool.js.map +1 -0
  136. package/lib/Framework/ThirdParty/OpenSocial.d.ts +7 -0
  137. package/lib/Framework/ThirdParty/OpenSocial.js +33 -0
  138. package/lib/Framework/ThirdParty/OpenSocial.js.map +1 -0
  139. package/lib/Framework/ThirdParty/QQTool.d.ts +41 -0
  140. package/lib/Framework/ThirdParty/QQTool.js +116 -0
  141. package/lib/Framework/ThirdParty/QQTool.js.map +1 -0
  142. package/lib/Framework/ThirdParty/QiniuTool.d.ts +6 -0
  143. package/lib/Framework/ThirdParty/QiniuTool.js +22 -0
  144. package/lib/Framework/ThirdParty/QiniuTool.js.map +1 -0
  145. package/lib/Framework/ThirdParty/WechatOATool.d.ts +13 -0
  146. package/lib/Framework/ThirdParty/WechatOATool.js +62 -0
  147. package/lib/Framework/ThirdParty/WechatOATool.js.map +1 -0
  148. package/lib/Framework/ThirdParty/WechatTool.d.ts +20 -0
  149. package/lib/Framework/ThirdParty/WechatTool.js +75 -0
  150. package/lib/Framework/ThirdParty/WechatTool.js.map +1 -0
  151. package/lib/Framework/WebServer/Controller/BaseController.d.ts +33 -0
  152. package/lib/Framework/WebServer/Controller/BaseController.js +113 -0
  153. package/lib/Framework/WebServer/Controller/BaseController.js.map +1 -0
  154. package/lib/Framework/WebServer/Controller/BaseUserController.d.ts +26 -0
  155. package/lib/Framework/WebServer/Controller/BaseUserController.js +169 -0
  156. package/lib/Framework/WebServer/Controller/BaseUserController.js.map +1 -0
  157. package/lib/Framework/WebServer/Controller/MongoBaseUserController.d.ts +26 -0
  158. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -0
  159. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js.map +1 -0
  160. package/lib/Framework/WebServer/Decorator/AdminValidate.d.ts +1 -0
  161. package/lib/Framework/WebServer/Decorator/AdminValidate.js +20 -0
  162. package/lib/Framework/WebServer/Decorator/AdminValidate.js.map +1 -0
  163. package/lib/Framework/WebServer/Decorator/AuthorityValidate.d.ts +2 -0
  164. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js +23 -0
  165. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js.map +1 -0
  166. package/lib/Framework/WebServer/Decorator/CreatorValidate.d.ts +1 -0
  167. package/lib/Framework/WebServer/Decorator/CreatorValidate.js +20 -0
  168. package/lib/Framework/WebServer/Decorator/CreatorValidate.js.map +1 -0
  169. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.d.ts +1 -0
  170. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js +16 -0
  171. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js.map +1 -0
  172. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  173. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js +21 -0
  174. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +1 -0
  175. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.d.ts +1 -0
  176. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js +20 -0
  177. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +1 -0
  178. package/lib/Framework/WebServer/Engine/ControllerManager.d.ts +21 -0
  179. package/lib/Framework/WebServer/Engine/ControllerManager.js +113 -0
  180. package/lib/Framework/WebServer/Engine/ControllerManager.js.map +1 -0
  181. package/lib/Framework/WebServer/Engine/Engine.d.ts +21 -0
  182. package/lib/Framework/WebServer/Engine/Engine.js +129 -0
  183. package/lib/Framework/WebServer/Engine/Engine.js.map +1 -0
  184. package/lib/Framework/WebServer/Engine/RazorJs.d.ts +21 -0
  185. package/lib/Framework/WebServer/Engine/RazorJs.js +545 -0
  186. package/lib/Framework/WebServer/Engine/RazorJs.js.map +1 -0
  187. package/lib/Framework/WebServer/Engine/Request.d.ts +35 -0
  188. package/lib/Framework/WebServer/Engine/Request.js +215 -0
  189. package/lib/Framework/WebServer/Engine/Request.js.map +1 -0
  190. package/lib/Framework/WebServer/Engine/Response.d.ts +28 -0
  191. package/lib/Framework/WebServer/Engine/Response.js +95 -0
  192. package/lib/Framework/WebServer/Engine/Response.js.map +1 -0
  193. package/lib/Framework/WebServer/IWebServer.d.ts +20 -0
  194. package/lib/Framework/WebServer/IWebServer.js +50 -0
  195. package/lib/Framework/WebServer/IWebServer.js.map +1 -0
  196. package/lib/index.d.ts +4 -0
  197. package/lib/index.js +8 -0
  198. package/lib/index.js.map +1 -0
  199. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import { Trigger } from './TriggerMgr';
2
+ export declare class AiObject {
3
+ onTriggerIn(obj: any, trigger: Trigger): void;
4
+ onTriggerOut(obj: any, trigger: Trigger): void;
5
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AiObject = void 0;
4
+ class AiObject {
5
+ onTriggerIn(obj, trigger) {
6
+ }
7
+ onTriggerOut(obj, trigger) {
8
+ }
9
+ }
10
+ exports.AiObject = AiObject;
11
+ //# sourceMappingURL=AiObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiObject.js","sourceRoot":"","sources":["../../../Framework/AI/AiObject.ts"],"names":[],"mappings":";;;AACA,MAAa,QAAQ;IAEjB,WAAW,CAAC,GAAG,EAAC,OAAe;IAG/B,CAAC;IACD,YAAY,CAAC,GAAG,EAAC,OAAe;IAGhC,CAAC;CACJ;AAVD,4BAUC"}
@@ -0,0 +1,38 @@
1
+ import { Point } from './Point';
2
+ export interface IAStarMap {
3
+ width(): number;
4
+ height(): number;
5
+ canPass(point: Point): boolean;
6
+ canPass(x: number, y: number): boolean;
7
+ extraWeight(point: Point): number;
8
+ }
9
+ export declare class Rect {
10
+ x: number;
11
+ y: number;
12
+ width: number;
13
+ height: number;
14
+ }
15
+ declare class AStarNode {
16
+ ParentNode: AStarNode;
17
+ CurTilePos: Point;
18
+ G: number;
19
+ H: number;
20
+ constructor(node: AStarNode, tilePos: any);
21
+ F(): number;
22
+ }
23
+ export declare class AStar {
24
+ protected _markList: Array<AStarNode>;
25
+ protected _markedList: Array<AStarNode>;
26
+ protected _routes: Array<Point>;
27
+ protected _maxTileWidth: number;
28
+ protected _maxTileHeight: number;
29
+ /**
30
+ * 先y在x,p(x:1,y:2),data[2][1]
31
+ */
32
+ protected _mapData: IAStarMap;
33
+ getRoutes(srcTilePos: Point, tarTilePos: Point, mapData: IAStarMap): Point[];
34
+ protected _routing(srcTilePos: Point, tarTilePos: Point): any;
35
+ protected _isInMark(tilePos: any): boolean;
36
+ protected _addToMark(curTilePos: Point, tarTilePos: Point, parentAStarNode: AStarNode): void;
37
+ }
38
+ export {};
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AStar = exports.Rect = void 0;
4
+ const Point_1 = require("./Point");
5
+ class Rect {
6
+ x = 0;
7
+ y = 0;
8
+ width = 0;
9
+ height = 0;
10
+ }
11
+ exports.Rect = Rect;
12
+ class AStarNode {
13
+ ParentNode = null;
14
+ CurTilePos = null;
15
+ G = 0;
16
+ H = 0;
17
+ constructor(node, tilePos) {
18
+ this.ParentNode = node;
19
+ this.CurTilePos = tilePos;
20
+ if (this.ParentNode) {
21
+ this.G = this.ParentNode.G + 10;
22
+ }
23
+ else {
24
+ this.G = 0;
25
+ }
26
+ }
27
+ F() {
28
+ return this.G + this.H;
29
+ }
30
+ }
31
+ class AStar {
32
+ _markList = null;
33
+ _markedList = null;
34
+ _routes = null;
35
+ _maxTileWidth = 0;
36
+ _maxTileHeight = 0;
37
+ /**
38
+ * 先y在x,p(x:1,y:2),data[2][1]
39
+ */
40
+ _mapData = null;
41
+ getRoutes(srcTilePos, tarTilePos, mapData) {
42
+ if (srcTilePos.equals(tarTilePos)) {
43
+ return [];
44
+ }
45
+ this._markList = [];
46
+ this._markedList = [];
47
+ this._routes = [];
48
+ this._mapData = mapData;
49
+ this._maxTileWidth = this._mapData.width();
50
+ this._maxTileHeight = this._mapData.height();
51
+ let tp = srcTilePos.sub(tarTilePos);
52
+ let node = new AStarNode(null, srcTilePos);
53
+ node.H = (Math.abs(tp.x) + Math.abs(tp.y)) * 10 + mapData.extraWeight(tarTilePos);
54
+ this._markList.push(node);
55
+ node = this._routing(srcTilePos, tarTilePos);
56
+ while (node) {
57
+ this._routes.push(node.CurTilePos);
58
+ node = node.ParentNode;
59
+ }
60
+ this._routes.reverse();
61
+ this._routes.shift();
62
+ return this._routes;
63
+ }
64
+ _routing(srcTilePos, tarTilePos) {
65
+ if (this._markList.length <= 0) //已经没有节点,是死路根本无法到达
66
+ {
67
+ return null;
68
+ }
69
+ let node = this._markList[0];
70
+ let curIndex = 0;
71
+ for (let i = 0; i < this._markList.length; ++i) {
72
+ if (node.F() > this._markList[i].F()) {
73
+ node = this._markList[i];
74
+ curIndex = i;
75
+ }
76
+ if (this._markList[i].CurTilePos.equals(tarTilePos)) //到达终点
77
+ {
78
+ return this._markList[i];
79
+ }
80
+ }
81
+ this._markList.splice(curIndex, 1);
82
+ this._markedList.push(node);
83
+ let tp = new Point_1.Point(0, 0);
84
+ //上
85
+ tp.x = node.CurTilePos.x;
86
+ tp.y = node.CurTilePos.y + 1;
87
+ this._addToMark(tp, tarTilePos, node);
88
+ //下
89
+ tp = new Point_1.Point(0, 0);
90
+ tp.x = node.CurTilePos.x;
91
+ tp.y = node.CurTilePos.y - 1;
92
+ this._addToMark(tp, tarTilePos, node);
93
+ //左
94
+ tp = new Point_1.Point(0, 0);
95
+ tp.x = node.CurTilePos.x - 1;
96
+ tp.y = node.CurTilePos.y;
97
+ this._addToMark(tp, tarTilePos, node);
98
+ //右
99
+ tp = new Point_1.Point(0, 0);
100
+ tp.x = node.CurTilePos.x + 1;
101
+ tp.y = node.CurTilePos.y;
102
+ this._addToMark(tp, tarTilePos, node);
103
+ return this._routing(srcTilePos, tarTilePos);
104
+ }
105
+ _isInMark(tilePos) {
106
+ for (let i = 0; i < this._markList.length; ++i) {
107
+ if (this._markList[i].CurTilePos.equals(tilePos)) {
108
+ return true;
109
+ }
110
+ }
111
+ for (let i = 0; i < this._markedList.length; ++i) {
112
+ if (this._markedList[i].CurTilePos.equals(tilePos)) {
113
+ return true;
114
+ }
115
+ }
116
+ return false;
117
+ }
118
+ _addToMark(curTilePos, tarTilePos, parentAStarNode) {
119
+ //无地图数据
120
+ if (curTilePos.x < 0 || curTilePos.y < 0
121
+ || !this._mapData.canPass(curTilePos)) {
122
+ return;
123
+ }
124
+ if (!this._isInMark(curTilePos)) //未曾添加
125
+ {
126
+ let newNode = new AStarNode(parentAStarNode, curTilePos);
127
+ let temp_tp = parentAStarNode.CurTilePos.sub(tarTilePos);
128
+ newNode.H = (Math.abs(temp_tp.x) + Math.abs(temp_tp.y)) * 10;
129
+ this._markList.push(newNode);
130
+ }
131
+ }
132
+ }
133
+ exports.AStar = AStar;
134
+ //# sourceMappingURL=Astar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Astar.js","sourceRoot":"","sources":["../../../Framework/AI/Astar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export declare class BehaviorAI {
2
+ protected _obj: any;
3
+ protected _targetObjs: any[];
4
+ protected _triggers: any[];
5
+ protected _behavior_data: any;
6
+ protected _current_behavior: any;
7
+ protected _current_behavior_name: string;
8
+ protected _current_check: any[];
9
+ protected _targetObj: any;
10
+ constructor(behavior_data: any, obj: any, targetObjs: any);
11
+ start(): void;
12
+ end(): void;
13
+ update(dt: any): void;
14
+ goto(behavior_name: any): void;
15
+ _checkConditions(conditions: any): void;
16
+ _doEvents(events: any, fail?: boolean): any;
17
+ onTriggerDie(userDM: any): void;
18
+ _getNearestTarget(): {
19
+ target: any;
20
+ distance: number;
21
+ };
22
+ addTarget(target: any): void;
23
+ getTargets(): any[];
24
+ }
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BehaviorAI = void 0;
4
+ const Log_1 = require("./../Logic/Log");
5
+ const Core_1 = require("./../Core/Core");
6
+ const _ = require("underscore");
7
+ const TriggerMgr_1 = require("./TriggerMgr");
8
+ class BehaviorAI {
9
+ _obj;
10
+ _targetObjs;
11
+ _triggers;
12
+ _behavior_data;
13
+ _current_behavior;
14
+ _current_behavior_name = "";
15
+ _current_check;
16
+ _targetObj;
17
+ constructor(behavior_data, obj, targetObjs) {
18
+ this._obj = obj;
19
+ this._behavior_data = behavior_data;
20
+ if (Core_1.core.isArray(targetObjs)) {
21
+ this._targetObjs = targetObjs;
22
+ }
23
+ else if (targetObjs) {
24
+ this._targetObjs[0] = targetObjs;
25
+ }
26
+ else {
27
+ this._targetObjs = [];
28
+ }
29
+ this._triggers = [];
30
+ let code = TriggerMgr_1.GTriggerMgr.addConditionTriggerEvent(TriggerMgr_1.EConditionType.Die, this.onTriggerDie.bind(this), { code: this._obj.getCode() });
31
+ this._triggers.push({ type: TriggerMgr_1.EConditionType.Die, code: code });
32
+ }
33
+ //启动行为树AI
34
+ start() {
35
+ if (!this._behavior_data) {
36
+ Log_1.GLog.info("------------error------------this._behavior_data can not be null!", true);
37
+ return;
38
+ }
39
+ this.goto(this._behavior_data.start);
40
+ }
41
+ //结束行为树AI
42
+ end() {
43
+ for (let i = 0, length = this._triggers.length; i < length; ++i) {
44
+ TriggerMgr_1.GTriggerMgr.removeConditionTriggerEvent(this._triggers[i].type, this._triggers[i].code);
45
+ }
46
+ this._triggers = [];
47
+ }
48
+ //帧检查
49
+ //支持多条件check
50
+ update(dt) {
51
+ if (this._current_check.length < 0) {
52
+ return;
53
+ }
54
+ for (let i = 0; i < this._current_check.length; ++i) {
55
+ let current = this._current_check[i];
56
+ //目前只支持同时存在一个update检查
57
+ if (current.event_name == "target_insight") {
58
+ let targetInfo = this._getNearestTarget();
59
+ if (targetInfo) {
60
+ let target = targetInfo.target;
61
+ let distance = targetInfo.distance;
62
+ if (distance <= this._behavior_data.insight) //视野发现敌人
63
+ {
64
+ this._current_check = this._current_check.splice(i, 1);
65
+ --i;
66
+ let forceReturn = this._doEvents(this._current_behavior.conditions[current.event_name]);
67
+ if (forceReturn) {
68
+ return; //防止goto修改this._current_check后,做了立刻check
69
+ }
70
+ }
71
+ }
72
+ }
73
+ else if (current.event_name == "sure") {
74
+ this._current_check = this._current_check.splice(i, 1);
75
+ --i;
76
+ let forceReturn = this._doEvents(this._current_behavior.conditions[current.event_name]);
77
+ if (forceReturn) {
78
+ return; //防止goto修改this._current_check后,做了立刻check
79
+ }
80
+ }
81
+ else if (current.event_name == "near") {
82
+ if (this._targetObj) {
83
+ let objPos = this._obj.getPosition();
84
+ let tpos = this._targetObj.getPosition();
85
+ let distance = objPos.sub(tpos).length(); //目标和自己的距离
86
+ let dty = objPos.y - tpos.y;
87
+ dty = dty >= 0 ? dty : -dty;
88
+ if (distance <= current.distance && dty <= 10) //视野发现敌人
89
+ {
90
+ this._current_check = this._current_check.splice(i, 1);
91
+ --i;
92
+ let forceReturn = this._doEvents(this._current_behavior.conditions[current.event_name]);
93
+ if (forceReturn) {
94
+ return; //防止goto修改this._current_check后,做了立刻check
95
+ }
96
+ }
97
+ }
98
+ else {
99
+ this._current_check = this._current_check.splice(i, 1);
100
+ --i;
101
+ let forceReturn = this._doEvents(this._current_behavior.conditions[current.event_name], true);
102
+ if (forceReturn) {
103
+ return; //防止goto修改this._current_check后,做了立刻check
104
+ }
105
+ }
106
+ }
107
+ else if (current.event_name == "timeout") {
108
+ current.time -= dt;
109
+ if (current.time <= 0) {
110
+ this._current_check = this._current_check.splice(i, 1);
111
+ --i;
112
+ let forceReturn = this._doEvents(this._current_behavior.conditions[current.event_name]);
113
+ if (forceReturn) {
114
+ return; //防止goto修改this._current_check后,做了立刻check
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ //goto事件
121
+ goto(behavior_name) {
122
+ //GLog.info("=====goto behavior=" + behavior_name);
123
+ if (this._behavior_data && this._behavior_data.name == behavior_name) {
124
+ return; //拒绝相同行为跳转
125
+ }
126
+ this._current_check = [];
127
+ this._current_behavior = this._behavior_data.behaviors[behavior_name];
128
+ //全局条件
129
+ if (this._behavior_data.conditions) {
130
+ this._checkConditions(this._behavior_data.conditions);
131
+ }
132
+ //行为条件
133
+ if (this._current_behavior.conditions) {
134
+ this._checkConditions(this._current_behavior.conditions);
135
+ }
136
+ if (this._current_behavior.animation) {
137
+ if (!this._current_behavior.conditions.animation_done) {
138
+ this._obj.behaviorAnimation(this._current_behavior.animation.name, this._current_behavior.animation.loop);
139
+ }
140
+ else {
141
+ let self = this;
142
+ this._obj.behaviorAnimation(this._current_behavior.animation.name, this._current_behavior.animation.loop, function () {
143
+ self._doEvents(self._current_behavior.conditions.animation_done);
144
+ });
145
+ }
146
+ }
147
+ else {
148
+ Log_1.GLog.info("---------warning--------_goto->behavior_name=" + behavior_name + ".animaiton not exist!");
149
+ }
150
+ }
151
+ //检查有没有已经达到的条件,又的话就执行他的相关事件
152
+ _checkConditions(conditions) {
153
+ if (!conditions) {
154
+ return;
155
+ }
156
+ for (let key in conditions) {
157
+ switch (key) {
158
+ case "target_insight":
159
+ {
160
+ this._current_check.push({ event_name: key });
161
+ }
162
+ break;
163
+ case "timeout":
164
+ {
165
+ this._current_check.push({ event_name: key, time: conditions[key].time });
166
+ }
167
+ break;
168
+ case "sure":
169
+ {
170
+ this._current_check.push({ event_name: key }); //下次update执行
171
+ }
172
+ break;
173
+ case "near":
174
+ {
175
+ this._targetObj = null;
176
+ this._current_check.push({ event_name: key, distance: conditions[key].distance });
177
+ let targetInfo = this._getNearestTarget();
178
+ if (targetInfo) {
179
+ if (this._behavior_data.name == "sm")
180
+ Log_1.GLog.info("distance" + targetInfo.distance);
181
+ this._targetObj = targetInfo.target;
182
+ }
183
+ }
184
+ break;
185
+ default:
186
+ break;
187
+ }
188
+ }
189
+ }
190
+ //执行事件
191
+ _doEvents(events, fail = false) {
192
+ if (!events) {
193
+ return false;
194
+ }
195
+ if (fail && events.failto) {
196
+ this.goto(events.failto);
197
+ return true;
198
+ }
199
+ let forceReturn = false;
200
+ for (let key in events) {
201
+ switch (key) {
202
+ case "goto":
203
+ {
204
+ this.goto(events[key]);
205
+ forceReturn = true;
206
+ }
207
+ break;
208
+ case "walk_any":
209
+ {
210
+ if (this._obj.behaviorWalkAny) {
211
+ this._obj.behaviorWalkAny();
212
+ }
213
+ }
214
+ break;
215
+ case "persue":
216
+ {
217
+ if (this._obj.behaviorPersue && this._targetObj) {
218
+ this._obj.behaviorPersue(this._targetObj);
219
+ }
220
+ }
221
+ break;
222
+ case "call":
223
+ {
224
+ if (events[key].fun && this._obj[events[key].fun]) {
225
+ this._obj[events[key].fun](events[key].params);
226
+ }
227
+ }
228
+ break;
229
+ case "random":
230
+ {
231
+ let r = _.random(0, 100); //百分率
232
+ let rate = 0;
233
+ let done = false;
234
+ //最后一条不参与检测
235
+ for (let i = 0, length = events[key].length; i < length - 1; ++i) {
236
+ rate += events[key][i].rate;
237
+ if (r <= rate) {
238
+ forceReturn = this._doEvents(events[key][i].events);
239
+ done = true;
240
+ break;
241
+ }
242
+ }
243
+ //如果前面都没有成功,必须保证最后一条得到执行
244
+ if (!done) {
245
+ forceReturn = this._doEvents(events[key][events[key].length - 1].events);
246
+ }
247
+ }
248
+ default:
249
+ break;
250
+ }
251
+ }
252
+ return forceReturn;
253
+ }
254
+ //角色死亡触发
255
+ onTriggerDie(userDM) {
256
+ if (!userDM) {
257
+ return;
258
+ }
259
+ if (this._obj.getCode() === userDM.code) {
260
+ this.goto("die");
261
+ this.end();
262
+ return;
263
+ }
264
+ for (let i = 0, length = this._targetObjs.length; i < length; ++i) {
265
+ if (this._targetObjs[i].getCode() === userDM.code) {
266
+ this._targetObjs = this._targetObjs.splice(i, 1);
267
+ if (this._targetObj.getCode() === userDM.code) {
268
+ this._targetObj = null;
269
+ }
270
+ return;
271
+ }
272
+ }
273
+ return;
274
+ }
275
+ //获取最近的target
276
+ _getNearestTarget() {
277
+ let targetNum = this._targetObjs.length;
278
+ if (targetNum <= 0) {
279
+ return null;
280
+ }
281
+ let objPos = this._obj.getPosition();
282
+ if (targetNum == 1) {
283
+ return { target: this._targetObjs[0], distance: objPos.sub(this._targetObjs[0].getPosition()).length() };
284
+ }
285
+ let minIndex = 0;
286
+ let mindis = objPos.sub(this._targetObjs[0].getPosition()).length();
287
+ for (let i = 1; i < targetNum; ++i) {
288
+ let dis = objPos.sub(this._targetObjs[i].getPosition()).length();
289
+ if (mindis > dis) {
290
+ mindis = dis;
291
+ minIndex = i;
292
+ }
293
+ }
294
+ return { target: this._targetObjs[minIndex], distance: mindis };
295
+ }
296
+ //添加target
297
+ addTarget(target) {
298
+ if (!target) {
299
+ return;
300
+ }
301
+ this._targetObjs.push(target);
302
+ }
303
+ getTargets() {
304
+ return this._targetObjs;
305
+ }
306
+ }
307
+ exports.BehaviorAI = BehaviorAI;
308
+ //# sourceMappingURL=BehaviorAI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BehaviorAI.js","sourceRoot":"","sources":["../../../Framework/AI/BehaviorAI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Point } from './Point';
2
+ export declare class Entity {
3
+ protected _id: number;
4
+ get id(): number;
5
+ protected _world_pos: Point;
6
+ get worldPos(): Point;
7
+ set worldPos(value: Point);
8
+ protected _cell: Point;
9
+ get cellPos(): Point;
10
+ set cellPos(value: Point);
11
+ initPos(pos: Point): void;
12
+ }
@@ -0,0 +1,34 @@
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;
34
+ //# sourceMappingURL=Entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../Framework/AI/Entity.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,iBAAiB;AACjB,MAAa,MAAM;IAEL,GAAG,GAAC,CAAC,CAAC,CAAA;IAChB,IAAW,EAAE;QAET,OAAO,IAAI,CAAC,GAAG,CAAA;IACnB,CAAC;IACS,UAAU,GAAO,IAAI,aAAK,EAAE,CAAA;IACtC,IAAW,QAAQ;QAEf,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IACD,IAAW,QAAQ,CAAC,KAAW;QAE3B,IAAI,CAAC,UAAU,GAAC,KAAK,CAAA;IACzB,CAAC;IACS,KAAK,GAAO,IAAI,aAAK,EAAE,CAAA;IACjC,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IACD,IAAW,OAAO,CAAC,KAAW;QAE1B,IAAI,CAAC,KAAK,GAAC,KAAK,CAAA;IACpB,CAAC;IACD,OAAO,CAAC,GAAS;QAEb,cAAc;QACd,IAAI,CAAC,UAAU,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,GAAC,GAAG,CAAA;QAE3B,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC,CAAA;IACtB,CAAC;CACJ;AAlCD,wBAkCC"}
@@ -0,0 +1,17 @@
1
+ export declare class Point {
2
+ x: number;
3
+ y: number;
4
+ constructor(x?: number, y?: number);
5
+ sub(pt: Point): Point;
6
+ subSelf(pt: Point): void;
7
+ add(pt: Point): Point;
8
+ addSelf(pt: Point): void;
9
+ equals(pt: Point): boolean;
10
+ fuzzyEqual(pt: Point, w: number): boolean;
11
+ length(): number;
12
+ mul(n: number): Point;
13
+ mulSelf(n: number): void;
14
+ toI(): Point;
15
+ normalize(): Point;
16
+ normalizeSelf(): void;
17
+ }