mission.fsm 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. /*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, Destroy the Radiotower">*/
  2. /*%FSM<HEAD>*/
  3. /*
  4. item0[] = {"Destroy_the_Radi",0,250,-50.000000,-150.000000,50.000000,-100.000000,0.000000,"Destroy" \n "the" \n "Radiotower"};
  5. item1[] = {"Ready_",8,218,-50.000000,-75.000000,50.000000,-25.000000,0.000000,"Ready!"};
  6. item2[] = {"Set_timeout___",2,250,-50.000000,0.000000,50.000000,50.000000,0.000000,"Set timeout..."};
  7. item3[] = {"Ready_to_check_",4,218,-50.000000,75.000000,50.000000,125.000000,0.000000,"Ready to" \n "check?"};
  8. item4[] = {"Is_the_Radiotower",2,250,-50.000000,150.000000,50.000000,200.000000,0.000000,"Is the" \n "Radiotower" \n "dead?"};
  9. item5[] = {"No",8,218,75.000000,75.000000,175.000000,125.000000,0.000000,"No"};
  10. item6[] = {"Yes",4,218,-50.000000,225.000000,50.000000,275.000000,1.000000,"Yes"};
  11. item7[] = {"Completed_",1,250,-50.000000,300.000000,50.000000,350.000000,0.000000,"Completed!"};
  12. item8[] = {"",7,210,121.000000,21.000000,129.000000,29.000000,0.000000,""};
  13. item9[] = {"",7,210,121.000000,171.000000,129.000000,179.000000,0.000000,""};
  14. link0[] = {0,1};
  15. link1[] = {1,2};
  16. link2[] = {2,3};
  17. link3[] = {3,4};
  18. link4[] = {4,6};
  19. link5[] = {4,9};
  20. link6[] = {5,8};
  21. link7[] = {6,7};
  22. link8[] = {8,2};
  23. link9[] = {9,5};
  24. globals[] = {25.000000,1,0,0,0,640,480,1,11,6316128,1,-661.751099,549.136108,554.120117,-220.952133,1392,891,1};
  25. window[] = {0,-1,-1,-1,-1,1115,78,1998,78,1,1410};
  26. *//*%FSM</HEAD>*/
  27. class FSM
  28. {
  29. fsmName = "Destroy the Radiotower";
  30. class States
  31. {
  32. /*%FSM<STATE "Destroy_the_Radi">*/
  33. class Destroy_the_Radi
  34. {
  35. name = "Destroy_the_Radi";
  36. init = /*%FSM<STATEINIT""">*/"_pos = _this select 0;" \n
  37. "_code = _this select 1;" \n
  38. "" \n
  39. "_tower = ""Land_TTowerBig_1_F"" createVehicle _pos;" \n
  40. "_tower setVectorUp [0,0,1];" \n
  41. "" \n
  42. "_mines = [];" \n
  43. "" \n
  44. "for ""_c"" from 0 to 79 do" \n
  45. "{" \n
  46. " _mine = createMine [""SLAMDirectionalMine"", _pos, [], 50];" \n
  47. " _mines = _mines + [_mine];" \n
  48. "};"/*%FSM</STATEINIT""">*/;
  49. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  50. class Links
  51. {
  52. /*%FSM<LINK "Ready_">*/
  53. class Ready_
  54. {
  55. priority = 0.000000;
  56. to="Set_timeout___";
  57. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  58. condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
  59. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  60. };
  61. /*%FSM</LINK>*/
  62. };
  63. };
  64. /*%FSM</STATE>*/
  65. /*%FSM<STATE "Set_timeout___">*/
  66. class Set_timeout___
  67. {
  68. name = "Set_timeout___";
  69. init = /*%FSM<STATEINIT""">*/"_timeout = (time + 5 + (random 10));"/*%FSM</STATEINIT""">*/;
  70. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  71. class Links
  72. {
  73. /*%FSM<LINK "Ready_to_check_">*/
  74. class Ready_to_check_
  75. {
  76. priority = 0.000000;
  77. to="Is_the_Radiotower";
  78. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  79. condition=/*%FSM<CONDITION""">*/"time >= _timeout"/*%FSM</CONDITION""">*/;
  80. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  81. };
  82. /*%FSM</LINK>*/
  83. };
  84. };
  85. /*%FSM</STATE>*/
  86. /*%FSM<STATE "Is_the_Radiotower">*/
  87. class Is_the_Radiotower
  88. {
  89. name = "Is_the_Radiotower";
  90. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  91. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  92. class Links
  93. {
  94. /*%FSM<LINK "Yes">*/
  95. class Yes
  96. {
  97. priority = 1.000000;
  98. to="Completed_";
  99. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  100. condition=/*%FSM<CONDITION""">*/"!alive _tower"/*%FSM</CONDITION""">*/;
  101. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  102. };
  103. /*%FSM</LINK>*/
  104. /*%FSM<LINK "No">*/
  105. class No
  106. {
  107. priority = 0.000000;
  108. to="Set_timeout___";
  109. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  110. condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
  111. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  112. };
  113. /*%FSM</LINK>*/
  114. };
  115. };
  116. /*%FSM</STATE>*/
  117. /*%FSM<STATE "Completed_">*/
  118. class Completed_
  119. {
  120. name = "Completed_";
  121. init = /*%FSM<STATEINIT""">*/"result = true;"/*%FSM</STATEINIT""">*/;
  122. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  123. class Links
  124. {
  125. };
  126. };
  127. /*%FSM</STATE>*/
  128. };
  129. initState="Destroy_the_Radi";
  130. finalStates[] =
  131. {
  132. "Completed_",
  133. };
  134. };
  135. /*%FSM</COMPILE>*/