/*%FSM*/ /*%FSM*/ /* item0[] = {"Init",0,250,27.096645,-357.382507,117.096680,-307.382507,0.000000,"Init"}; item1[] = {"Loop",4,218,349.567535,-189.804108,439.567596,-139.804062,0.000000,"Loop"}; item2[] = {"End",1,250,35.343773,-97.642059,125.343819,-47.642326,0.000000,"End"}; item3[] = {"Arrowhead_Garbag",2,4346,201.635025,-189.872375,291.634949,-139.872375,0.000000,"Arrowhead" \n "Garbage"}; item4[] = {"Loop",4,218,-301.789124,-191.088837,-211.789047,-141.088791,0.000000,"Loop"}; item5[] = {"Vanilla",4,218,-28.368071,-262.232788,61.631752,-212.232986,0.000000,"Vanilla"}; item6[] = {"Arrowhead",4,218,94.700302,-263.344727,184.700043,-213.344574,0.000000,"Arrowhead"}; item7[] = {"Vanilla_Garbage",2,250,-153.091797,-191.262604,-63.091869,-141.262650,0.000000,"Vanilla" \n "Garbage"}; item8[] = {"Gameover",4,218,34.943623,-190.869827,124.943687,-140.869797,0.000000,"Gameover"}; link0[] = {0,5}; link1[] = {0,6}; link2[] = {1,3}; link3[] = {3,1}; link4[] = {3,8}; link5[] = {4,7}; link6[] = {5,7}; link7[] = {6,3}; link8[] = {7,4}; link9[] = {7,8}; link10[] = {8,2}; globals[] = {0.000000,0,0,0,0,640,480,1,38,6316128,1,-314.217926,456.388641,91.977463,-442.708069,748,514,1}; window[] = {0,-1,-1,-1,-1,659,25,1285,25,1,766}; *//*%FSM*/ class FSM { fsmName = "garbagecollector"; class States { /*%FSM*/ class Init { name = "Init"; init = /*%FSM*/"_lastUpdate = time;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Arrowhead { priority = 0.000000; to="Arrowhead_Garbag"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!WF_A2_Vanilla"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class Vanilla { priority = 0.000000; to="Vanilla_Garbage"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"WF_A2_Vanilla"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class End { name = "End"; init = /*%FSM*/""/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { }; }; /*%FSM*/ /*%FSM*/ class Arrowhead_Garbag { name = "Arrowhead_Garbag"; init = /*%FSM*/"_lastUpdate = time;" \n "" \n "/* Units Removal */" \n "" \n "_whq = (west) Call GetSideHQ;" \n "_ehq = (East) Call GetSideHQ;" \n "" \n "{" \n " if (!(_x in trashQueu) && !(_x in ignoreQueu) && !(_x in playableUnits) && (_x != _whq) && (_x != _ehq)) then {" \n " _x Spawn TrashObject;" \n " };" \n "} forEach allDead;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Gameover { priority = 0.000000; to="End"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"gameOver"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class Loop { priority = 0.000000; to="Arrowhead_Garbag"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"time - _lastUpdate > 30 && !gameOver"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Vanilla_Garbage { name = "Vanilla_Garbage"; init = /*%FSM*/"_objects = WF_Logic getVariable ""trash"";" \n "{" \n " if !(_x in trashQueu) then {" \n " _objects2 = WF_Logic getVariable ""trash"";" \n " trashQueu = trashQueu + [_x];" \n " _x Spawn TrashObject;" \n " _renewed = _objects2 - [_x] - [objNull];" \n " WF_Logic setVariable [""trash"",_renewed,true];" \n " };" \n "} forEach _objects;" \n "" \n "_lastUpdate = time;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Gameover { priority = 0.000000; to="End"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"gameOver"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class Loop { priority = 0.000000; to="Vanilla_Garbage"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"time - _lastUpdate > 0.5 && !gameOver"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ }; initState="Init"; finalStates[] = { "End" }; }; /*%FSM*/