Guest User

Untitled

a guest
Aug 29th, 2016
85
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Infected Hound Agent">*/
  2. /*%FSM<HEAD>*/
  3. /*
  4. item0[] = {"init",0,250,-1525.000000,-75.000000,-1425.000000,-25.000000,0.000000,"init"};
  5. item1[] = {"End",1,250,-1200.000000,175.000000,-1100.000000,225.000000,0.000000,"End"};
  6. item2[] = {"Not_Alive",4,218,-1400.000000,175.000000,-1300.000000,225.000000,5.000000,"Not" \n "Alive"};
  7. item3[] = {"true",8,218,-1525.000000,0.000000,-1425.000000,50.000000,0.000000,"true"};
  8. item4[] = {"Begin",2,250,-1525.000000,75.000000,-1425.000000,125.000000,0.000000,"Begin"};
  9. item5[] = {"is_Dedicated",4,218,-1200.000000,-75.000000,-1100.000000,-25.000000,5.000000,"is" \n "Dedicated"};
  10. item6[] = {"Chase_Distance",4,218,-1525.000000,300.000000,-1425.000000,350.000000,1.000000,"Chase" \n "Distance"};
  11. item7[] = {"Attack_Distance",4,218,-1400.000000,325.000000,-1300.000000,375.000000,1.000000,"Attack" \n "Distance"};
  12. item8[] = {"Chase",2,250,-1525.000000,375.000000,-1425.000000,425.000000,0.000000,"Chase"};
  13. item9[] = {"Attack",2,250,-1075.000000,425.000000,-975.000000,475.000000,0.000000,"Attack"};
  14. item10[] = {"Waiting",2,250,-1525.000000,225.000000,-1425.000000,275.000000,0.000000,"Waiting"};
  15. item11[] = {"Has_Target",4,218,-1525.000000,150.000000,-1425.000000,200.000000,1.000000,"Has" \n "Target"};
  16. item12[] = {"",7,210,-1603.999512,546.000000,-1596.000366,554.000000,0.000000,""};
  17. item13[] = {"",7,210,-1603.999756,246.000000,-1596.000122,253.999985,0.000000,""};
  18. item14[] = {"reorientate",4,218,-1525.000000,450.000000,-1425.000000,500.000000,1.000000,"reorientate"};
  19. item15[] = {"Target_Dead",4,218,-1400.000000,225.000000,-1300.000000,275.000000,5.000000,"Target" \n "Dead"};
  20. item16[] = {"Attack_Finished",4,218,-1275.000000,525.000000,-1175.000000,575.000000,5.000000,"Attack" \n "Finished"};
  21. item17[] = {"",7,210,-1153.999634,246.000000,-1146.000244,253.999985,0.000000,""};
  22. item18[] = {"Too_Far_Away",4,218,-1400.000000,275.000000,-1300.000000,325.000000,5.000000,"Too Far" \n "Away"};
  23. item19[] = {"Infected_Hound_A",-1,250,-1675.000000,-200.000000,-1375.000000,-150.000000,0.000000,"Infected Hound Agent"};
  24. item20[] = {"Created_By_Death",-1,250,-1675.000000,-150.000000,-1375.000000,-100.000000,0.000000,"Created By Deathlyrage"};
  25. item21[] = {"neJiv",4,218,-1175.000000,275.000000,-1075.000000,325.000000,0.000000,"neJiv"};
  26. item22[] = {"jiv",4,218,-1175.000000,350.000000,-1075.000000,400.000000,0.000000,"jiv"};
  27. item23[] = {"buffer",3,250,-1275.000000,325.000000,-1200.000000,350.000000,0.000000,"buffer"};
  28. version=1;
  29. class LayoutItems
  30. {
  31. class Item19
  32. {
  33. class ItemInfo
  34. {
  35. FontFace="Arial";
  36. FontHeight=19;
  37. FontWeight=700;
  38. lStyle=1;
  39. lColor=-1;
  40. };
  41. };
  42. class Item20
  43. {
  44. class ItemInfo
  45. {
  46. FontFace="Arial";
  47. FontHeight=19;
  48. FontWeight=700;
  49. lStyle=1;
  50. lColor=-1;
  51. };
  52. };
  53. };
  54. link0[] = {0,3};
  55. link1[] = {0,5};
  56. link2[] = {2,17};
  57. link3[] = {3,4};
  58. link4[] = {4,11};
  59. link5[] = {5,1};
  60. link6[] = {6,8};
  61. link7[] = {7,23};
  62. link8[] = {8,2};
  63. link9[] = {8,7};
  64. link10[] = {8,14};
  65. link11[] = {8,15};
  66. link12[] = {8,18};
  67. link13[] = {9,16};
  68. link14[] = {10,2};
  69. link15[] = {10,6};
  70. link16[] = {10,7};
  71. link17[] = {10,15};
  72. link18[] = {10,18};
  73. link19[] = {11,10};
  74. link20[] = {12,13};
  75. link21[] = {13,10};
  76. link22[] = {14,8};
  77. link23[] = {15,17};
  78. link24[] = {16,12};
  79. link25[] = {17,1};
  80. link26[] = {18,17};
  81. link27[] = {21,17};
  82. link28[] = {22,9};
  83. link29[] = {23,21};
  84. link30[] = {23,22};
  85. globals[] = {25.000000,1,0,0,0,640,480,1,620,6316128,1,-1695.186157,-988.536377,500.331390,-351.382599,492,593,1};
  86. window[] = {0,-1,-1,-1,-1,838,100,1124,100,1,510};
  87. *//*%FSM</HEAD>*/
  88. class FSM
  89. {
  90. fsmName = "Infected Hound Agent";
  91. class States
  92. {
  93. /*%FSM<STATE "init">*/
  94. class init
  95. {
  96. name = "init";
  97. init = /*%FSM<STATEINIT""">*/"_mutant = _this select 0;" \n
  98. "_type = _this select 1;" \n
  99. "_standing = true;" \n
  100. "_command = ""none"";" \n
  101. "_forceWalk = false;" \n
  102. "_maxSpeed = 2;" \n
  103. "_maxSpeedInit = _maxSpeed;" \n
  104. "_forceChange = false;" \n
  105. "" \n
  106. "_target = objNull;" \n
  107. "_attackTarget = objNull;" \n
  108. "_target setVariable ['forceWalk',false];" \n
  109. "_pos = position _mutant;" \n
  110. "_lastPos = _pos;" \n
  111. "_move = """";" \n
  112. "_movePos = [];" \n
  113. "" \n
  114. "_idleTime = 5;" \n
  115. "_coolDown = 0;" \n
  116. "" \n
  117. "" \n
  118. "_character = player;" \n
  119. "" \n
  120. "_speedVal = [1,8,-1];" \n
  121. "" \n
  122. "_mutant setVariable [""state"", ""passive"", true];" \n
  123. "_mutant setVariable [""currentSpeed"", _maxSpeed];"/*%FSM</STATEINIT""">*/;
  124. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  125. class Links
  126. {
  127. /*%FSM<LINK "is_Dedicated">*/
  128. class is_Dedicated
  129. {
  130. priority = 5.000000;
  131. to="End";
  132. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  133. condition=/*%FSM<CONDITION""">*/"isDedicated"/*%FSM</CONDITION""">*/;
  134. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  135. };
  136. /*%FSM</LINK>*/
  137. /*%FSM<LINK "true">*/
  138. class true
  139. {
  140. priority = 0.000000;
  141. to="Begin";
  142. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  143. condition=/*%FSM<CONDITION""">*/"dayz_clientPreload and !(isNull _mutant)"/*%FSM</CONDITION""">*/;
  144. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  145. };
  146. /*%FSM</LINK>*/
  147. };
  148. };
  149. /*%FSM</STATE>*/
  150. /*%FSM<STATE "End">*/
  151. class End
  152. {
  153. name = "End";
  154. init = /*%FSM<STATEINIT""">*/"if (!isDedicated) then" \n
  155. "{" \n
  156. " if (!isNull _mutant) then {" \n
  157. " //deleteVehicle _mutant;" \n
  158. " _mutant = nil;" \n
  159. " };" \n
  160. "};"/*%FSM</STATEINIT""">*/;
  161. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  162. class Links
  163. {
  164. };
  165. };
  166. /*%FSM</STATE>*/
  167. /*%FSM<STATE "Begin">*/
  168. class Begin
  169. {
  170. name = "Begin";
  171. init = /*%FSM<STATEINIT""">*/"_myDest = _pos;" \n
  172. "_newDest = _pos;" \n
  173. "_array = [];" \n
  174. "" \n
  175. "_bodyStay = 60;" \n
  176. "" \n
  177. "_mutant disableAI ""FSM"";" \n
  178. "_mutant setBehaviour ""CARELESS"";" \n
  179. "_mutant setCombatMode ""RED"";" \n
  180. "_mutant setSkill 0;" \n
  181. "" \n
  182. "_newDest = getPosATL _mutant;" \n
  183. "_timeN = time;" \n
  184. "" \n
  185. "_mutant setVariable [""isTazed"",false,true];" \n
  186. " _id = _mutant addeventhandler [""HandleDamage"",{_this call local_zombieDamage;_this call DDOPP_taser_handleHit;}];" \n
  187. "" \n
  188. "_isAlive = alive _mutant;" \n
  189. "_isSomeone = true;" \n
  190. "" \n
  191. "_target = objNull;" \n
  192. "_targetPos = [];" \n
  193. "_countr = 0;" \n
  194. "" \n
  195. "mut_target_search = {" \n
  196. " _mutant = _this select 0;" \n
  197. " _cover_area = _this select 1;" \n
  198. " _refresh = false;" \n
  199. " _i = 1;" \n
  200. " _targets = nearestObjects [_mutant, [""CAManBase""], _cover_area];" \n
  201. " while {!_refresh && (_i < (count _targets))} do {" \n
  202. " _mut_target = _targets select _i;" \n
  203. " if (alive _mut_target) then {" \n
  204. " if (!(_mut_target isKindOf ""zZombie_Base"")) then {" \n
  205. " _refresh = true;" \n
  206. " _i = 1;" \n
  207. " } else {" \n
  208. " _i = _i + 1;" \n
  209. " _mut_target = objNull;" \n
  210. " };" \n
  211. " } else {" \n
  212. " _i = _i + 1;" \n
  213. " _mut_target = objNull;" \n
  214. " };" \n
  215. " };" \n
  216. "};" \n
  217. "" \n
  218. "_cover_area = 500;" \n
  219. "_mut_target = objNull;" \n
  220. "" \n
  221. "nul = [objNull, _mutant, rSAY, ""hound_init""] call RE;" \n
  222. "" \n
  223. "_mut_target = (vehicle player);" \n
  224. "" \n
  225. "_sounds = [_mutant] spawn" \n
  226. "{" \n
  227. "private [""_sound"",""_mutant""];" \n
  228. " _mutant = _this select 0;" \n
  229. " while {alive _mutant} do {" \n
  230. " sleep random 15;" \n
  231. " _blood_sound = round(random 4);" \n
  232. " switch (_blood_sound) do {" \n
  233. " case 0: {_sound = ""hound_bark0"";};" \n
  234. " case 1: {_sound = ""hound_bark1"";};" \n
  235. " case 2: {_sound = ""hound_bark2"";};" \n
  236. " case 3: {_sound = ""hound_bark3"";};" \n
  237. " case 4: {_sound = ""hound_bark4"";};" \n
  238. " default {_sound = ""hound_bark5"";};" \n
  239. " };" \n
  240. " _mutant say _sound;" \n
  241. " [nil, _mutant, rSAY, _sound] call RE;" \n
  242. " sleep random 25;" \n
  243. " };" \n
  244. "}; "/*%FSM</STATEINIT""">*/;
  245. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  246. class Links
  247. {
  248. /*%FSM<LINK "Has_Target">*/
  249. class Has_Target
  250. {
  251. priority = 1.000000;
  252. to="Waiting";
  253. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  254. condition=/*%FSM<CONDITION""">*/"!(isNull _mut_target)"/*%FSM</CONDITION""">*/;
  255. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  256. };
  257. /*%FSM</LINK>*/
  258. };
  259. };
  260. /*%FSM</STATE>*/
  261. /*%FSM<STATE "Chase">*/
  262. class Chase
  263. {
  264. name = "Chase";
  265. init = /*%FSM<STATEINIT""">*/"_targetPos = getPosATL _mut_target;" \n
  266. "_distance = (_mutant distance _mut_target);" \n
  267. "" \n
  268. "_mutant moveTo _targetPos;" \n
  269. "_mutant forceSpeed 15;" \n
  270. "" \n
  271. "_waitTime = time;"/*%FSM</STATEINIT""">*/;
  272. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  273. class Links
  274. {
  275. /*%FSM<LINK "Too_Far_Away">*/
  276. class Too_Far_Away
  277. {
  278. priority = 5.000000;
  279. to="End";
  280. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  281. condition=/*%FSM<CONDITION""">*/"(_mutant distance _mut_target) > 300"/*%FSM</CONDITION""">*/;
  282. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  283. };
  284. /*%FSM</LINK>*/
  285. /*%FSM<LINK "Target_Dead">*/
  286. class Target_Dead
  287. {
  288. priority = 5.000000;
  289. to="End";
  290. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  291. condition=/*%FSM<CONDITION""">*/"!_targetAlive"/*%FSM</CONDITION""">*/;
  292. action=/*%FSM<ACTION""">*/"nul = [objNull, _mut_target, rSAY, ""hound_damage""] call RE;" \n
  293. "terminate _sounds;"/*%FSM</ACTION""">*/;
  294. };
  295. /*%FSM</LINK>*/
  296. /*%FSM<LINK "Not_Alive">*/
  297. class Not_Alive
  298. {
  299. priority = 5.000000;
  300. to="End";
  301. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  302. condition=/*%FSM<CONDITION""">*/"!_isAlive"/*%FSM</CONDITION""">*/;
  303. action=/*%FSM<ACTION""">*/"nul = [objNull, _mutant, rSAY, ""hound_pain""] call RE;" \n
  304. "terminate _sounds;"/*%FSM</ACTION""">*/;
  305. };
  306. /*%FSM</LINK>*/
  307. /*%FSM<LINK "reorientate">*/
  308. class reorientate
  309. {
  310. priority = 1.000000;
  311. to="Chase";
  312. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  313. condition=/*%FSM<CONDITION""">*/"((time - _waitTime) > 1)"/*%FSM</CONDITION""">*/;
  314. action=/*%FSM<ACTION""">*/"_distance = (_mutant distance _mut_target);" \n
  315. "_targetPos = getPosATL _mut_target;"/*%FSM</ACTION""">*/;
  316. };
  317. /*%FSM</LINK>*/
  318. /*%FSM<LINK "Attack_Distance">*/
  319. class Attack_Distance
  320. {
  321. priority = 1.000000;
  322. to="buffer";
  323. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  324. condition=/*%FSM<CONDITION""">*/"(_mut_target distance _mutant) <= 5"/*%FSM</CONDITION""">*/;
  325. action=/*%FSM<ACTION""">*/"_distance = (_mutant distance _mut_target);"/*%FSM</ACTION""">*/;
  326. };
  327. /*%FSM</LINK>*/
  328. };
  329. };
  330. /*%FSM</STATE>*/
  331. /*%FSM<STATE "Attack">*/
  332. class Attack
  333. {
  334. name = "Attack";
  335. init = /*%FSM<STATEINIT""">*/"private [""_sound"",""_distance"",""_s"",""_cnt"",""_index"",""_wound"",""_damage"",""_cantSee""];" \n
  336. "" \n
  337. "_attack = [_mutant,_mut_target] spawn" \n
  338. "{" \n
  339. "private [""_sound"",""_dog""];" \n
  340. " _dog = _this select 0;" \n
  341. " _target = _this select 1;" \n
  342. "" \n
  343. " _dog doTarget _target;" \n
  344. " _dog lookAt _target;" \n
  345. "" \n
  346. " //_dog attachTo [_target,[0,0.8,0],""hrudnik""];" \n
  347. " //_dog setDir 180;" \n
  348. " _dir = [_dog,_target] call BIS_Fnc_dirTo;" \n
  349. "" \n
  350. " _dog setDir _dir;" \n
  351. "" \n
  352. " //_dog playMove ""BP_DogAttack"";" \n
  353. " _dog switchMove ""BP_DogAttack"";" \n
  354. " sleep 0.35; " \n
  355. " _dog setVelocity [0, 0, 2.5];" \n
  356. "" \n
  357. " //detach _dog;" \n
  358. "" \n
  359. " _sound = ""hound_bite"";" \n
  360. " _dog say _sound;" \n
  361. " [nil, _dog, rSAY, _sound] call RE;" \n
  362. "" \n
  363. " //If (((boundingBox _target select 1) select 2) > 1) Then" \n
  364. " //{" \n
  365. " // _target setHit [""legs"", 1];" \n
  366. " // _target playMove ""AmovPpneMstpSrasWrflDnon"";" \n
  367. " //}" \n
  368. " //Else" \n
  369. " //{" \n
  370. " // _target setHit [""hands"", 1];" \n
  371. " // //_target setDamage (damage _target + 0.2);" \n
  372. " //};" \n
  373. "" \n
  374. " _cnt = count (DAYZ_woundHit_ok select 1);" \n
  375. " _index = floor (random _cnt);" \n
  376. " _index = (DAYZ_woundHit_ok select 1) select _index;" \n
  377. " _wound = (DAYZ_woundHit_ok select 0) select _index; " \n
  378. " _damage = 0.4 + random (0.3);" \n
  379. "" \n
  380. " _distance = (_dog distance _target);" \n
  381. " _tPos = (getPosASL _target);" \n
  382. " _zPos = (getPosASL _dog);" \n
  383. " _inAngle = [_zPos,(getdir _dog),50,_tPos] call fnc_inAngleSector;" \n
  384. " if (_inAngle) then {" \n
  385. " _cantSee = [_dog,_target] call dayz_losCheck;" \n
  386. " if (!_cantSee) then" \n
  387. " {" \n
  388. " if (local _dog) then" \n
  389. " { " \n
  390. " [player, _wound, _damage, _dog,""hound""] call fnc_usec_damageHandler; " \n
  391. " } else {" \n
  392. " dayzHit = [_target,_wound, _damage, _dog,""hound""];" \n
  393. " publicVariable ""dayzHit"";" \n
  394. " };" \n
  395. " };" \n
  396. " };" \n
  397. " sleep 1;" \n
  398. "}; " \n
  399. ""/*%FSM</STATEINIT""">*/;
  400. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  401. class Links
  402. {
  403. /*%FSM<LINK "Attack_Finished">*/
  404. class Attack_Finished
  405. {
  406. priority = 5.000000;
  407. to="Waiting";
  408. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  409. condition=/*%FSM<CONDITION""">*/"scriptdone _attack"/*%FSM</CONDITION""">*/;
  410. action=/*%FSM<ACTION""">*/"//_mutant switchMove """";" \n
  411. "_distance = (_mutant distance _mut_target);" \n
  412. "_targetPos = getPosATL _mut_target;"/*%FSM</ACTION""">*/;
  413. };
  414. /*%FSM</LINK>*/
  415. };
  416. };
  417. /*%FSM</STATE>*/
  418. /*%FSM<STATE "Waiting">*/
  419. class Waiting
  420. {
  421. name = "Waiting";
  422. init = /*%FSM<STATEINIT""">*/"//_bul = [_mutant, _cover_area] call mut_target_search;" \n
  423. "_waitTime = time;" \n
  424. "_lastpos = _pos;" \n
  425. "_lostTarget = false;" \n
  426. "_isAlive = alive _mutant;" \n
  427. "_targetAlive = alive _mut_target;" \n
  428. "_targetPos = getPosATL _mut_target;" \n
  429. "_distance = (_mutant distance _mut_target);"/*%FSM</STATEINIT""">*/;
  430. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  431. class Links
  432. {
  433. /*%FSM<LINK "Too_Far_Away">*/
  434. class Too_Far_Away
  435. {
  436. priority = 5.000000;
  437. to="End";
  438. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  439. condition=/*%FSM<CONDITION""">*/"(_mutant distance _mut_target) > 300"/*%FSM</CONDITION""">*/;
  440. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  441. };
  442. /*%FSM</LINK>*/
  443. /*%FSM<LINK "Target_Dead">*/
  444. class Target_Dead
  445. {
  446. priority = 5.000000;
  447. to="End";
  448. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  449. condition=/*%FSM<CONDITION""">*/"!_targetAlive"/*%FSM</CONDITION""">*/;
  450. action=/*%FSM<ACTION""">*/"nul = [objNull, _mut_target, rSAY, ""hound_damage""] call RE;" \n
  451. "terminate _sounds;"/*%FSM</ACTION""">*/;
  452. };
  453. /*%FSM</LINK>*/
  454. /*%FSM<LINK "Not_Alive">*/
  455. class Not_Alive
  456. {
  457. priority = 5.000000;
  458. to="End";
  459. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  460. condition=/*%FSM<CONDITION""">*/"!_isAlive"/*%FSM</CONDITION""">*/;
  461. action=/*%FSM<ACTION""">*/"nul = [objNull, _mutant, rSAY, ""hound_pain""] call RE;" \n
  462. "terminate _sounds;"/*%FSM</ACTION""">*/;
  463. };
  464. /*%FSM</LINK>*/
  465. /*%FSM<LINK "Attack_Distance">*/
  466. class Attack_Distance
  467. {
  468. priority = 1.000000;
  469. to="buffer";
  470. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  471. condition=/*%FSM<CONDITION""">*/"(_mut_target distance _mutant) <= 5"/*%FSM</CONDITION""">*/;
  472. action=/*%FSM<ACTION""">*/"_distance = (_mutant distance _mut_target);"/*%FSM</ACTION""">*/;
  473. };
  474. /*%FSM</LINK>*/
  475. /*%FSM<LINK "Chase_Distance">*/
  476. class Chase_Distance
  477. {
  478. priority = 1.000000;
  479. to="Chase";
  480. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  481. condition=/*%FSM<CONDITION""">*/"(_mut_target distance _mutant) >= 5"/*%FSM</CONDITION""">*/;
  482. action=/*%FSM<ACTION""">*/"_distance = (_mutant distance _mut_target);"/*%FSM</ACTION""">*/;
  483. };
  484. /*%FSM</LINK>*/
  485. };
  486. };
  487. /*%FSM</STATE>*/
  488. /*%FSM<STATE "buffer">*/
  489. class buffer
  490. {
  491. name = "buffer";
  492. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  493. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  494. class Links
  495. {
  496. /*%FSM<LINK "jiv">*/
  497. class jiv
  498. {
  499. priority = 0.000000;
  500. to="Attack";
  501. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  502. condition=/*%FSM<CONDITION""">*/"_isAlive"/*%FSM</CONDITION""">*/;
  503. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  504. };
  505. /*%FSM</LINK>*/
  506. /*%FSM<LINK "neJiv">*/
  507. class neJiv
  508. {
  509. priority = 0.000000;
  510. to="End";
  511. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  512. condition=/*%FSM<CONDITION""">*/"!_isAlive"/*%FSM</CONDITION""">*/;
  513. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  514. };
  515. /*%FSM</LINK>*/
  516. };
  517. };
  518. /*%FSM</STATE>*/
  519. };
  520. initState="init";
  521. finalStates[] =
  522. {
  523. "End",
  524. };
  525. };
  526. /*%FSM</COMPILE>*/
RAW Paste Data