<?xml version="1.0" ?>
<enemy>
    <behaviour>
        <root x="80" y="20">
            <normal>
                <condition id="once">
                    <normal>
                        <action id="buyUpgrade">
                            <string id="upgrade name">BlinkerTwirl</string>
                            <string id="Comment">Automatically buy upgrade (no solar check)</string>
                        </action>
                        <action id="setBool">
                            <string id="id">followTarget</string>
                            <string id="value" values="flagtoggle">yes</string>
                        </action>
                        <action id="setBool">
                            <string id="id">invincible</string>
                            <string id="value" values="flagtoggle">yes</string>
                        </action>
                        <action id="log">
                            <string id="text">Init done!</string>
                            <string id="counter"></string>
                            <string id="bool"></string>
                        </action>
                    </normal>
                </condition>
                <condition id="isAtDestWaypoint">
                    <normal>
                        <action id="removeTarget">
                            <string id="Comment">TODO: CHECK IF FRIEND IS HERE BEFORE REMOVING THE TARGET</string>
                        </action>
                        <action id="selectDestWaypoint">
                            <string id="name">INVALID</string>
                            <string id="team" values="ownenemy">ENEMY_TEAM</string>
                        </action>
                        <action id="selectTargetWaypoint" />
                        <condition id="getBoolEquals">
                            <string id="id">attackTarget</string>
                            <string id="value" values="yesno">no</string>
                            <normal>
                                <action id="selectTarget">
                                    <string id="groups to select" values="target groups" multiselect="true">PLAYERS;;</string>
                                    <string id="teams" values="teams" multiselect="true">OWN_TEAM;;</string>
                                    <string id="class"></string>
                                    <string id="only check parent" values="yesno">no</string>
                                    <string id="remove if not found" values="yesno">no</string>
                                    <float id="xOffset">0.00</float>
                                    <float id="yOffset">0.00</float>
                                    <float id="width">1.00</float>
                                    <float id="height">1.00</float>
                                    <string id="compare method" values="valuecompare2">greater or equal</string>
                                    <float id="health value">0.00</float>
                                    <string id="distance check" values="distance check">NONE</string>
                                    <string id="check line of sight" values="yesno">no</string>
                                    <string id="ignore invisibility" values="yesno">no</string>
                                    <string id="never detect invisible targets without character collision" values="yesno">no</string>
                                    <string id="Comment">Find a FRIEND</string>
                                </action>
                                <action id="setBool">
                                    <string id="id">followTarget</string>
                                    <string id="value" values="flagtoggle">yes</string>
                                </action>
                                <action id="log">
                                    <string id="text">Finding a friend!</string>
                                    <string id="counter"></string>
                                    <string id="bool"></string>
                                </action>
                            </normal>
                        </condition>
                    </normal>
                </condition>
                <condition id="getBoolEquals">
                    <string id="id">defending</string>
                    <string id="value" values="yesno">yes</string>
                    <normal>
                        <action id="selectTarget">
                            <string id="groups to select" values="target groups" multiselect="true">PLAYERS;;CREEPS;;DESTROYABLE_OBSTACLES;;</string>
                            <string id="teams" values="teams" multiselect="true">ENEMY_TEAM;;NEUTRAL_TEAM;;</string>
                            <string id="class"></string>
                            <string id="only check parent" values="yesno">no</string>
                            <string id="remove if not found" values="yesno">no</string>
                            <float id="xOffset">0.00</float>
                            <float id="yOffset">0.00</float>
                            <float id="width">0.50</float>
                            <float id="height">0.50</float>
                            <string id="compare method" values="valuecompare2">less</string>
                            <float id="health value">0.00</float>
                            <string id="distance check" values="distance check">NONE</string>
                            <string id="check line of sight" values="yesno">no</string>
                            <string id="ignore invisibility" values="yesno">no</string>
                            <string id="never detect invisible targets without character collision" values="yesno">no</string>
                            <string id="Comment">Check if there&apos;s another target to kill</string>
                        </action>
                    </normal>
                </condition>
                <condition id="getBoolEquals">
                    <string id="id">invincible</string>
                    <string id="value" values="yesno">yes</string>
                    <normal>
                        <action id="adjustCharacterValue">
                            <string id="property" values="charactervaluesAdjustable">health</string>
                            <float id="value">100000.00</float>
                            <string id="adjust method" values="valueadjust">set</string>
                        </action>
                    </normal>
                </condition>
                <condition id="receivedPing">
                    <string id="ping" values="ping">DEFEND</string>
                    <normal>
                        <action id="setBool">
                            <string id="id">defending</string>
                            <string id="value" values="flagtoggle">yes</string>
                        </action>
                        <action id="removeTarget" />
                        <action id="log">
                            <string id="text">I&apos;ll stay here</string>
                            <string id="counter"></string>
                            <string id="bool"></string>
                        </action>
                    </normal>
                </condition>
                <condition id="receivedPing">
                    <string id="ping" values="ping">ATTACK</string>
                    <normal>
                        <condition id="isInArea">
                            <string id="condition" values="yesno">yes</string>
                            <string id="collision groups" values="collison groups" multiselect="true">PLAYERS;;CREEPS;;DESTROYABLE_OBSTACLES;;</string>
                            <string id="check green obstacles only" values="yesno">no</string>
                            <string id="count characters out of combat" values="yesno">yes</string>
                            <string id="teams" values="teams" multiselect="true">ENEMY_TEAM;;NEUTRAL_TEAM;;</string>
                            <string id="areaName"></string>
                            <float id="xOffset">0.00</float>
                            <float id="yOffset">0.00</float>
                            <float id="width">1.20</float>
                            <float id="height">1.20</float>
                            <string id="check line of sight" values="yesno">no</string>
                            <string id="ignore invisibility" values="yesno">no</string>
                            <string id="never detect invisible targets without character collision" values="yesno">no</string>
                            <normal>
                                <action id="selectTarget">
                                    <string id="groups to select" values="target groups" multiselect="true">PLAYERS;;CREEPS;;DESTROYABLE_OBSTACLES;;</string>
                                    <string id="teams" values="teams" multiselect="true">ENEMY_TEAM;;NEUTRAL_TEAM;;</string>
                                    <string id="class"></string>
                                    <string id="only check parent" values="yesno">no</string>
                                    <string id="remove if not found" values="yesno">no</string>
                                    <float id="xOffset">0.00</float>
                                    <float id="yOffset">0.00</float>
                                    <float id="width">1.20</float>
                                    <float id="height">1.20</float>
                                    <string id="compare method" values="valuecompare2">less</string>
                                    <float id="health value">0.00</float>
                                    <string id="distance check" values="distance check">CLOSEST</string>
                                    <string id="check line of sight" values="yesno">no</string>
                                    <string id="ignore invisibility" values="yesno">no</string>
                                    <string id="never detect invisible targets without character collision" values="yesno">no</string>
                                </action>
                                <action id="setBool">
                                    <string id="id">attackTarget</string>
                                    <string id="value" values="flagtoggle">yes</string>
                                </action>
                                <action id="log">
                                    <string id="text">Found an enemy</string>
                                    <string id="counter"></string>
                                    <string id="bool"></string>
                                </action>
                            </normal>
                            <else>
                                <action id="playAnimation">
                                    <string id="animationName">UI_Minimap_Alert</string>
                                    <string id="location" values="animationLocation">START_RELATIVE_TO_CHARACTER</string>
                                    <string id="dummyToFollow"></string>
                                    <float id="xPosition">0.00</float>
                                    <float id="yPosition">0.10</float>
                                    <float id="scale">0.50</float>
                                    <float id="depth">1.00</float>
                                    <string id="mirrorX" values="yesno">no</string>
                                    <string id="team" values="teams">OWN_TEAM</string>
                                    <string id="addOverlayPrefix" values="yesno">no</string>
                                    <string id="allowRotating" values="yesno">yes</string>
                                </action>
                                <action id="log">
                                    <string id="text">No target nearby!</string>
                                    <string id="counter"></string>
                                    <string id="bool"></string>
                                </action>
                            </else>
                        </condition>
                        <action id="setBool">
                            <string id="id">defending</string>
                            <string id="value" values="flagtoggle">no</string>
                        </action>
                    </normal>
                </condition>
                <condition id="receivedPing">
                    <string id="ping" values="ping">HELP</string>
                    <normal>
                        <action id="removeTarget" />
                        <action id="setBool">
                            <string id="id">attackTarget</string>
                            <string id="value" values="flagtoggle">no</string>
                        </action>
                        <action id="setBool">
                            <string id="id">defending</string>
                            <string id="value" values="flagtoggle">no</string>
                        </action>
                        <action id="log">
                            <string id="text">Help required!</string>
                            <string id="counter"></string>
                            <string id="bool"></string>
                        </action>
                        <action id="selectPingWaypoint">
                            <string id="ping" values="ping">HELP</string>
                        </action>
                    </normal>
                </condition>
                <orblock>
                    <normal>
                        <action id="aimStickAtTarget">
                            <float id="duration seconds">2.00</float>
                            <string id="only aim when needed" values="yesno">no</string>
                            <string id="use rotation speed limits" values="yesno">no</string>
                            <float id="min rotation speed per second in degrees">0.00</float>
                            <float id="max rotation speed per second in degrees">0.00</float>
                            <float id="use min rotation speed when angle to target under">0.00</float>
                            <float id="use max rotation speed when angle to target over">0.00</float>
                        </action>
                        <condition id="isTargetInArea">
                            <string id="condition" values="yesno">yes</string>
                            <float id="xOffset">0.00</float>
                            <float id="yOffset">0.00</float>
                            <float id="width">1.00</float>
                            <float id="height">1.00</float>
                            <string id="check line of sight" values="yesno">no</string>
                            <string id="ignore invisibility" values="yesno">no</string>
                            <string id="never detect invisible targets without character collision" values="yesno">no</string>
                            <normal>
                                <condition id="isTargetType">
                                    <string id="condition" values="yesno">yes</string>
                                    <string id="target groups" values="target groups" multiselect="true">PLAYERS;;CREEPS;;</string>
                                    <normal>
                                        <condition id="isSkillOnButtonAvailable">
                                            <string id="button" values="buttons">FACE_TOP</string>
                                            <normal>
                                                <action id="pressButton">
                                                    <string id="button" values="buttons">FACE_TOP</string>
                                                    <float id="duration in seconds">0.20</float>
                                                </action>
                                            </normal>
                                        </condition>
                                    </normal>
                                </condition>
                                <condition id="isSkillOnButtonAvailable">
                                    <string id="button" values="buttons">FACE_LEFT</string>
                                    <normal>
                                        <action id="pressButton">
                                            <string id="button" values="buttons">FACE_LEFT</string>
                                            <float id="duration in seconds">0.20</float>
                                        </action>
                                    </normal>
                                </condition>
                            </normal>
                        </condition>
                        <condition id="hasTarget">
                            <string id="condition" values="yesno">yes</string>
                            <normal>
                                <condition id="isTargetInArea">
                                    <string id="condition" values="yesno">no</string>
                                    <float id="xOffset">0.00</float>
                                    <float id="yOffset">0.00</float>
                                    <float id="width">1.00</float>
                                    <float id="height">1.00</float>
                                    <string id="check line of sight" values="yesno">no</string>
                                    <string id="ignore invisibility" values="yesno">no</string>
                                    <string id="never detect invisible targets without character collision" values="yesno">no</string>
                                    <normal>
                                        <action id="selectTarget">
                                            <string id="groups to select" values="target groups" multiselect="true">PLAYERS;;</string>
                                            <string id="teams" values="teams" multiselect="true">OWN_TEAM;;</string>
                                            <string id="class"></string>
                                            <string id="only check parent" values="yesno">no</string>
                                            <string id="remove if not found" values="yesno">no</string>
                                            <float id="xOffset">0.00</float>
                                            <float id="yOffset">0.00</float>
                                            <float id="width">1.00</float>
                                            <float id="height">1.00</float>
                                            <string id="compare method" values="valuecompare2">greater or equal</string>
                                            <float id="health value">0.00</float>
                                            <string id="distance check" values="distance check">NONE</string>
                                            <string id="check line of sight" values="yesno">no</string>
                                            <string id="ignore invisibility" values="yesno">no</string>
                                            <string id="never detect invisible targets without character collision" values="yesno">no</string>
                                            <string id="Comment">Find a FRIEND</string>
                                        </action>
                                        <action id="setBool">
                                            <string id="id">attackTarget</string>
                                            <string id="value" values="flagtoggle">no</string>
                                        </action>
                                    </normal>
                                </condition>
                            </normal>
                            <else>
                                <action id="selectTarget">
                                    <string id="groups to select" values="target groups" multiselect="true">PLAYERS;;CREEPS;;DESTROYABLE_OBSTACLES;;</string>
                                    <string id="teams" values="teams" multiselect="true">ENEMY_TEAM;;NEUTRAL_TEAM;;</string>
                                    <string id="class"></string>
                                    <string id="only check parent" values="yesno">no</string>
                                    <string id="remove if not found" values="yesno">no</string>
                                    <float id="xOffset">0.00</float>
                                    <float id="yOffset">0.00</float>
                                    <float id="width">0.50</float>
                                    <float id="height">0.50</float>
                                    <string id="compare method" values="valuecompare2">less</string>
                                    <float id="health value">0.00</float>
                                    <string id="distance check" values="distance check">NONE</string>
                                    <string id="check line of sight" values="yesno">no</string>
                                    <string id="ignore invisibility" values="yesno">no</string>
                                    <string id="never detect invisible targets without character collision" values="yesno">no</string>
                                    <string id="Comment">Check if there&apos;s another target to kill</string>
                                </action>
                                <condition id="getBoolEquals">
                                    <string id="id">defending</string>
                                    <string id="value" values="yesno">no</string>
                                    <normal>
                                        <condition id="hasTarget">
                                            <string id="condition" values="yesno">no</string>
                                            <normal>
                                                <action id="selectTarget">
                                                    <string id="groups to select" values="target groups" multiselect="true">PLAYERS;;</string>
                                                    <string id="teams" values="teams" multiselect="true">OWN_TEAM;;</string>
                                                    <string id="class"></string>
                                                    <string id="only check parent" values="yesno">no</string>
                                                    <string id="remove if not found" values="yesno">no</string>
                                                    <float id="xOffset">0.00</float>
                                                    <float id="yOffset">0.00</float>
                                                    <float id="width">1.00</float>
                                                    <float id="height">1.00</float>
                                                    <string id="compare method" values="valuecompare2">greater or equal</string>
                                                    <float id="health value">0.00</float>
                                                    <string id="distance check" values="distance check">NONE</string>
                                                    <string id="check line of sight" values="yesno">no</string>
                                                    <string id="ignore invisibility" values="yesno">no</string>
                                                    <string id="never detect invisible targets without character collision" values="yesno">no</string>
                                                    <string id="Comment">Find a FRIEND</string>
                                                </action>
                                                <action id="log">
                                                    <string id="text">No enemy target found, looking for a friend</string>
                                                    <string id="counter"></string>
                                                    <string id="bool"></string>
                                                </action>
                                                <action id="setBool">
                                                    <string id="id">attackTarget</string>
                                                    <string id="value" values="flagtoggle">no</string>
                                                </action>
                                            </normal>
                                        </condition>
                                    </normal>
                                </condition>
                            </else>
                        </condition>
                    </normal>
                    <or>
                        <condition id="getBoolEquals">
                            <string id="id">attackTarget</string>
                            <string id="value" values="yesno">yes</string>
                        </condition>
                        <condition id="getBoolEquals">
                            <string id="id">defending</string>
                            <string id="value" values="yesno">yes</string>
                        </condition>
                    </or>
                </orblock>
                <action id="emitMessageInArea">
                    <string id="id">stillAlive</string>
                    <string id="receive groups" values="target receive groups" multiselect="true">PLAYERS;;CREEPS;;</string>
                    <string id="receive relatives" values="target relatives" multiselect="true"></string>
                    <string id="teams" values="teamswithtarget" multiselect="true">OWN_TEAM;;</string>
                    <float id="xOffset">0.00</float>
                    <float id="yOffset">0.00</float>
                    <float id="width">1000.00</float>
                    <float id="height">1000.00</float>
                    <string id="ignore invisibility" values="yesno">yes</string>
                    <string id="never detect invisible targets without character collision" values="yesno">no</string>
                    <string id="check line of sight" values="yesno">no</string>
                </action>
                <condition id="isInArea">
                    <string id="condition" values="yesno">yes</string>
                    <string id="collision groups" values="collison groups" multiselect="true">PLAYERS;;CREEPS;;DESTROYABLE_OBSTACLES;;</string>
                    <string id="check green obstacles only" values="yesno">no</string>
                    <string id="count characters out of combat" values="yesno">yes</string>
                    <string id="teams" values="teams" multiselect="true">ENEMY_TEAM;;NEUTRAL_TEAM;;</string>
                    <string id="areaName"></string>
                    <float id="xOffset">0.00</float>
                    <float id="yOffset">0.00</float>
                    <float id="width">0.15</float>
                    <float id="height">0.15</float>
                    <string id="check line of sight" values="yesno">no</string>
                    <string id="ignore invisibility" values="yesno">no</string>
                    <string id="never detect invisible targets without character collision" values="yesno">no</string>
                    <normal>
                        <action id="pressButton">
                            <string id="button" values="buttons">FACE_LEFT</string>
                            <float id="duration in seconds">0.20</float>
                        </action>
                    </normal>
                </condition>
                <condition id="hasTarget">
                    <string id="condition" values="yesno">yes</string>
                    <string id="Comment">Move to TARGET</string>
                    <normal>
                        <condition id="getBoolEquals">
                            <string id="id">followTarget</string>
                            <string id="value" values="yesno">yes</string>
                            <normal>
                                <condition id="isTargetPosition">
                                    <string id="condition" values="yesno">no</string>
                                    <string id="target position" values="offsetposition">VERTICAL EQUAL</string>
                                    <normal>
                                        <condition id="isTargetPosition">
                                            <string id="condition" values="yesno">yes</string>
                                            <string id="target position" values="offsetposition">FRONT</string>
                                            <normal>
                                                <action id="pressStick">
                                                    <string id="direction" values="directions">FORWARD</string>
                                                    <float id="duration in seconds">0.20</float>
                                                </action>
                                            </normal>
                                            <else>
                                                <action id="pressStick">
                                                    <string id="direction" values="directions">BACKWARD</string>
                                                    <float id="duration in seconds">0.20</float>
                                                </action>
                                            </else>
                                        </condition>
                                    </normal>
                                </condition>
                                <condition id="isTargetPosition">
                                    <string id="condition" values="yesno">no</string>
                                    <string id="target position" values="offsetposition">HORIZONTAL EQUAL</string>
                                    <normal>
                                        <condition id="isTargetPosition">
                                            <string id="condition" values="yesno">yes</string>
                                            <string id="target position" values="offsetposition">ABOVE</string>
                                            <normal>
                                                <condition id="timer">
                                                    <string id="timeunit" values="timeunits">seconds</string>
                                                    <float id="time">0.60</float>
                                                    <string id="execute first time" values="yesno">yes</string>
                                                    <normal>
                                                        <action id="pressButton">
                                                            <string id="button" values="buttons">FACE_BOTTOM</string>
                                                            <float id="duration in seconds">0.00</float>
                                                        </action>
                                                        <action id="pressButton">
                                                            <string id="button" values="buttons">FACE_BOTTOM</string>
                                                            <float id="duration in seconds">0.50</float>
                                                        </action>
                                                    </normal>
                                                </condition>
                                            </normal>
                                            <else>
                                                <condition id="isTargetPosition">
                                                    <string id="condition" values="yesno">yes</string>
                                                    <string id="target position" values="offsetposition">BELOW</string>
                                                    <normal>
                                                        <action id="pressButton">
                                                            <string id="button" values="buttons">SHOULDER_LEFT</string>
                                                            <float id="duration in seconds">0.00</float>
                                                        </action>
                                                        <action id="pressButton">
                                                            <string id="button" values="buttons">SHOULDER_LEFT</string>
                                                            <float id="duration in seconds">0.10</float>
                                                        </action>
                                                    </normal>
                                                </condition>
                                            </else>
                                        </condition>
                                    </normal>
                                </condition>
                            </normal>
                        </condition>
                        <condition id="isTargetInArea">
                            <string id="condition" values="yesno">no</string>
                            <float id="xOffset">0.00</float>
                            <float id="yOffset">0.00</float>
                            <float id="width">1.00</float>
                            <float id="height">1.00</float>
                            <string id="check line of sight" values="yesno">no</string>
                            <string id="ignore invisibility" values="yesno">no</string>
                            <string id="never detect invisible targets without character collision" values="yesno">no</string>
                            <string id="Comment">Target is too far away =&gt; find nearest WP</string>
                            <normal>
                                <action id="selectTargetWaypoint" />
                                <action id="setBool">
                                    <string id="id">followTarget</string>
                                    <string id="value" values="flagtoggle">no</string>
                                </action>
                            </normal>
                        </condition>
                    </normal>
                </condition>
                <condition id="hasDestWaypoint">
                    <string id="Comment">Move to WP</string>
                    <normal>
                        <condition id="isNextWaypointPosition">
                            <string id="position" values="offsetposition">FRONT</string>
                            <normal>
                                <action id="pressStick">
                                    <string id="direction" values="directions">FORWARD</string>
                                    <float id="duration in seconds">0.20</float>
                                </action>
                            </normal>
                            <else>
                                <action id="pressStick">
                                    <string id="direction" values="directions">BACKWARD</string>
                                    <float id="duration in seconds">0.20</float>
                                </action>
                            </else>
                        </condition>
                        <condition id="isNextWaypointPosition">
                            <string id="position" values="offsetposition">ABOVE</string>
                            <normal>
                                <condition id="timer">
                                    <string id="timeunit" values="timeunits">seconds</string>
                                    <float id="time">0.60</float>
                                    <string id="execute first time" values="yesno">yes</string>
                                    <normal>
                                        <action id="pressButton">
                                            <string id="button" values="buttons">FACE_BOTTOM</string>
                                            <float id="duration in seconds">0.00</float>
                                        </action>
                                        <action id="pressButton">
                                            <string id="button" values="buttons">FACE_BOTTOM</string>
                                            <float id="duration in seconds">0.50</float>
                                        </action>
                                    </normal>
                                </condition>
                            </normal>
                            <else>
                                <condition id="isNextWaypointPosition">
                                    <string id="position" values="offsetposition">BELOW</string>
                                    <normal>
                                        <action id="pressButton">
                                            <string id="button" values="buttons">SHOULDER_LEFT</string>
                                            <float id="duration in seconds">0.00</float>
                                        </action>
                                        <action id="pressButton">
                                            <string id="button" values="buttons">SHOULDER_LEFT</string>
                                            <float id="duration in seconds">0.10</float>
                                        </action>
                                    </normal>
                                </condition>
                            </else>
                        </condition>
                    </normal>
                </condition>
            </normal>
        </root>
    </behaviour>
</enemy>
