cgserver 5.5.5 → 6.0.2

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/{lib/Framework → dist/types}/AI/AiObject.d.ts +0 -0
  3. package/{lib/Framework → dist/types}/AI/Astar.d.ts +0 -0
  4. package/{lib/Framework → dist/types}/AI/BehaviorAI.d.ts +0 -0
  5. package/{lib/Framework → dist/types}/AI/Entity.d.ts +0 -0
  6. package/{lib/Framework → dist/types}/AI/Point.d.ts +0 -0
  7. package/{lib/Framework → dist/types}/AI/TriggerMgr.d.ts +0 -0
  8. package/{lib/Framework → dist/types}/Config/Config.d.ts +0 -0
  9. package/{lib/Framework → dist/types}/Config/FrameworkConfig.d.ts +0 -0
  10. package/{lib/Framework → dist/types}/Config/ServerConfig.d.ts +0 -0
  11. package/{lib/Framework → dist/types}/Config/_error_.d.ts +0 -0
  12. package/{lib/Framework → dist/types}/Core/Core.d.ts +0 -0
  13. package/{lib/Framework → dist/types}/Core/Timer.d.ts +0 -0
  14. package/{lib/Framework → dist/types}/Database/BaseMongoService.d.ts +0 -0
  15. package/{lib/Framework → dist/types}/Database/BaseService.d.ts +0 -0
  16. package/{lib/Framework → dist/types}/Database/Decorator/AutoIncrement.d.ts +0 -0
  17. package/{lib/Framework → dist/types}/Database/Decorator/DBCache.d.ts +0 -0
  18. package/{lib/Framework → dist/types}/Database/Decorator/NotNull.d.ts +0 -0
  19. package/{lib/Framework → dist/types}/Database/Decorator/PrimaryKey.d.ts +0 -0
  20. package/{lib/Framework → dist/types}/Database/Decorator/Property.d.ts +0 -0
  21. package/{lib/Framework → dist/types}/Database/Decorator/Table.d.ts +0 -0
  22. package/{lib/Framework → dist/types}/Database/Decorator/Type.d.ts +0 -0
  23. package/{lib/Framework → dist/types}/Database/MSSqlManager.d.ts +0 -0
  24. package/{lib/Framework → dist/types}/Database/MongoManager.d.ts +0 -0
  25. package/{lib/Framework → dist/types}/Database/MysqlManager.d.ts +0 -0
  26. package/{lib/Framework → dist/types}/Database/RedisManager.d.ts +0 -0
  27. package/dist/types/Index.d.ts +65 -0
  28. package/{lib/Framework → dist/types}/Logic/CacheTool.d.ts +0 -0
  29. package/{lib/Framework → dist/types}/Logic/HttpTool.d.ts +0 -0
  30. package/{lib/Framework → dist/types}/Logic/Log.d.ts +0 -0
  31. package/{lib/Framework → dist/types}/Service/AccountService.d.ts +0 -0
  32. package/{lib/Framework → dist/types}/Service/MongoAccountService.d.ts +0 -0
  33. package/{lib/Framework → dist/types}/Service/MongoCacheService.d.ts +0 -0
  34. package/{lib/Framework → dist/types}/Service/MongoUserService.d.ts +0 -0
  35. package/{lib/Framework → dist/types}/Service/UserService.d.ts +0 -0
  36. package/{lib/Framework → dist/types}/Service/ini.d.ts +0 -0
  37. package/{lib/Framework → dist/types}/SocketServer/IClientWebSocket.d.ts +0 -0
  38. package/{lib/Framework → dist/types}/SocketServer/IServerWebSocket.d.ts +0 -0
  39. package/{lib/Framework → dist/types}/SocketServer/ISocketServer.d.ts +0 -0
  40. package/{lib/Framework → dist/types}/SocketServer/IWebSocket.d.ts +0 -0
  41. package/{lib/Framework → dist/types}/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +0 -0
  42. package/{lib/Framework → dist/types}/SocketServer/ProtoFilter/IProtoFilter.d.ts +0 -0
  43. package/{lib/Framework → dist/types}/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +0 -0
  44. package/{lib/Framework → dist/types}/SocketServer/ProtoFilter/ProtoFactory.d.ts +0 -0
  45. package/{lib/Framework → dist/types}/ThirdParty/AlipayTool.d.ts +0 -0
  46. package/{lib/Framework → dist/types}/ThirdParty/Alisms.d.ts +0 -0
  47. package/{lib/Framework → dist/types}/ThirdParty/AppleTool.d.ts +0 -0
  48. package/{lib/Framework → dist/types}/ThirdParty/EmailTool.d.ts +0 -0
  49. package/{lib/Framework → dist/types}/ThirdParty/OpenSocial.d.ts +0 -0
  50. package/{lib/Framework → dist/types}/ThirdParty/QQTool.d.ts +0 -0
  51. package/{lib/Framework → dist/types}/ThirdParty/QiniuTool.d.ts +0 -0
  52. package/{lib/Framework → dist/types}/ThirdParty/WechatOATool.d.ts +0 -0
  53. package/{lib/Framework → dist/types}/ThirdParty/WechatTool.d.ts +0 -0
  54. package/{lib/Framework → dist/types}/WebServer/Controller/BaseController.d.ts +0 -0
  55. package/{lib/Framework → dist/types}/WebServer/Controller/BaseUserController.d.ts +0 -0
  56. package/{lib/Framework → dist/types}/WebServer/Controller/MongoBaseUserController.d.ts +0 -0
  57. package/{lib/Framework → dist/types}/WebServer/Decorator/AdminValidate.d.ts +0 -0
  58. package/{lib/Framework → dist/types}/WebServer/Decorator/AuthorityValidate.d.ts +0 -0
  59. package/{lib/Framework → dist/types}/WebServer/Decorator/CreatorValidate.d.ts +0 -0
  60. package/{lib/Framework → dist/types}/WebServer/Decorator/JsonAdminValidate.d.ts +0 -0
  61. package/{lib/Framework → dist/types}/WebServer/Decorator/JsonAuthorityValidate.d.ts +0 -0
  62. package/{lib/Framework → dist/types}/WebServer/Decorator/JsonCreatorValidate.d.ts +0 -0
  63. package/{lib/Framework → dist/types}/WebServer/Engine/ControllerManager.d.ts +0 -0
  64. package/{lib/Framework → dist/types}/WebServer/Engine/Engine.d.ts +0 -0
  65. package/{lib/Framework → dist/types}/WebServer/Engine/RazorJs.d.ts +0 -0
  66. package/{lib/Framework → dist/types}/WebServer/Engine/Request.d.ts +0 -0
  67. package/{lib/Framework → dist/types}/WebServer/Engine/Response.d.ts +0 -0
  68. package/{lib/Framework → dist/types}/WebServer/IWebServer.d.ts +0 -0
  69. package/package.json +8 -4
  70. package/lib/Framework/AI/AiObject.js +0 -11
  71. package/lib/Framework/AI/AiObject.js.map +0 -1
  72. package/lib/Framework/AI/Astar.js +0 -134
  73. package/lib/Framework/AI/Astar.js.map +0 -1
  74. package/lib/Framework/AI/BehaviorAI.js +0 -308
  75. package/lib/Framework/AI/BehaviorAI.js.map +0 -1
  76. package/lib/Framework/AI/Entity.js +0 -34
  77. package/lib/Framework/AI/Entity.js.map +0 -1
  78. package/lib/Framework/AI/Point.js +0 -69
  79. package/lib/Framework/AI/Point.js.map +0 -1
  80. package/lib/Framework/AI/TriggerMgr.js +0 -202
  81. package/lib/Framework/AI/TriggerMgr.js.map +0 -1
  82. package/lib/Framework/Config/Config.js +0 -38
  83. package/lib/Framework/Config/Config.js.map +0 -1
  84. package/lib/Framework/Config/FrameworkConfig.js +0 -235
  85. package/lib/Framework/Config/FrameworkConfig.js.map +0 -1
  86. package/lib/Framework/Config/ServerConfig.js +0 -19
  87. package/lib/Framework/Config/ServerConfig.js.map +0 -1
  88. package/lib/Framework/Config/_error_.js +0 -36
  89. package/lib/Framework/Config/_error_.js.map +0 -1
  90. package/lib/Framework/Core/Core.js +0 -562
  91. package/lib/Framework/Core/Core.js.map +0 -1
  92. package/lib/Framework/Core/Timer.js +0 -117
  93. package/lib/Framework/Core/Timer.js.map +0 -1
  94. package/lib/Framework/Database/BaseMongoService.js +0 -80
  95. package/lib/Framework/Database/BaseMongoService.js.map +0 -1
  96. package/lib/Framework/Database/BaseService.js +0 -282
  97. package/lib/Framework/Database/BaseService.js.map +0 -1
  98. package/lib/Framework/Database/Decorator/AutoIncrement.js +0 -12
  99. package/lib/Framework/Database/Decorator/AutoIncrement.js.map +0 -1
  100. package/lib/Framework/Database/Decorator/DBCache.js +0 -65
  101. package/lib/Framework/Database/Decorator/DBCache.js.map +0 -1
  102. package/lib/Framework/Database/Decorator/NotNull.js +0 -12
  103. package/lib/Framework/Database/Decorator/NotNull.js.map +0 -1
  104. package/lib/Framework/Database/Decorator/PrimaryKey.js +0 -12
  105. package/lib/Framework/Database/Decorator/PrimaryKey.js.map +0 -1
  106. package/lib/Framework/Database/Decorator/Property.js +0 -62
  107. package/lib/Framework/Database/Decorator/Property.js.map +0 -1
  108. package/lib/Framework/Database/Decorator/Table.js +0 -16
  109. package/lib/Framework/Database/Decorator/Table.js.map +0 -1
  110. package/lib/Framework/Database/Decorator/Type.js +0 -21
  111. package/lib/Framework/Database/Decorator/Type.js.map +0 -1
  112. package/lib/Framework/Database/MSSqlManager.js +0 -44
  113. package/lib/Framework/Database/MSSqlManager.js.map +0 -1
  114. package/lib/Framework/Database/MongoManager.js +0 -402
  115. package/lib/Framework/Database/MongoManager.js.map +0 -1
  116. package/lib/Framework/Database/MysqlManager.js +0 -181
  117. package/lib/Framework/Database/MysqlManager.js.map +0 -1
  118. package/lib/Framework/Database/RedisManager.js +0 -409
  119. package/lib/Framework/Database/RedisManager.js.map +0 -1
  120. package/lib/Framework/Logic/CacheTool.js +0 -74
  121. package/lib/Framework/Logic/CacheTool.js.map +0 -1
  122. package/lib/Framework/Logic/HttpTool.js +0 -59
  123. package/lib/Framework/Logic/HttpTool.js.map +0 -1
  124. package/lib/Framework/Logic/Log.js +0 -78
  125. package/lib/Framework/Logic/Log.js.map +0 -1
  126. package/lib/Framework/Service/AccountService.js +0 -474
  127. package/lib/Framework/Service/AccountService.js.map +0 -1
  128. package/lib/Framework/Service/MongoAccountService.js +0 -397
  129. package/lib/Framework/Service/MongoAccountService.js.map +0 -1
  130. package/lib/Framework/Service/MongoCacheService.js +0 -28
  131. package/lib/Framework/Service/MongoCacheService.js.map +0 -1
  132. package/lib/Framework/Service/MongoUserService.js +0 -94
  133. package/lib/Framework/Service/MongoUserService.js.map +0 -1
  134. package/lib/Framework/Service/UserService.js +0 -185
  135. package/lib/Framework/Service/UserService.js.map +0 -1
  136. package/lib/Framework/Service/ini.js +0 -36
  137. package/lib/Framework/Service/ini.js.map +0 -1
  138. package/lib/Framework/SocketServer/IClientWebSocket.js +0 -72
  139. package/lib/Framework/SocketServer/IClientWebSocket.js.map +0 -1
  140. package/lib/Framework/SocketServer/IServerWebSocket.js +0 -42
  141. package/lib/Framework/SocketServer/IServerWebSocket.js.map +0 -1
  142. package/lib/Framework/SocketServer/ISocketServer.js +0 -191
  143. package/lib/Framework/SocketServer/ISocketServer.js.map +0 -1
  144. package/lib/Framework/SocketServer/IWebSocket.js +0 -224
  145. package/lib/Framework/SocketServer/IWebSocket.js.map +0 -1
  146. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +0 -58
  147. package/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js.map +0 -1
  148. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +0 -9
  149. package/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js.map +0 -1
  150. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +0 -30
  151. package/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js.map +0 -1
  152. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +0 -32
  153. package/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js.map +0 -1
  154. package/lib/Framework/ThirdParty/AlipayTool.js +0 -123
  155. package/lib/Framework/ThirdParty/AlipayTool.js.map +0 -1
  156. package/lib/Framework/ThirdParty/Alisms.js +0 -47
  157. package/lib/Framework/ThirdParty/Alisms.js.map +0 -1
  158. package/lib/Framework/ThirdParty/AppleTool.js +0 -235
  159. package/lib/Framework/ThirdParty/AppleTool.js.map +0 -1
  160. package/lib/Framework/ThirdParty/EmailTool.js +0 -34
  161. package/lib/Framework/ThirdParty/EmailTool.js.map +0 -1
  162. package/lib/Framework/ThirdParty/OpenSocial.js +0 -33
  163. package/lib/Framework/ThirdParty/OpenSocial.js.map +0 -1
  164. package/lib/Framework/ThirdParty/QQTool.js +0 -116
  165. package/lib/Framework/ThirdParty/QQTool.js.map +0 -1
  166. package/lib/Framework/ThirdParty/QiniuTool.js +0 -22
  167. package/lib/Framework/ThirdParty/QiniuTool.js.map +0 -1
  168. package/lib/Framework/ThirdParty/WechatOATool.js +0 -62
  169. package/lib/Framework/ThirdParty/WechatOATool.js.map +0 -1
  170. package/lib/Framework/ThirdParty/WechatTool.js +0 -75
  171. package/lib/Framework/ThirdParty/WechatTool.js.map +0 -1
  172. package/lib/Framework/WebServer/Controller/BaseController.js +0 -113
  173. package/lib/Framework/WebServer/Controller/BaseController.js.map +0 -1
  174. package/lib/Framework/WebServer/Controller/BaseUserController.js +0 -169
  175. package/lib/Framework/WebServer/Controller/BaseUserController.js.map +0 -1
  176. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js +0 -169
  177. package/lib/Framework/WebServer/Controller/MongoBaseUserController.js.map +0 -1
  178. package/lib/Framework/WebServer/Decorator/AdminValidate.js +0 -20
  179. package/lib/Framework/WebServer/Decorator/AdminValidate.js.map +0 -1
  180. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js +0 -23
  181. package/lib/Framework/WebServer/Decorator/AuthorityValidate.js.map +0 -1
  182. package/lib/Framework/WebServer/Decorator/CreatorValidate.js +0 -20
  183. package/lib/Framework/WebServer/Decorator/CreatorValidate.js.map +0 -1
  184. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js +0 -16
  185. package/lib/Framework/WebServer/Decorator/JsonAdminValidate.js.map +0 -1
  186. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js +0 -21
  187. package/lib/Framework/WebServer/Decorator/JsonAuthorityValidate.js.map +0 -1
  188. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js +0 -20
  189. package/lib/Framework/WebServer/Decorator/JsonCreatorValidate.js.map +0 -1
  190. package/lib/Framework/WebServer/Engine/ControllerManager.js +0 -113
  191. package/lib/Framework/WebServer/Engine/ControllerManager.js.map +0 -1
  192. package/lib/Framework/WebServer/Engine/Engine.js +0 -136
  193. package/lib/Framework/WebServer/Engine/Engine.js.map +0 -1
  194. package/lib/Framework/WebServer/Engine/RazorJs.js +0 -545
  195. package/lib/Framework/WebServer/Engine/RazorJs.js.map +0 -1
  196. package/lib/Framework/WebServer/Engine/Request.js +0 -215
  197. package/lib/Framework/WebServer/Engine/Request.js.map +0 -1
  198. package/lib/Framework/WebServer/Engine/Response.js +0 -95
  199. package/lib/Framework/WebServer/Engine/Response.js.map +0 -1
  200. package/lib/Framework/WebServer/IWebServer.js +0 -50
  201. package/lib/Framework/WebServer/IWebServer.js.map +0 -1
  202. package/lib/index.d.ts +0 -4
  203. package/lib/index.js +0 -8
  204. package/lib/index.js.map +0 -1
  205. package/tsconfig.json +0 -24
@@ -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":";;;AAAA,wCAAsC;AACtC,yCAAsC;AACtC,gCAAgC;AAEhC,6CAA0D;AAG1D,MAAa,UAAU;IAET,IAAI,CAAK;IACT,WAAW,CAAO;IAClB,SAAS,CAAO;IAChB,cAAc,CAAK;IACnB,iBAAiB,CAAI;IACrB,sBAAsB,GAAS,EAAE,CAAA;IACjC,cAAc,CAAO;IACrB,UAAU,CAAK;IACzB,YAAY,aAAa,EAAE,GAAG,EAAE,UAAU;QAEtC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;QAEnC,IAAI,WAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAC5B;YACI,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;SAChC;aACI,IAAI,UAAU,EACnB;YACI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;SACnC;aAED;YACI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;SACxB;QAED,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,IAAI,GAAG,wBAAW,CAAC,wBAAwB,CAAC,2BAAc,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAChI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,2BAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,SAAS;IACT,KAAK;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EACxB;YACI,UAAI,CAAC,IAAI,CAAC,oEAAoE,EAAC,IAAI,CAAC,CAAC;YACrF,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,SAAS;IACT,GAAG;QAEC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAC/D;YACI,wBAAW,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3F;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IACD,KAAK;IACL,YAAY;IACZ,MAAM,CAAC,EAAE;QAEL,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAClC;YACI,OAAM;SACT;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,EACnD;YACI,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;YACpC,qBAAqB;YACrB,IAAI,OAAO,CAAC,UAAU,IAAI,gBAAgB,EAC1C;gBACI,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;gBACzC,IAAI,UAAU,EACd;oBACI,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;oBAC9B,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;oBAClC,IAAI,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAC,QAAQ;qBACpD;wBACI,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA;wBACnD,EAAE,CAAC,CAAA;wBACH,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;wBACvF,IAAI,WAAW,EACf;4BACI,OAAM,CAAA,wCAAwC;yBACjD;qBACJ;iBACJ;aACJ;iBACI,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,EACrC;gBACI,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA;gBACnD,EAAE,CAAC,CAAC;gBACJ,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;gBACxF,IAAI,WAAW,EACf;oBACI,OAAO,CAAA,wCAAwC;iBAClD;aACJ;iBACI,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,EACrC;gBACI,IAAI,IAAI,CAAC,UAAU,EACnB;oBACI,IAAI,MAAM,GAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC3C,IAAI,IAAI,GAAS,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC/C,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA,UAAU;oBACnD,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC5B,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC5B,IAAI,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,GAAG,IAAI,EAAE,EAAC,QAAQ;qBACtD;wBACI,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA;wBACnD,EAAE,CAAC,CAAC;wBACJ,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;wBACxF,IAAI,WAAW,EACf;4BACI,OAAO,CAAA,wCAAwC;yBAClD;qBACJ;iBACJ;qBAED;oBACI,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA;oBACnD,EAAE,CAAC,CAAC;oBACJ,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC9F,IAAI,WAAW,EACf;wBACI,OAAO,CAAA,wCAAwC;qBAClD;iBACJ;aACJ;iBACI,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS,EACxC;gBACI,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;gBACnB,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,EACrB;oBACI,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA;oBACnD,EAAE,CAAC,CAAC;oBACJ,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;oBACxF,IAAI,WAAW,EACf;wBACI,OAAO,CAAA,wCAAwC;qBAClD;iBACJ;aACJ;SACJ;IACL,CAAC;IACD,QAAQ;IACR,IAAI,CAAC,aAAa;QAEd,mDAAmD;QACnD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,aAAa,EACpE;YACI,OAAM,CAAA,UAAU;SACnB;QACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAEtE,MAAM;QACN,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAClC;YACI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;SACzD;QACD,MAAM;QACN,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,EACrC;YACI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;SAC5D;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EACpC;YACI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,EACrD;gBACI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC7G;iBAED;gBACI,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE;oBAEtG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;gBACpE,CAAC,CAAC,CAAC;aACN;SACJ;aAED;YACI,UAAI,CAAC,IAAI,CAAC,+CAA+C,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC;SACxG;IACL,CAAC;IACD,2BAA2B;IAC3B,gBAAgB,CAAC,UAAU;QAEvB,IAAI,CAAC,UAAU,EACf;YACI,OAAO;SACV;QACD,KAAK,IAAI,GAAG,IAAI,UAAU,EAC1B;YACI,QAAQ,GAAG,EACX;gBACI,KAAK,gBAAgB;oBACjB;wBACI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;qBACjD;oBACD,MAAM;gBACV,KAAK,SAAS;oBACV;wBACI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC7E;oBACD,MAAM;gBACV,KAAK,MAAM;oBACP;wBACI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA,YAAY;qBAC7D;oBACD,MAAM;gBACV,KAAK,MAAM;oBACP;wBACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAClF,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC1C,IAAI,UAAU,EACd;4BACI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,IAAI;gCAChC,UAAI,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;4BAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;yBACvC;qBACJ;oBACD,MAAM;gBACV;oBACI,MAAM;aACb;SACJ;IACL,CAAC;IACD,MAAM;IACN,SAAS,CAAC,MAAM,EAAE,OAAa,KAAK;QAEhC,IAAI,CAAC,MAAM,EACX;YACI,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,EACzB;YACI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,IAAI,GAAG,IAAI,MAAM,EACtB;YACI,QAAQ,GAAG,EACX;gBACI,KAAK,MAAM;oBACP;wBACI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBACvB,WAAW,GAAG,IAAI,CAAC;qBACtB;oBACD,MAAM;gBACV,KAAK,UAAU;oBACX;wBACI,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAC7B;4BACI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;yBAC/B;qBACJ;oBACD,MAAM;gBACV,KAAK,QAAQ;oBACT;wBACI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,EAC/C;4BACI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAC7C;qBACJ;oBACD,MAAM;gBACV,KAAK,MAAM;oBACP;wBACI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EACjD;4BACI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;yBAClD;qBACJ;oBACD,MAAM;gBACV,KAAK,QAAQ;oBACT;wBACI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAA,KAAK;wBAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;wBACb,IAAI,IAAI,GAAG,KAAK,CAAC;wBACjB,WAAW;wBACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAChE;4BACI,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC5B,IAAI,CAAC,IAAI,IAAI,EACb;gCACI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gCACpD,IAAI,GAAG,IAAI,CAAC;gCACZ,MAAM;6BACT;yBACJ;wBACD,wBAAwB;wBACxB,IAAI,CAAC,IAAI,EACT;4BACI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;yBAC5E;qBACJ;gBACL;oBACI,MAAM;aACb;SACJ;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAID,QAAQ;IACR,YAAY,CAAC,MAAM;QAEf,IAAI,CAAC,MAAM,EACX;YACI,OAAM;SACT;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,IAAI,EACvC;YACI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAChB,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,OAAM;SACT;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EACjE;YACI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,IAAI,EACjD;gBACI,IAAI,CAAC,WAAW,GAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA;gBAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,IAAI,EAC7C;oBACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;iBACzB;gBACD,OAAM;aACT;SACJ;QAED,OAAM;IACV,CAAC;IACD,aAAa;IACb,iBAAiB;QAEb,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACxC,IAAI,SAAS,IAAI,CAAC,EAClB;YACI,OAAO,IAAI,CAAA;SACd;QAED,IAAI,MAAM,GAAS,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QAE1C,IAAI,SAAS,IAAI,CAAC,EAClB;YACI,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAA;SAC3G;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAClC;YACI,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAA;YAChE,IAAI,MAAM,GAAG,GAAG,EAChB;gBACI,MAAM,GAAG,GAAG,CAAA;gBACZ,QAAQ,GAAG,CAAC,CAAA;aACf;SACJ;QACD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IACnE,CAAC;IACD,UAAU;IACV,SAAS,CAAC,MAAM;QAEZ,IAAI,CAAC,MAAM,EACX;YACI,OAAM;SACT;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IACD,UAAU;QAEN,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;CACJ;AAtXD,gCAsXC"}
@@ -1,34 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,69 +0,0 @@
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;
69
- //# sourceMappingURL=Point.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Point.js","sourceRoot":"","sources":["../../../Framework/AI/Point.ts"],"names":[],"mappings":"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"}
@@ -1,202 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GTriggerMgr = exports.Trigger = exports.EConditionType = exports.ETriggerType = void 0;
4
- const Log_1 = require("./../Logic/Log");
5
- const Core_1 = require("../Core/Core");
6
- var ETriggerType;
7
- (function (ETriggerType) {
8
- ETriggerType[ETriggerType["Region"] = 0] = "Region";
9
- ETriggerType[ETriggerType["Condition"] = 1] = "Condition";
10
- })(ETriggerType = exports.ETriggerType || (exports.ETriggerType = {}));
11
- var EConditionType;
12
- (function (EConditionType) {
13
- EConditionType[EConditionType["Die"] = 0] = "Die";
14
- EConditionType[EConditionType["Hit"] = 1] = "Hit";
15
- EConditionType[EConditionType["HP"] = 2] = "HP";
16
- EConditionType[EConditionType["MP"] = 3] = "MP";
17
- })(EConditionType = exports.EConditionType || (exports.EConditionType = {}));
18
- class Trigger {
19
- region = null;
20
- }
21
- exports.Trigger = Trigger;
22
- let _GTriggerCode = 0;
23
- exports.GTriggerMgr = null;
24
- class TriggerManager {
25
- _regionTriggers = null;
26
- _conditionTriggers = {};
27
- //触发器的单个个体必须包含x,y,width,height,其他参数为各自需要添加
28
- init() {
29
- this.clearAll();
30
- }
31
- clearAll() {
32
- this.clearRegionTrigger();
33
- this.clearConditionTrigger();
34
- }
35
- clear(triggertype) {
36
- if (triggertype === undefined) {
37
- this.clearAll();
38
- }
39
- else if (triggertype == ETriggerType.Region) {
40
- this.clearRegionTrigger();
41
- }
42
- else {
43
- this.clearConditionTrigger();
44
- }
45
- }
46
- ////////////////////////////////////////////区域触发器//////////////////////////////////////////////////////
47
- //objs 需要检查的对象,regions触发起区域,callBackObj回调的对象
48
- initRegionTrigger(objs, triggers, callBackObj) {
49
- this.clearRegionTrigger();
50
- if (!triggers || triggers.length <= 0) {
51
- return;
52
- }
53
- for (let i = 0, length = triggers.length; i < length; ++i) {
54
- this._regionTriggers.triggerInfos[i] = { trigger: triggers[i] };
55
- }
56
- if (Core_1.core.isArray(objs)) {
57
- for (let i = 0, length = objs.length; i < length; ++i) {
58
- this._regionTriggers.objInfos[i] = { obj: objs[i], prePos: null };
59
- }
60
- }
61
- else {
62
- this._regionTriggers.objInfos[0] = { obj: objs, prePos: null };
63
- }
64
- if (typeof callBackObj !== "undefined") {
65
- this._regionTriggers.aiObj = callBackObj;
66
- }
67
- this._checkRegion(); //初始化check
68
- }
69
- clearRegionTrigger() {
70
- this._regionTriggers = { triggerInfos: [], objInfos: [], aiObj: null };
71
- }
72
- addObjToRegionTrigger(obj) {
73
- this._regionTriggers.objInfos[this._regionTriggers.objInfos.length] = { obj: obj, prePos: null };
74
- }
75
- removeObjInRegionTrigger(obj) {
76
- for (let i = 0; i < this._regionTriggers.objInfos.length; ++i) {
77
- let o = this._regionTriggers.objInfos[i].obj;
78
- if (o === obj) {
79
- this._regionTriggers.objInfos = this._regionTriggers.objInfos.splice(i, 1);
80
- return;
81
- }
82
- }
83
- }
84
- //是否在触发器内
85
- _isInTrigger(pos, region) {
86
- if (!pos || typeof region === "undefined") {
87
- return false;
88
- }
89
- Log_1.GLog.info("pos.x" + pos.x + " pos.y=" + pos.y);
90
- Log_1.GLog.info("region.x" + region.x + " region.y=" + region.y);
91
- if (pos.x < (region.x - region.width / 2)) {
92
- return false;
93
- }
94
- if (pos.x > (region.x + region.width / 2)) {
95
- return false;
96
- }
97
- if (pos.y < (region.y - region.height / 2)) {
98
- return false;
99
- }
100
- if (pos.y > (region.y + region.height / 2)) {
101
- return false;
102
- }
103
- return true;
104
- }
105
- //外部需要调用改接口
106
- check() {
107
- this._checkRegion();
108
- }
109
- _checkRegion() {
110
- for (let i = 0, length = this._regionTriggers.objInfos.length; i < length; ++i) {
111
- let info = this._regionTriggers.objInfos[i];
112
- if (!info) {
113
- continue;
114
- }
115
- let obj = info.obj;
116
- if (!obj) {
117
- this.removeObjInRegionTrigger(obj); //改对象已经无效
118
- continue;
119
- }
120
- let pos = obj.cellPos;
121
- if (!info.prePos) {
122
- info.prePos = pos;
123
- for (let i = 0, length = this._regionTriggers.triggerInfos.length; i < length; ++i) {
124
- let triggerInfo = this._regionTriggers.triggerInfos[i];
125
- if (this._isInTrigger(pos, triggerInfo.trigger.region)) {
126
- //原本在外面或首次检测,触发进入事件
127
- if (triggerInfo[obj.id] && triggerInfo[obj.id] == -1) {
128
- this._triggerIn(obj, triggerInfo.trigger);
129
- triggerInfo[obj.id] = 1;
130
- }
131
- }
132
- else {
133
- //原本在里面或者首次检测,现在不在了,触发走出触发器事件
134
- if (triggerInfo[obj.id] && triggerInfo[obj.id] == 1) {
135
- this._triggerOut(obj, triggerInfo.trigger);
136
- }
137
- triggerInfo[obj.id] = -1;
138
- }
139
- }
140
- }
141
- }
142
- }
143
- //从外面进入时触发
144
- _triggerIn(obj, trigger) {
145
- if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerIn) {
146
- return;
147
- }
148
- Log_1.GLog.info("some one triggered in");
149
- this._regionTriggers.aiObj.onTriggerIn(obj, trigger);
150
- }
151
- //从里面走出去的时候触发
152
- _triggerOut(obj, trigger) {
153
- if (!this._regionTriggers.aiObj || !this._regionTriggers.aiObj.onTriggerOut) {
154
- return;
155
- }
156
- Log_1.GLog.info("some one triggered out");
157
- this._regionTriggers.aiObj.onTriggerOut(obj, trigger);
158
- }
159
- //////////////////////////////////////条件触发器//////////////////////////////////////////////////
160
- initConditionTrigger() {
161
- this._conditionTriggers = {};
162
- for (let conditiontype in EConditionType) {
163
- this._conditionTriggers[conditiontype] = {};
164
- }
165
- }
166
- clearConditionTrigger() {
167
- this._conditionTriggers = [];
168
- for (let conditiontype in EConditionType) {
169
- this._conditionTriggers[EConditionType[conditiontype]] = {};
170
- }
171
- }
172
- triggerCondition(conditiontype, params, conditions) {
173
- params = params || {};
174
- conditions = conditions || {};
175
- for (let code in this._conditionTriggers[conditiontype]) {
176
- let info = this._conditionTriggers[conditiontype][code];
177
- for (let key in info.conditions) {
178
- if (info.conditions[key] !== conditions[key]) {
179
- return false;
180
- }
181
- }
182
- info.callback(params);
183
- }
184
- return true;
185
- }
186
- addConditionTriggerEvent(conditiontype, callback, conditions) {
187
- conditions = conditions || {};
188
- _GTriggerCode += 1;
189
- this._conditionTriggers[conditiontype][_GTriggerCode] = { callback: callback, conditions: conditions };
190
- return { type: conditiontype, code: _GTriggerCode };
191
- }
192
- removeConditionTriggerEvent(conditiontype, code) {
193
- if (code === undefined) {
194
- this._conditionTriggers[conditiontype] = {};
195
- }
196
- else {
197
- delete this._conditionTriggers[conditiontype][code];
198
- }
199
- }
200
- }
201
- exports.GTriggerMgr = new TriggerManager();
202
- //# sourceMappingURL=TriggerMgr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TriggerMgr.js","sourceRoot":"","sources":["../../../Framework/AI/TriggerMgr.ts"],"names":[],"mappings":"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"}