Epoch/Sources/epoch_code/System/Chicken_Brain.fsm
2015-09-14 15:55:36 -05:00

350 lines
12 KiB
Plaintext

/*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, chicken">*/
/*%FSM<HEAD>*/
/*
item0[] = {"chicken",0,4346,-306.490601,-197.039688,-216.490692,-147.039795,0.000000,"chicken"};
item1[] = {"_",8,218,62.332706,-185.990021,114.284866,-157.584717,0.000000,""};
item2[] = {"decision",2,250,165.295456,-196.723892,255.295410,-146.723892,0.000000,"decision"};
item3[] = {"decision_made",4,218,165.267090,-53.833382,255.267029,-3.833395,100.000000,"decision made"};
item4[] = {"action",2,250,45.978439,130.034073,135.978394,180.034134,0.000000,"action"};
item5[] = {"actioned",4,218,-165.144226,130.039581,-75.144043,180.039612,100.000000,"actioned"};
item6[] = {"dispose",4,218,307.945099,-276.114319,397.945160,-226.114349,90.000000,"dispose"};
item7[] = {"_",8,218,64.556526,282.467346,116.508621,310.872589,0.000000,""};
item8[] = {"reset_vars",2,250,-57.248745,-196.860123,32.751255,-146.860138,0.000000,"reset vars"};
item9[] = {"_",8,218,-152.435730,-185.989990,-100.483566,-157.584686,0.000000,""};
item10[] = {"met",4,218,-166.567764,-125.494614,-76.567673,-75.494598,10.000000,"met"};
item11[] = {"_",8,218,64.124817,-17.502594,116.076874,10.902637,5.000000,""};
item12[] = {"end",1,250,376.909119,265.283997,466.909119,315.283997,0.000000,"end"};
item13[] = {"_",8,218,395.047943,158.480392,447.000031,186.885605,0.000000,""};
item14[] = {"dispose",4,218,206.606644,27.804543,296.606628,77.804550,80.000000,"dispose"};
item15[] = {"dispose",2,250,377.031403,29.348614,467.031403,79.348602,0.000000,"dispose"};
item16[] = {"criteria",2,250,-166.153702,-28.650204,-76.153595,21.349773,0.000000,"criteria"};
item17[] = {"lay",4,218,338.653534,-196.376328,428.653534,-146.376312,50.000000,"lay"};
item18[] = {"lay_egg",4,218,209.462189,129.238632,299.462189,179.238632,60.000000,"lay egg"};
item19[] = {"lay_egg",2,250,210.780411,271.612823,300.780365,321.612823,0.000000,"lay egg"};
item20[] = {"no_decision",4,218,165.958954,-303.156921,255.958939,-253.156921,5.000000,"no decision"};
item21[] = {"update",2,250,44.677261,-304.475220,134.677246,-254.475189,0.000000,"update"};
link0[] = {0,9};
link1[] = {1,2};
link2[] = {2,3};
link3[] = {2,6};
link4[] = {2,17};
link5[] = {2,20};
link6[] = {3,4};
link7[] = {4,5};
link8[] = {4,14};
link9[] = {4,18};
link10[] = {5,16};
link11[] = {6,2};
link12[] = {7,4};
link13[] = {8,1};
link14[] = {9,8};
link15[] = {10,8};
link16[] = {11,4};
link17[] = {13,12};
link18[] = {14,15};
link19[] = {15,13};
link20[] = {16,10};
link21[] = {16,11};
link22[] = {17,2};
link23[] = {18,19};
link24[] = {19,7};
link25[] = {20,21};
link26[] = {21,1};
globals[] = {0.000000,0,0,0,16777215,640,480,1,82,6316128,1,-391.494690,743.543762,448.214935,-340.116058,861,598,1};
window[] = {2,-1,-1,-1,-1,603,78,1103,78,3,879};
*//*%FSM</HEAD>*/
class FSM
{
fsmName = "chicken";
class States
{
/*%FSM<STATE "chicken">*/
class chicken
{
name = "chicken";
init = /*%FSM<STATEINIT""">*/"_animal = _this select 0;" \n
"_plyr = player;" \n
"_dispDist = 550;" \n
"" \n
"_eggTime = 45;" \n
"_eggCheck = diag_tickTime;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
priority = 0.000000;
to="reset_vars";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "decision">*/
class decision
{
name = "decision";
init = /*%FSM<STATEINIT""">*/"_plyrDist = _animal distance _plyr;" \n
"_animalPos = getPos _animal;" \n
"" \n
"" \n
"" \n
"" \n
"" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "decision_made">*/
class decision_made
{
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
{
priority = 90.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_plyrDist > _dispDist || !(alive _animal);"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doDispose = true;" \n
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "lay">*/
class lay
{
priority = 50.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"diag_tickTime > (_eggCheck + (_eggTime * 60)) ;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doEgg = true;" \n
"_decisionMade = true;" \n
""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "no_decision">*/
class no_decision
{
priority = 5.000000;
to="update";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_decisionMade;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "action">*/
class action
{
name = "action";
init = /*%FSM<STATEINIT""">*/"//intentionally left blank"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "actioned">*/
class actioned
{
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
{
priority = 80.000000;
to="dispose";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_doDispose;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "lay_egg">*/
class lay_egg
{
priority = 60.000000;
to="lay_egg";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_doEgg;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "reset_vars">*/
class reset_vars
{
name = "reset_vars";
init = /*%FSM<STATEINIT""">*/"//Routine" \n
"_actionDone = false;" \n
"_decisionMade = false;" \n
"_sWait = 0;" \n
"_doDispose = false;" \n
"_criteria = Nil;" \n
"_criteriaMet = false;" \n
"_t = diag_tickTime;" \n
"" \n
"//Decision" \n
"_animalPos=[0,0,0];" \n
"" \n
"//Special" \n
"_doEgg = false;" \n
"_posWH = [];" \n
"_egg = objNull;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
priority = 0.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "end">*/
class end
{
name = "end";
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "dispose">*/
class dispose
{
name = "dispose";
init = /*%FSM<STATEINIT""">*/"_animal spawn {" \n
" uiSleep 60;" \n
" deleteVehicle _this;" \n
"};"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
priority = 0.000000;
to="end";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "criteria">*/
class criteria
{
name = "criteria";
init = /*%FSM<STATEINIT""">*/"//intentionally left blank"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "met">*/
class met
{
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""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "lay_egg">*/
class lay_egg
{
name = "lay_egg";
init = /*%FSM<STATEINIT""">*/"_posWH = getPos _animal;" \n
"_egg = createVehicle[""groundWeaponHolder"", _posWH, [], 0, ""CAN_COLLIDE""];" \n
"_egg setPosATL _posWH;" \n
"_egg addMagazineCargoGlobal[""PartOreGold"", 1];" \n
"_eggCheck = diag_tickTime;" \n
"" \n
"_sWait = 3;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
"_criteria = format [""%1"", false ];"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "update">*/
class update
{
name = "update";
init = /*%FSM<STATEINIT""">*/"//intentionally left blank"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
priority = 0.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
};
initState="chicken";
finalStates[] =
{
"end"
};
};
/*%FSM</COMPILE>*/