cgserver 6.0.0 → 6.0.1

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 (205) hide show
  1. package/dist/cgserver.js +1037 -0
  2. package/dist/types/AI/AiObject.d.ts +5 -0
  3. package/dist/types/AI/Astar.d.ts +38 -0
  4. package/dist/types/AI/BehaviorAI.d.ts +24 -0
  5. package/dist/types/AI/Entity.d.ts +12 -0
  6. package/dist/types/AI/Point.d.ts +17 -0
  7. package/dist/types/AI/TriggerMgr.d.ts +52 -0
  8. package/dist/types/Config/Config.d.ts +7 -0
  9. package/dist/types/Config/FrameworkConfig.d.ts +229 -0
  10. package/dist/types/Config/ServerConfig.d.ts +9 -0
  11. package/dist/types/Config/_error_.d.ts +99 -0
  12. package/dist/types/Core/Core.d.ts +101 -0
  13. package/dist/types/Core/Timer.d.ts +16 -0
  14. package/dist/types/Database/BaseMongoService.d.ts +67 -0
  15. package/dist/types/Database/BaseService.d.ts +34 -0
  16. package/dist/types/Database/Decorator/AutoIncrement.d.ts +1 -0
  17. package/dist/types/Database/Decorator/DBCache.d.ts +21 -0
  18. package/dist/types/Database/Decorator/NotNull.d.ts +1 -0
  19. package/dist/types/Database/Decorator/PrimaryKey.d.ts +1 -0
  20. package/dist/types/Database/Decorator/Property.d.ts +55 -0
  21. package/dist/types/Database/Decorator/Table.d.ts +1 -0
  22. package/dist/types/Database/Decorator/Type.d.ts +1 -0
  23. package/dist/types/Database/MSSqlManager.d.ts +17 -0
  24. package/dist/types/Database/MongoManager.d.ts +135 -0
  25. package/dist/types/Database/MysqlManager.d.ts +41 -0
  26. package/dist/types/Database/RedisManager.d.ts +64 -0
  27. package/dist/types/Index.d.ts +65 -0
  28. package/dist/types/Logic/CacheTool.d.ts +25 -0
  29. package/dist/types/Logic/HttpTool.d.ts +14 -0
  30. package/dist/types/Logic/Log.d.ts +15 -0
  31. package/dist/types/Service/AccountService.d.ts +77 -0
  32. package/dist/types/Service/MongoAccountService.d.ts +78 -0
  33. package/dist/types/Service/MongoCacheService.d.ts +13 -0
  34. package/dist/types/Service/MongoUserService.d.ts +36 -0
  35. package/dist/types/Service/UserService.d.ts +36 -0
  36. package/dist/types/Service/ini.d.ts +28 -0
  37. package/dist/types/SocketServer/IClientWebSocket.d.ts +24 -0
  38. package/dist/types/SocketServer/IServerWebSocket.d.ts +13 -0
  39. package/dist/types/SocketServer/ISocketServer.d.ts +36 -0
  40. package/dist/types/SocketServer/IWebSocket.d.ts +44 -0
  41. package/dist/types/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -0
  42. package/dist/types/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -0
  43. package/dist/types/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -0
  44. package/dist/types/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -0
  45. package/dist/types/ThirdParty/AlipayTool.d.ts +40 -0
  46. package/dist/types/ThirdParty/Alisms.d.ts +14 -0
  47. package/dist/types/ThirdParty/AppleTool.d.ts +131 -0
  48. package/dist/types/ThirdParty/EmailTool.d.ts +5 -0
  49. package/dist/types/ThirdParty/OpenSocial.d.ts +7 -0
  50. package/dist/types/ThirdParty/QQTool.d.ts +41 -0
  51. package/dist/types/ThirdParty/QiniuTool.d.ts +6 -0
  52. package/dist/types/ThirdParty/WechatOATool.d.ts +13 -0
  53. package/dist/types/ThirdParty/WechatTool.d.ts +20 -0
  54. package/dist/types/WebServer/Controller/BaseController.d.ts +33 -0
  55. package/dist/types/WebServer/Controller/BaseUserController.d.ts +26 -0
  56. package/dist/types/WebServer/Controller/MongoBaseUserController.d.ts +26 -0
  57. package/dist/types/WebServer/Decorator/AdminValidate.d.ts +1 -0
  58. package/dist/types/WebServer/Decorator/AuthorityValidate.d.ts +2 -0
  59. package/dist/types/WebServer/Decorator/CreatorValidate.d.ts +1 -0
  60. package/dist/types/WebServer/Decorator/JsonAdminValidate.d.ts +1 -0
  61. package/dist/types/WebServer/Decorator/JsonAuthorityValidate.d.ts +2 -0
  62. package/dist/types/WebServer/Decorator/JsonCreatorValidate.d.ts +1 -0
  63. package/dist/types/WebServer/Engine/ControllerManager.d.ts +21 -0
  64. package/dist/types/WebServer/Engine/Engine.d.ts +21 -0
  65. package/dist/types/WebServer/Engine/RazorJs.d.ts +21 -0
  66. package/dist/types/WebServer/Engine/Request.d.ts +35 -0
  67. package/dist/types/WebServer/Engine/Response.d.ts +28 -0
  68. package/dist/types/WebServer/IWebServer.d.ts +20 -0
  69. package/package.json +3 -2
  70. package/out/AI/AiObject.js +0 -11
  71. package/out/AI/AiObject.js.map +0 -1
  72. package/out/AI/Astar.js +0 -134
  73. package/out/AI/Astar.js.map +0 -1
  74. package/out/AI/BehaviorAI.js +0 -308
  75. package/out/AI/BehaviorAI.js.map +0 -1
  76. package/out/AI/Entity.js +0 -34
  77. package/out/AI/Entity.js.map +0 -1
  78. package/out/AI/Point.js +0 -69
  79. package/out/AI/Point.js.map +0 -1
  80. package/out/AI/TriggerMgr.js +0 -202
  81. package/out/AI/TriggerMgr.js.map +0 -1
  82. package/out/Config/Config.js +0 -38
  83. package/out/Config/Config.js.map +0 -1
  84. package/out/Config/FrameworkConfig.js +0 -235
  85. package/out/Config/FrameworkConfig.js.map +0 -1
  86. package/out/Config/ServerConfig.js +0 -19
  87. package/out/Config/ServerConfig.js.map +0 -1
  88. package/out/Config/_error_.js +0 -36
  89. package/out/Config/_error_.js.map +0 -1
  90. package/out/Core/Core.js +0 -562
  91. package/out/Core/Core.js.map +0 -1
  92. package/out/Core/Timer.js +0 -117
  93. package/out/Core/Timer.js.map +0 -1
  94. package/out/Database/BaseMongoService.js +0 -80
  95. package/out/Database/BaseMongoService.js.map +0 -1
  96. package/out/Database/BaseService.js +0 -282
  97. package/out/Database/BaseService.js.map +0 -1
  98. package/out/Database/Decorator/AutoIncrement.js +0 -12
  99. package/out/Database/Decorator/AutoIncrement.js.map +0 -1
  100. package/out/Database/Decorator/DBCache.js +0 -65
  101. package/out/Database/Decorator/DBCache.js.map +0 -1
  102. package/out/Database/Decorator/NotNull.js +0 -12
  103. package/out/Database/Decorator/NotNull.js.map +0 -1
  104. package/out/Database/Decorator/PrimaryKey.js +0 -12
  105. package/out/Database/Decorator/PrimaryKey.js.map +0 -1
  106. package/out/Database/Decorator/Property.js +0 -62
  107. package/out/Database/Decorator/Property.js.map +0 -1
  108. package/out/Database/Decorator/Table.js +0 -16
  109. package/out/Database/Decorator/Table.js.map +0 -1
  110. package/out/Database/Decorator/Type.js +0 -21
  111. package/out/Database/Decorator/Type.js.map +0 -1
  112. package/out/Database/MSSqlManager.js +0 -44
  113. package/out/Database/MSSqlManager.js.map +0 -1
  114. package/out/Database/MongoManager.js +0 -402
  115. package/out/Database/MongoManager.js.map +0 -1
  116. package/out/Database/MysqlManager.js +0 -181
  117. package/out/Database/MysqlManager.js.map +0 -1
  118. package/out/Database/RedisManager.js +0 -409
  119. package/out/Database/RedisManager.js.map +0 -1
  120. package/out/Index.js +0 -134
  121. package/out/Index.js.map +0 -1
  122. package/out/Logic/CacheTool.js +0 -74
  123. package/out/Logic/CacheTool.js.map +0 -1
  124. package/out/Logic/HttpTool.js +0 -59
  125. package/out/Logic/HttpTool.js.map +0 -1
  126. package/out/Logic/Log.js +0 -78
  127. package/out/Logic/Log.js.map +0 -1
  128. package/out/Service/AccountService.js +0 -474
  129. package/out/Service/AccountService.js.map +0 -1
  130. package/out/Service/MongoAccountService.js +0 -397
  131. package/out/Service/MongoAccountService.js.map +0 -1
  132. package/out/Service/MongoCacheService.js +0 -28
  133. package/out/Service/MongoCacheService.js.map +0 -1
  134. package/out/Service/MongoUserService.js +0 -94
  135. package/out/Service/MongoUserService.js.map +0 -1
  136. package/out/Service/UserService.js +0 -185
  137. package/out/Service/UserService.js.map +0 -1
  138. package/out/Service/ini.js +0 -36
  139. package/out/Service/ini.js.map +0 -1
  140. package/out/SocketServer/IClientWebSocket.js +0 -72
  141. package/out/SocketServer/IClientWebSocket.js.map +0 -1
  142. package/out/SocketServer/IServerWebSocket.js +0 -42
  143. package/out/SocketServer/IServerWebSocket.js.map +0 -1
  144. package/out/SocketServer/ISocketServer.js +0 -191
  145. package/out/SocketServer/ISocketServer.js.map +0 -1
  146. package/out/SocketServer/IWebSocket.js +0 -224
  147. package/out/SocketServer/IWebSocket.js.map +0 -1
  148. package/out/SocketServer/ProtoFilter/GoogleProtoFilter.js +0 -58
  149. package/out/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +0 -1
  150. package/out/SocketServer/ProtoFilter/IProtoFilter.js +0 -9
  151. package/out/SocketServer/ProtoFilter/IProtoFilter.js.map +0 -1
  152. package/out/SocketServer/ProtoFilter/JsonProtoFilter.js +0 -30
  153. package/out/SocketServer/ProtoFilter/JsonProtoFilter.js.map +0 -1
  154. package/out/SocketServer/ProtoFilter/ProtoFactory.js +0 -32
  155. package/out/SocketServer/ProtoFilter/ProtoFactory.js.map +0 -1
  156. package/out/ThirdParty/AlipayTool.js +0 -123
  157. package/out/ThirdParty/AlipayTool.js.map +0 -1
  158. package/out/ThirdParty/Alisms.js +0 -47
  159. package/out/ThirdParty/Alisms.js.map +0 -1
  160. package/out/ThirdParty/AppleTool.js +0 -235
  161. package/out/ThirdParty/AppleTool.js.map +0 -1
  162. package/out/ThirdParty/EmailTool.js +0 -34
  163. package/out/ThirdParty/EmailTool.js.map +0 -1
  164. package/out/ThirdParty/OpenSocial.js +0 -33
  165. package/out/ThirdParty/OpenSocial.js.map +0 -1
  166. package/out/ThirdParty/QQTool.js +0 -116
  167. package/out/ThirdParty/QQTool.js.map +0 -1
  168. package/out/ThirdParty/QiniuTool.js +0 -22
  169. package/out/ThirdParty/QiniuTool.js.map +0 -1
  170. package/out/ThirdParty/WechatOATool.js +0 -62
  171. package/out/ThirdParty/WechatOATool.js.map +0 -1
  172. package/out/ThirdParty/WechatTool.js +0 -75
  173. package/out/ThirdParty/WechatTool.js.map +0 -1
  174. package/out/WebServer/Controller/BaseController.js +0 -113
  175. package/out/WebServer/Controller/BaseController.js.map +0 -1
  176. package/out/WebServer/Controller/BaseUserController.js +0 -169
  177. package/out/WebServer/Controller/BaseUserController.js.map +0 -1
  178. package/out/WebServer/Controller/MongoBaseUserController.js +0 -169
  179. package/out/WebServer/Controller/MongoBaseUserController.js.map +0 -1
  180. package/out/WebServer/Decorator/AdminValidate.js +0 -20
  181. package/out/WebServer/Decorator/AdminValidate.js.map +0 -1
  182. package/out/WebServer/Decorator/AuthorityValidate.js +0 -23
  183. package/out/WebServer/Decorator/AuthorityValidate.js.map +0 -1
  184. package/out/WebServer/Decorator/CreatorValidate.js +0 -20
  185. package/out/WebServer/Decorator/CreatorValidate.js.map +0 -1
  186. package/out/WebServer/Decorator/JsonAdminValidate.js +0 -16
  187. package/out/WebServer/Decorator/JsonAdminValidate.js.map +0 -1
  188. package/out/WebServer/Decorator/JsonAuthorityValidate.js +0 -21
  189. package/out/WebServer/Decorator/JsonAuthorityValidate.js.map +0 -1
  190. package/out/WebServer/Decorator/JsonCreatorValidate.js +0 -20
  191. package/out/WebServer/Decorator/JsonCreatorValidate.js.map +0 -1
  192. package/out/WebServer/Engine/ControllerManager.js +0 -113
  193. package/out/WebServer/Engine/ControllerManager.js.map +0 -1
  194. package/out/WebServer/Engine/Engine.js +0 -136
  195. package/out/WebServer/Engine/Engine.js.map +0 -1
  196. package/out/WebServer/Engine/RazorJs.js +0 -545
  197. package/out/WebServer/Engine/RazorJs.js.map +0 -1
  198. package/out/WebServer/Engine/Request.js +0 -215
  199. package/out/WebServer/Engine/Request.js.map +0 -1
  200. package/out/WebServer/Engine/Response.js +0 -95
  201. package/out/WebServer/Engine/Response.js.map +0 -1
  202. package/out/WebServer/IWebServer.js +0 -50
  203. package/out/WebServer/IWebServer.js.map +0 -1
  204. package/tsconfig.json +0 -25
  205. package/webpack.config.js +0 -14
@@ -0,0 +1,21 @@
1
+ import { BaseController } from "../Controller/BaseController";
2
+ export declare let GCtrMgr: ControllerManager;
3
+ declare class ControllerManager {
4
+ protected _ctrs: Map<string, Map<string, BaseController>>;
5
+ protected _ctr_cls: Map<string, Map<string, any>>;
6
+ protected _cache_action_names: Map<string, Map<string, Map<string, string>>>;
7
+ registerController(module_name: string, ctr_name: string, cls: Function): void;
8
+ protected _cacheActionName(module_name: string, ctr_name: string, cls: Function): void;
9
+ getActionName(module_name: string, ctr_name: string, action_name: string): any;
10
+ /**
11
+ * 静态ctr,这样,ctr就不会被多次创建
12
+ * @param module_name
13
+ * @param ctr_name
14
+ * @param obj
15
+ */
16
+ registerStaticController(module_name: string, ctr_name: string, obj: BaseController): void;
17
+ protected _cacheActionNameForStatic(module_name: string, ctr_name: string, obj: BaseController): void;
18
+ getStaticCtr(module_name: string, controller_name: string): BaseController;
19
+ getClass(module_name: string, controller_name: string): any;
20
+ }
21
+ export {};
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { Response } from './Response';
3
+ import { Request } from './Request';
4
+ import { RazorJs } from './RazorJs';
5
+ import * as http from "http";
6
+ import { WebServerConfig } from '../../Config/FrameworkConfig';
7
+ import * as Express from 'express';
8
+ export declare class Engine {
9
+ protected _app: import("express-serve-static-core").Express;
10
+ protected _cfg: WebServerConfig;
11
+ get cfg(): WebServerConfig;
12
+ protected _server: http.Server;
13
+ protected _razorJs: RazorJs;
14
+ protected _root_path: string;
15
+ constructor(cfg: WebServerConfig, razorJs: RazorJs);
16
+ start(): void;
17
+ protected _all(_req: Express.Request, _res: Express.Response): Promise<void>;
18
+ stop(): void;
19
+ getRenderHtml(req: Request, res: Response, datas: any): any;
20
+ protected _getRenderHtml(req: Request, res: Response, tmpl: any, params: any): any;
21
+ }
@@ -0,0 +1,21 @@
1
+ export declare class RazorJs {
2
+ protected _request: any;
3
+ protected _response: any;
4
+ cache: {
5
+ _data: {};
6
+ set: (key: any, val: any) => void;
7
+ get: (key: any) => any;
8
+ reset: () => void;
9
+ };
10
+ localsName: string;
11
+ constructor();
12
+ resolveInclude(name: any, filename: any): any;
13
+ _handleCache(options: any, template?: any): any;
14
+ includeFile(path: any, options: any): any;
15
+ includeSource(path: any, options: any): string;
16
+ _cpOptsInData(data: any, opts: any): void;
17
+ compile(template: any, opts: any): any;
18
+ render(req: any, res: any, tmpl_path: any, data: any, opts: any): any;
19
+ renderFile(): any;
20
+ clearCache(): void;
21
+ }
@@ -0,0 +1,35 @@
1
+ /// <reference types="qs" />
2
+ /// <reference types="node" />
3
+ import * as Express from 'express';
4
+ import { WebServerConfig } from "../../Config/FrameworkConfig";
5
+ export declare class Request {
6
+ protected _req: Express.Request;
7
+ get baseReq(): Express.Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
8
+ protected _cfg: WebServerConfig;
9
+ protected _post_cb: () => void;
10
+ set onPost(value: any);
11
+ protected _module: string;
12
+ get module(): string;
13
+ protected _controller: string;
14
+ get controller(): string;
15
+ protected _action: string;
16
+ get action(): string;
17
+ protected _suffix: string;
18
+ get suffix(): string;
19
+ protected _file_url: any;
20
+ get fileUrl(): any;
21
+ protected _params: any;
22
+ get params(): any;
23
+ get postData(): any;
24
+ get url(): string;
25
+ get root(): string;
26
+ get method(): string;
27
+ get headers(): import("http").IncomingHttpHeaders;
28
+ get remoteHost(): string;
29
+ constructor(req: Express.Request, cfg: WebServerConfig);
30
+ getCookie(key: string): any;
31
+ protected _init(): void;
32
+ protected _addListener(event: string | symbol, listener: (...args: any[]) => void): void;
33
+ protected _parseParams(path: string): void;
34
+ debugInfo(): void;
35
+ }
@@ -0,0 +1,28 @@
1
+ import * as Express from 'express';
2
+ import { WebServerConfig } from "../../Config/FrameworkConfig";
3
+ export declare class Response {
4
+ protected _res: Express.Response;
5
+ protected _cookie_prefix: string;
6
+ protected _cfg: WebServerConfig;
7
+ constructor(res: Express.Response, cfg: WebServerConfig);
8
+ protected _init(): void;
9
+ /**
10
+ *
11
+ * @param key
12
+ * @param value
13
+ * @param time 秒
14
+ */
15
+ setCookie(key: string, value: any, time?: any): void;
16
+ clearCookie(key: string): void;
17
+ redirect(path: string): void;
18
+ renderJson(data: any, origin?: string | string[] | undefined): void;
19
+ renderJson404(origin?: string | string[] | undefined): void;
20
+ renderJson500(origin?: string | string[] | undefined): void;
21
+ renderHtml(html: string): void;
22
+ render404(html?: string): void;
23
+ renderOptions(method: any, origin: any): void;
24
+ renderFile(fullPath: string): void;
25
+ downloadFile(fullPath: string): void;
26
+ render304(): void;
27
+ debugInfo(data: any): void;
28
+ }
@@ -0,0 +1,20 @@
1
+ import { Engine } from './Engine/Engine';
2
+ import { WebServerConfig } from '../Config/FrameworkConfig';
3
+ export declare class IWebServer {
4
+ protected _engine: Engine;
5
+ /**
6
+ * 启动服务器
7
+ * @param server_index 这个是服务器的配置index
8
+ */
9
+ start(cfg: WebServerConfig): Promise<boolean>;
10
+ stop(): void;
11
+ /**
12
+ * 注册控制器
13
+ * eg:GControllerMgr.registerController("Admin","System",SystemController)
14
+ */
15
+ protected _registerController(): void;
16
+ /**
17
+ * 注册路由
18
+ */
19
+ protected _registerRouter(): void;
20
+ }
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "cgserver",
3
- "version": "6.0.0",
3
+ "version": "6.0.1",
4
4
  "author": "trojan",
5
5
  "type": "commonjs",
6
6
  "description": "free for all.Websocket or Http",
7
- "main": "./dist/index.js",
7
+ "main": "./dist/cgserver.js",
8
+ "directories": {"dist":true},
8
9
  "scripts": {
9
10
  "test": "echo \"Error: no test specified\" && exit 1"
10
11
  },
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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"}
package/out/AI/Astar.js DELETED
@@ -1,134 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"Astar.js","sourceRoot":"","sources":["../../Framework/AI/Astar.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAShC,MAAa,IAAI;IAEb,CAAC,GAAC,CAAC,CAAA;IACH,CAAC,GAAC,CAAC,CAAA;IACH,KAAK,GAAC,CAAC,CAAA;IACP,MAAM,GAAC,CAAC,CAAA;CACX;AAND,oBAMC;AACD,MAAM,SAAS;IAEX,UAAU,GAAY,IAAI,CAAA;IAC1B,UAAU,GAAQ,IAAI,CAAA;IACtB,CAAC,GAAS,CAAC,CAAA;IACX,CAAC,GAAS,CAAC,CAAA;IACX,YAAY,IAAc,EAAE,OAAO;QAE/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,EACnB;YACI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;SACnC;aAED;YACI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACd;IACL,CAAC;IACD,CAAC;QAEG,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC;CACJ;AAED,MAAa,KAAK;IAEJ,SAAS,GAAmB,IAAI,CAAA;IAChC,WAAW,GAAmB,IAAI,CAAA;IAClC,OAAO,GAAe,IAAI,CAAA;IAC1B,aAAa,GAAS,CAAC,CAAA;IACvB,cAAc,GAAS,CAAC,CAAA;IAClC;;OAEG;IACO,QAAQ,GAAW,IAAI,CAAA;IACjC,SAAS,CAAC,UAAgB,EAAE,UAAgB,EAAE,OAAiB;QAE3D,IAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAChC;YACI,OAAO,EAAE,CAAA;SACZ;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC5C,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACnC,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC1C,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QAC/E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEzB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAC5C,OAAO,IAAI,EACX;YACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAClC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;SACzB;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IACS,QAAQ,CAAC,UAAgB,EAAE,UAAgB;QAEjD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAC,kBAAkB;SACjD;YACI,OAAO,IAAI,CAAA;SACd;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAC9C;YACI,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EACpC;gBACI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzB,QAAQ,GAAG,CAAC,CAAC;aAChB;YACD,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAC,MAAM;aAC1D;gBACI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC5B;SACJ;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,EAAE,GAAG,IAAI,aAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,GAAG;QACH,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,GAAG;QACH,EAAE,GAAG,IAAI,aAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,GAAG;QACH,EAAE,GAAG,IAAI,aAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACtC,GAAG;QACH,EAAE,GAAG,IAAI,aAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IACS,SAAS,CAAC,OAAO;QAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAC9C;YACI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAChD;gBACI,OAAO,IAAI,CAAC;aACf;SACJ;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAChD;YACI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAClD;gBACI,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACS,UAAU,CAAC,UAAgB,EAAE,UAAgB,EAAE,eAAyB;QAE9E,OAAO;QACP,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC;eACjC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EACzC;YACI,OAAM;SACT;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAC,MAAM;SACtC;YACI,IAAI,OAAO,GAAG,IAAI,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACxD,IAAI,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACxD,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC/B;IACL,CAAC;CACJ;AAnHD,sBAmHC"}
@@ -1,308 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"BehaviorAI.js","sourceRoot":"","sources":["../../Framework/AI/BehaviorAI.ts"],"names":[],"mappings":"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"}