Epoch/Sources/epoch_server/system/Trader_brain.fsm
2017-10-22 17:06:10 -05:00

584 lines
32 KiB
Plaintext

/*%FSM<COMPILE "C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\scriptedFSM.cfg, traders">*/
/*%FSM<HEAD>*/
/*
item0[] = {"trader",0,250,-200.000000,-275.000000,-100.000000,-225.000000,0.000000,"trader"};
item1[] = {"_",8,218,50.000000,375.000000,150.000000,425.000000,5.000000,""};
item2[] = {"decision",2,250,175.000000,-200.000000,275.000000,-150.000000,0.000000,"decision"};
item3[] = {"decision_made",4,218,175.000000,-25.000000,275.000000,25.000000,100.000000,"decision made"};
item4[] = {"action",2,250,50.000000,125.000000,150.000000,175.000000,0.000000,"action"};
item5[] = {"actioned",4,218,-200.000000,125.000000,-100.000000,175.000000,100.000000,"actioned"};
item6[] = {"dispose",4,218,125.000000,-325.000000,225.000000,-275.000000,90.000000,"dispose"};
item7[] = {"reset_vars",2,250,-75.000000,-200.000000,25.000000,-150.000000,0.000000,"reset vars"};
item8[] = {"_",8,218,-75.000000,-25.000000,25.000000,25.000000,5.000000,""};
item9[] = {"met",4,218,-200.000000,-125.000000,-100.000000,-75.000000,10.000000,"met"};
item10[] = {"_",8,218,50.000000,50.000000,150.000000,100.000000,5.000000,""};
item11[] = {"end",1,250,425.000000,25.000000,525.000000,75.000000,0.000000,"end"};
item12[] = {"dispose",4,218,250.000000,25.000000,350.000000,75.000000,80.000000,"dispose"};
item13[] = {"criteria",2,250,-200.000000,-25.000000,-100.000000,25.000000,0.000000,"criteria"};
item14[] = {"interrupt_action",2,250,50.000000,-25.000000,150.000000,25.000000,0.000000,"interrupt action"};
item15[] = {"player",4,218,50.000000,-125.000000,150.000000,-75.000000,10.000000,"player"};
item16[] = {"_",8,218,50.000000,-200.000000,150.000000,-150.000000,5.000000,""};
item17[] = {"go_work",4,218,307.360077,-260.220886,397.360077,-210.220947,70.000000,"go work"};
item18[] = {"go_home",4,218,350.000000,-200.000000,450.000000,-150.000000,60.000000,"go home"};
item19[] = {"work",4,218,175.000000,250.000000,275.000000,300.000000,60.000000,"work"};
item20[] = {"move_to_work",2,4346,425.000000,250.000000,525.000000,300.000000,0.000000,"move to work"};
item21[] = {"home",4,218,100.000000,300.000000,200.000000,350.000000,50.000000,"home"};
item22[] = {"move_to_home",2,250,425.000000,325.000000,525.000000,375.000000,0.000000,"move to home"};
item23[] = {"look_at",4,218,225.000000,-300.000000,325.000000,-250.000000,80.000000,"look at"};
item24[] = {"serve",4,218,225.000000,175.000000,325.000000,225.000000,70.000000,"serve"};
item25[] = {"look_at",2,250,425.000000,175.000000,525.000000,225.000000,0.000000,"look at"};
item26[] = {"no_decisiion",4,218,50.000000,-275.000000,150.000000,-225.000000,85.000000,"no decisiion"};
item27[] = {"interrupt",4,218,250.000000,100.000000,350.000000,150.000000,75.000000,"interrupt"};
item28[] = {"trade",2,250,425.000000,100.000000,525.000000,150.000000,0.000000,"trade"};
item29[] = {"_",8,218,-200.000000,-200.000000,-100.000000,-150.000000,5.000000,""};
link0[] = {0,29};
link1[] = {1,4};
link2[] = {2,3};
link3[] = {2,6};
link4[] = {2,17};
link5[] = {2,18};
link6[] = {2,23};
link7[] = {2,26};
link8[] = {3,4};
link9[] = {4,5};
link10[] = {4,12};
link11[] = {4,19};
link12[] = {4,21};
link13[] = {4,24};
link14[] = {4,27};
link15[] = {5,13};
link16[] = {6,2};
link17[] = {7,16};
link18[] = {8,14};
link19[] = {9,7};
link20[] = {10,4};
link21[] = {12,11};
link22[] = {13,8};
link23[] = {13,9};
link24[] = {14,10};
link25[] = {14,15};
link26[] = {15,2};
link27[] = {16,2};
link28[] = {17,2};
link29[] = {18,2};
link30[] = {19,20};
link31[] = {20,1};
link32[] = {21,22};
link33[] = {22,1};
link34[] = {23,2};
link35[] = {24,25};
link36[] = {25,1};
link37[] = {26,7};
link38[] = {27,28};
link39[] = {28,1};
link40[] = {29,7};
globals[] = {0.000000,0,0,0,0,640,480,1,92,6316128,1,-256.926910,577.747742,523.678101,-359.150879,828,844,1};
window[] = {2,-1,-1,-32000,-32000,557,1952,2977,32,3,850};
*//*%FSM</HEAD>*/
class FSM
{
fsmName = "traders";
class States
{
/*%FSM<STATE "trader">*/
class trader
{
name = "trader";
itemno = 0;
init = /*%FSM<STATEINIT""">*/"_trader = _this select 0;" \n
"_home = _this select 1;" \n
"_work = _this select 2 select 0;" \n
"_schedule = _this select 2 select 1;" \n
"_trgt = objNull;" \n
"" \n
"_trader disableAI ""FSM"";" \n
"_trader disableAI ""TARGET"";" \n
"_trader disableAI ""AUTOTARGET"";" \n
"_trader setBehaviour ""CARELESS"";" \n
"_trader setCombatMode ""BLUE"";" \n
"" \n
"_traderNames=[""Aaron"",""Kenneth"",""Paul"",""Darren"",""Damian"",""Niklas"",""Andrew"",""Nigel"",""Harry"",""Phil"",""Antony"",""Dave"",""Hammish"",""Richard"",""Peter"",""Conor""];" \n
"_traderName = selectRandom _traderNames;" \n
"" \n
"_trgtArray = [""Epoch_Man_base_F"",""Epoch_Female_base_F""];" \n
"_tRange = 20;//Travel Range - Pause if players within range when travelling home" \n
"_sRange = 10;//Serve Range - Look at players within this distance" \n
"_maxTravelTime = 480;//Max time before process times out and continues, after moving. moveToCompleted will timeout before this." \n
"_atWork = false;" \n
"_atHome = true;" \n
"_lastDir = getDir _trader;" \n
"_l = diag_tickTime;" \n
"" \n
"" \n
"" \n
"" \n
"" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
itemno = 29;
priority = 5.000000;
to="reset_vars";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "decision">*/
class decision
{
name = "decision";
itemno = 2;
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "decision_made">*/
class decision_made
{
itemno = 3;
priority = 100.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_decisionMade;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "dispose">*/
class dispose
{
itemno = 6;
priority = 90.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!(alive _trader)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doDispose = true;" \n
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "no_decisiion">*/
class no_decisiion
{
itemno = 26;
priority = 85.000000;
to="reset_vars";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_decisionMade && diag_tickTime - _t > 3;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "look_at">*/
class look_at
{
itemno = 23;
priority = 80.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"count _nrPlyrs >0 && diag_tickTime - _l > 3;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_servePlyr = true;" \n
"_decisionMade = true;" \n
"_trgt = _nrPlyrs select 0;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "go_work">*/
class go_work
{
itemno = 17;
priority = 70.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(!_atWork) && (_daytime > (_schedule select 0) && _daytime < (_schedule select 1));"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_goWork = true;" \n
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "go_home">*/
class go_home
{
itemno = 18;
priority = 60.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(!_atHome) && (!(_daytime > (_schedule select 0) && _daytime < (_schedule select 1)));"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_goHome = true;" \n
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "action">*/
class action
{
name = "action";
itemno = 4;
init = /*%FSM<STATEINIT""">*/"_nrPlyrs = _trader nearEntities [_trgtArray, _tRange];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "actioned">*/
class actioned
{
itemno = 5;
priority = 100.000000;
to="criteria";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_actionDone;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "dispose">*/
class dispose
{
itemno = 12;
priority = 80.000000;
to="end";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_doDispose;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "interrupt">*/
class interrupt
{
itemno = 27;
priority = 75.000000;
to="trade";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_override;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "serve">*/
class serve
{
itemno = 24;
priority = 70.000000;
to="look_at";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_servePlyr;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "work">*/
class work
{
itemno = 19;
priority = 60.000000;
to="move_to_work";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_goWork && !_override;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "home">*/
class home
{
itemno = 21;
priority = 50.000000;
to="move_to_home";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_goHome && !_override;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "reset_vars">*/
class reset_vars
{
name = "reset_vars";
itemno = 7;
init = /*%FSM<STATEINIT""">*/"//Default Vars" \n
"" \n
"" \n
"_rnd = 0;" \n
"_actionDone = false;" \n
"_decisionMade = false;" \n
"_sWait = 0;" \n
"_doDispose = false;" \n
"_chooseTarget = false;" \n
"_criteria = Nil;" \n
"_criteriaMet = false;" \n
"_allowInterrupt = false;" \n
"_t = diag_tickTime;" \n
"" \n
"" \n
"_traderPos=[0,0,0];" \n
"_goWork = false;" \n
"_goHome = false;" \n
"_nrPlyrs = [];" \n
"_servePlyr = false;" \n
"_override = false;" \n
"" \n
"_criteriaMetAction = nil;" \n
"" \n
"_traderPos = getPosATL _trader;" \n
"_daytime = daytime;" \n
"_nrPlyrs = _trader nearEntities [_trgtArray, _sRange];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
itemno = 16;
priority = 5.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "end">*/
class end
{
name = "end";
itemno = 11;
init = /*%FSM<STATEINIT""">*/"diag_log format[""KILLED TRADER: %1"", (!alive _trader)];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "criteria">*/
class criteria
{
name = "criteria";
itemno = 13;
init = /*%FSM<STATEINIT""">*/"//intentionally left blank"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "met">*/
class met
{
itemno = 9;
priority = 10.000000;
to="reset_vars";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(call compile _criteria) || (diag_tickTime > (_t + _sWait));"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"if (!isNil ""_criteriaMetAction"") then {" \n
"call compile _criteriaMetAction;" \n
"};"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "_">*/
class _
{
itemno = 8;
priority = 5.000000;
to="interrupt_action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "interrupt_action">*/
class interrupt_action
{
name = "interrupt_action";
itemno = 14;
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "player">*/
class player
{
itemno = 15;
priority = 10.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(count _nrPlyrs > 0) && _allowInterrupt;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_trader moveTo getPos _trader;" \n
"_override = true;" \n
"_actionDone = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "_">*/
class _
{
itemno = 10;
priority = 5.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "move_to_work">*/
class move_to_work
{
name = "move_to_work";
itemno = 20;
init = /*%FSM<STATEINIT""">*/"_trader moveTo _work;" \n
"_sWait = _maxTravelTime;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
"_criteria = format[""moveToCompleted %1"",""_trader""];" \n
"_criteriaMetAction = format [""_atWork = %1"",true];" \n
"_atHome = false;" \n
"_allowInterrupt = true;" \n
"" \n
"_markers = _trader getVariable[""MARKER_REF"",[]];" \n
"if !(_markers isEqualTo []) then {" \n
" [_markers] call EPOCH_server_deleteGlobalMarkerSet;" \n
" ['DynamicTrader', _work] call EPOCH_server_createGlobalMarkerSet;" \n
" _trader setVariable['MARKER_REF', _markers];" \n
"};" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
itemno = 1;
priority = 5.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "move_to_home">*/
class move_to_home
{
name = "move_to_home";
itemno = 22;
init = /*%FSM<STATEINIT""">*/"_trader moveTo _home;" \n
"_sWait = _maxTravelTime;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
"_criteria = format[""moveToCompleted %1"",""_trader""];" \n
"_criteriaMetAction = format [""_atHome = %1"",true];" \n
"_atWork = false;" \n
"_allowInterrupt = true;" \n
"" \n
"_markers = _trader getVariable[""MARKER_REF"",[] ];" \n
"if !(_markers isEqualTo []) then {" \n
" [_markers] call EPOCH_server_deleteGlobalMarkerSet;" \n
" ['DynamicTrader', _home] call EPOCH_server_createGlobalMarkerSet;" \n
" _trader setVariable['MARKER_REF', _markers];" \n
"};" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
itemno = 1;
priority = 5.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "look_at">*/
class look_at
{
name = "look_at";
itemno = 25;
init = /*%FSM<STATEINIT""">*/"if !(isNull _trgt) then {" \n
"_dir = _trader getDir _trgt;" \n
"if(_lastDir != _dir)then{" \n
" _trader setDir _dir;" \n
" _lastDir = _dir;" \n
"};" \n
"};" \n
"_sWait = 1;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
"_criteria = format [""%1"", true ];" \n
"_l = diag_tickTime;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
itemno = 1;
priority = 5.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "trade">*/
class trade
{
name = "trade";
itemno = 28;
init = /*%FSM<STATEINIT""">*/"if !(isNull _trgt) then {" \n
" _trader setDir (_trader getDir _trgt);" \n
"};" \n
"_sWait = 480;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
"_allowInterrupt = true;" \n
"_criteria = format [""count %1 < %2"",""_nrPlyrs"",1];" \n
"" \n
"if (_goHome) then {" \n
"_criteriaMetAction = format [""%1 moveTo %2"",""_trader"",""_home""];" \n
"};" \n
"" \n
"if (_goWork) then {" \n
"_criteriaMetAction = format [""%1 moveTo %2"",""_trader"",""_work""];" \n
"};" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
itemno = 1;
priority = 5.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doneCheck = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
};
initState="trader";
finalStates[] =
{
"end",
};
};
/*%FSM</COMPILE>*/