xilk

Mote-Rules-Include.xml

Sep 16th, 2012
547
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 84.37 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- Last modified: 10/24/2012  -->
  3. <!-- This Version is slightly modified from Motenten's file. This file includes a dynamis group.  -->
  4.  
  5. <!-- IMPORTANT -->
  6.  
  7. <!--
  8.     This include, and the xmls based on it, make use of new custom trigger spells
  9.     from the "radsources" resources.  Current updated resources should include these
  10.     in the standard client.  If things don't appear to be working, check that first.
  11. -->
  12.  
  13. <!-- REQUIRED -->
  14.  
  15. <!-- The following include entries must be imported for this include to be properly functional. -->
  16.  
  17. <!-- Vars section:
  18.     ConfigurationVars (required)
  19.     UtilityVars (required)
  20.  
  21.     RecastDurations (if using RecastWarnings)
  22.     ElementalStaves (if using ElementalStaffRules or FastCastCalculations)
  23.     FastCastVars (if using FastCastCalculations)
  24.     ElementalGear (if using ObiRingCape-*)
  25.     SchWeatherConstants (if using ObiRingCape-*)
  26. -->
  27.  
  28. <!-- Sets section:
  29.     Base-Group (recommended as base for inheritance)
  30.  
  31.     Outside-Group (group required for normal outside areas; inherit from Base-Group)
  32.     Abyssea-Group (group for inside Abyssea) [Visitant status]
  33.     Campaign-Group (group for when in Campaign) [Allied Tags status]
  34.     Voidwatch-Group (group for when in Voidwatch) [Voidwatcher status]
  35.     Salvage-Group (group for when in Salvage) [*Remnants zone]
  36.     Legion-Group (group for when in Legion) [??? status]
  37.  
  38.     These groups are only required if using the areaRules include, which automatically switches
  39.     based on where you currently are.  Most of the time, only the Outside-Group needs to
  40.     have sets defined, and the remainder can be empty groups that inherit from that one.
  41. -->
  42.  
  43. <!-- Rules section:
  44.     UniversalTriggerRules - The fundamental include that this Include file is based around.
  45. -->
  46.  
  47.  
  48. <!-- Notes:
  49.     <addtochat color="12"></addtochat> - This color triggers the /tell chime.
  50. -->
  51.  
  52.  
  53. <includes xmlns="http://www.windower.net/spellcast/"
  54.    xmlns:xi="http://www.w3.org/2001/XInclude"
  55.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  56.    xsi:schemaLocation="http://www.windower.net/spellcast/ spellcastIncludeRules.xsd">
  57.   <!-- ******************* Rules ******************* -->
  58.  
  59.     <!-- Make sure things like basic area and status are set as soon as possible. -->
  60.     <include name="RunFirstUpdate">
  61.         <if advanced='"$FirstUpdate"="No"'>
  62.             <var cmd="set FirstUpdate Yes" />
  63.             <addtochat>Ran first update.</addtochat>
  64.             <if commandprefix="/trigger">
  65.                 <command>$UpdateCommand;wait 0.5;input /ma %spell %spellTargetRaw</command>
  66.             </if>
  67.             <else>
  68.                 <command>$UpdateCommand;wait 0.5;input %commandprefix %spell %spellTargetRaw</command>
  69.             </else>
  70.             <cancelspell />
  71.             <return />
  72.         </if>
  73.     </include>
  74.  
  75.     <!-- Do not use rules if level 50 or lower. -->
  76.     <include name="LevelRequirement">
  77.         <if notmainjoblvlgt="50">
  78.             <return />
  79.         </if>
  80.     </include>
  81.  
  82.     <!-- These stop any gear changes if you're unable to take particular actions. -->
  83.     <include name="ReturnRules">
  84.         <!-- The bug that required this should be fixed -->
  85.         <if spelltargetraw="&lt;st*">
  86.             <return />
  87.         </if>
  88.  
  89.         <!-- Allow manipulation of equipment sets while under adverse effects.
  90.             Do not perform restriction checks on any trigger actions. -->
  91.         <if nottype="Trigger">
  92.             <if status="dead">
  93.                 <!-- Can't do anything if you're dead -->
  94.                 <addtochat>DEAD!</addtochat>
  95.                 <return />
  96.             </if>
  97.             <elseif BuffActive="Sleep|Petrification|Stun|Terror|Charm">
  98.                 <!-- Ignoring Illusion|Egg|Costume -->
  99.                 <addtochat color="28">Cannot act.</addtochat>
  100.                 <return />
  101.             </elseif>
  102.             <elseif spell="Ranged">
  103.                 <if advanced='%spellTargetDistance &gt; 24.9'>
  104.                     <addtochat color="28">Out of range.</addtochat>
  105.                     <return />
  106.                 </if>
  107.             </elseif>
  108.             <elseif BuffActive="Silence|Mute|Omerta">
  109.                 <if type="*Magic|BardSong|Ninjutsu">
  110.                     <addtochat color="28">Silenced.</addtochat>
  111.                     <return />
  112.                 </if>
  113.             </elseif>
  114.             <elseif BuffActive="Amnesia|Impairment">
  115.                 <if type="Weaponskill|JobAbility|Scholar|PetCommand|BloodPact*|CorsairRoll|CorsairShot">
  116.                     <addtochat color="28">Amnesiad.</addtochat>
  117.                     <return />
  118.                 </if>
  119.             </elseif>
  120.             <elseif type="PetCommand|BloodPact*" PetIsValid="false">
  121.                 <addtochat color="28">No valid pet.</addtochat>
  122.                 <return />
  123.             </elseif>
  124.             <!-- <elseif type="Weaponskill">
  125.                <if mode="OR" TPLT="80" advanced='%spellTargetDistance &gt; $WSDistance'>
  126.                    <cancelspell />
  127.                    <addtochat color="28">%spell cancelled: TP or distance.</addtochat>
  128.                    <return />
  129.                </if>
  130.            </elseif> -->
  131.         </if>
  132.     </include>
  133.  
  134.     <!-- Do not change gear if spell is a transport spell used on self (Warp II/Retrace on others is fine). -->
  135.     <include name="CleanTransportation">
  136.         <if spell="Warp*|Teleport*|Recall*|Retrace" SpellTargetType="Self">
  137.             <return />
  138.         </if>
  139.     </include>
  140.  
  141.     <!-- area variable rule -->
  142.     <include name="AreaRules">
  143.         <!-- Determine general area, as some give access to special gear, or differences in approach to gearing. -->
  144.         <if BuffActive="Voidwatcher">
  145.             <var cmd="set area Voidwatch" />
  146.             <var cmd="set Idlearea Field" />
  147.         </if>
  148.         <elseif BuffActive="Allied Tags">
  149.             <var cmd="set area Campaign" />
  150.             <var cmd="set Idlearea Field" />
  151.         </elseif>
  152.         <elseif BuffActive="Visitant">
  153.             <var cmd="set area Abyssea" />
  154.             <var cmd="set Idlearea Field" />
  155.         </elseif>
  156.         <elseif advanced='"%area"!="$LastKnownarea"'>
  157.             <if area="*Remnants">
  158.                 <var cmd="set area Salvage" />
  159.             </if>
  160.             <elseif area="Nyzul Isle|Ilrusi Atoll|Leujaoam Sanctum|Mamool Ja Training Grounds|Lebros Cavern|Periqia">
  161.                 <var cmd="set area Assault" />
  162.             </elseif>
  163.             <elseif area="*Legion">
  164.                 <var cmd="set area Legion" />
  165.             </elseif>
  166.             <elseif area="Dynamis*">
  167.                 <var cmd="set area Dynamis" />
  168.             </elseif>
  169.             <else>
  170.                 <var cmd="set area Outside" />
  171.             </else>
  172.  
  173.             <!-- Define idle set based on town or elsewhere -->
  174.             <if area="Ru'Lude Gardens|Nashmau|Tavnazian Safehold|Port*|Bastok*|Windurst*|*San d'Oria|*Jeuno|*Whitegate" notarea="Dynamis*|*[S]">
  175.                 <var cmd="set Idlearea Town" />
  176.             </if>
  177.             <else>
  178.                 <var cmd="set Idlearea Field" />
  179.             </else>
  180.         </elseif>
  181.  
  182.         <var cmd="set LastKnownarea %area" />
  183.  
  184.         <!-- Change group based on area -->
  185.         <if notgroup="$area-Group">
  186.             <command>sc group $area-Group</command>
  187.         </if>
  188.     </include>
  189.  
  190.     <!-- spell Cancel Rules -->
  191.     <include name="SpellCancel">
  192.         <if spell="Sneak" BuffActive="Sneak" SpellTargetType="Self">
  193.             <midcastdelay delay="1" />
  194.             <command when="midcast">cancel 71</command>
  195.         </if>
  196.         <elseif spell="Spectral Jig" BuffActive="Sneak">
  197.             <command when="precast">cancel 71</command>
  198.         </elseif>
  199.         <elseif spell="Monomi*" BuffActive="Sneak">
  200.             <midcastdelay delay="2.5" />
  201.             <command when="midcast">cancel 71</command>
  202.         </elseif>
  203.         <elseif spell="Utsusemi: Ichi" buffactive="Copy Image*" NotBuffActive="Silence|Mute|Omerta|Obliviscence">
  204.             <if NotBuffActive="Copy Image (3)|Copy Image (4)">
  205.                 <midcastdelay delay="2.5" />
  206.                 <command when="midcast">cancel 66</command>
  207.                 <command when="midcast">cancel 446</command>
  208.             </if>
  209.             <else>
  210.                 <cancelspell />
  211.                 <return />
  212.             </else>
  213.         </elseif>
  214.         <elseif spell="Stoneskin" BuffActive="Stoneskin">
  215.             <midcastdelay delay="2.8" />
  216.             <command when="midcast">cancel 37</command>
  217.         </elseif>
  218.     </include>
  219.  
  220.     <!-- Lock various slots when using particular gear. -->
  221.     <include name="EquipmentLockRules">
  222.         <if mode="OR" advanced='"$LockMain"=="Yes"' equipmain="$TrialWeapon">
  223.             <changelock slot="main|sub|range" when="All" lock="true" />
  224.         </if>
  225.         <if equiprange="$PullWeapons|Soulgauger*">
  226.             <changelock slot="range|ammo" when="All" lock="true" />
  227.         </if>
  228.         <if equipfeet="Powder Boots|Sprint Shoes">
  229.             <changelock slot="feet" when="All" lock="true" />
  230.         </if>
  231.         <if equiphead="Reraise Hairpin">
  232.             <changelock slot="head" when="All" lock="true" />
  233.         </if>
  234.         <if equipneck="Sanctus Rosary|Reraise Gorget|Lavalier +1">
  235.             <changelock slot="neck" when="All" lock="true" />
  236.         </if>
  237.         <if equiplear="$ReraiseEarrings">
  238.             <changelock slot="lear" when="All" lock="true" />
  239.         </if>
  240.         <if equiprear="$ReraiseEarrings">
  241.             <changelock slot="rear" when="All" lock="true" />
  242.         </if>
  243.         <if equiplring="Emperor Band|Decennial Ring">
  244.             <changelock slot="lring" when="All" lock="true" />
  245.         </if>
  246.         <if equiprring="Emperor Band|Decennial Ring">
  247.             <changelock slot="rring" when="All" lock="true" />
  248.         </if>
  249.  
  250.         <!-- Only test for teleport stuff in town to avoid tons of unneeded checks. -->
  251.         <if advanced='"$Idlearea"="Town"'>
  252.             <if equiphead="$TeleportHeads">
  253.                 <changelock slot="head" when="All" lock="true" />
  254.             </if>
  255.             <if equipneck="$TeleportNecks">
  256.                 <changelock slot="neck" when="All" lock="true" />
  257.             </if>
  258.             <if equiplear="$TeleportEarrings">
  259.                 <changelock slot="lear" when="All" lock="true" />
  260.             </if>
  261.             <if equiprear="$TeleportEarrings">
  262.                 <changelock slot="rear" when="All" lock="true" />
  263.             </if>
  264.             <if equiplring="$TeleportRings">
  265.                 <changelock slot="lring" when="All" lock="true" />
  266.             </if>
  267.             <if equiprring="$TeleportRings">
  268.                 <changelock slot="rring" when="All" lock="true" />
  269.             </if>
  270.             <if equipbody="Tidal Talisman">
  271.                 <changelock slot="body" when="All" lock="true" />
  272.             </if>
  273.         </if>
  274.     </include>
  275.  
  276.     <!-- Change to Convert gear and set the $Convert variable, which should be
  277.         part of the CurrentSet construction.
  278.         $Convert variable will be reset to 'None' after 10 seconds, if
  279.         it hadn't already been reset in the job rules. -->
  280.     <include name="ConvertRule">
  281.         <if spell="Convert">
  282.             <equip when="precast" set="%spell" />
  283.             <var cmd="set ConvertSet Convert" />
  284.             <command when="Aftercast">wait 15;$UpdateCommand</command>
  285.         </if>
  286.     </include>
  287.  
  288.     <!-- Handle universal toggle and cycle triggers -->
  289.     <!-- This is a REQUIRED include. -->
  290.     <include name="UniversalTriggerRules">
  291.         <if type="Trigger">
  292.             <if skill="ControlTrigger">
  293.                 <cancelspell />
  294.  
  295.                 <!-- Handle various types of resets. -->
  296.                 <if spell="Reset">
  297.                     <if SpellTargetRaw=".Defense">
  298.                         <var cmd="set MagicalDefense None" />
  299.                         <var cmd="set PhysicalDefense None" />
  300.                         <if status="Engaged">
  301.                             <var cmd="set Movement None" />
  302.                         </if>
  303.  
  304.                         <addtochat>PDT/MDT reset.</addtochat>
  305.                     </if>
  306.                     <elseif SpellTargetRaw="SteppedDefense">
  307.                         <if advanced='"$MagicalDefense" != "None"'>
  308.                             <var cmd="set MagicalDefense None" />
  309.                             <addtochat>Magical Defense reset.</addtochat>
  310.                         </if>
  311.                         <elseif advanced='"$PhysicalDefense" != "None"'>
  312.                             <var cmd="set PhysicalDefense None" />
  313.                             <addtochat>Physical Defense reset.</addtochat>
  314.                         </elseif>
  315.                     </elseif>
  316.                     <elseif SpellTargetRaw="All|Full">
  317.                         <var cmd="set Movement None" />
  318.                         <var cmd="set MagicalDefense None" />
  319.                         <var cmd="set PhysicalDefense None" />
  320.                         <var cmd="set FightingMode Offense" />
  321.                         <var cmd="set AttackMode Normal" />
  322.                         <var cmd="set FightingFocus Normal" />
  323.                         <var cmd="set WSMode Default" />
  324.                         <var cmd="set AggressiveMode Off" />
  325.                         <var cmd="set CastingMode Normal" />
  326.  
  327.                         <addtochat>All modes reset.</addtochat>
  328.                     </elseif>
  329.                     <elseif SpellTargetRaw="Physical*">
  330.                         <var cmd="set PhysicalDefense None" />
  331.                         <addtochat>Physical Defense reset.</addtochat>
  332.                     </elseif>
  333.                     <elseif SpellTargetRaw="Casting*">
  334.                         <var cmd="set CastingMode Normal" />
  335.                         <addtochat>Casting Mode reset.</addtochat>
  336.                     </elseif>
  337.                     <elseif SpellTargetRaw="Magical*">
  338.                         <var cmd="set MagicalDefense None" />
  339.                         <addtochat>Magical Defense reset.</addtochat>
  340.                     </elseif>
  341.                     <elseif SpellTargetRaw="Debug">
  342.                         <var cmd="set Debug 0" />
  343.                         <addtochat>Debug off.</addtochat>
  344.                     </elseif>
  345.                 </if>
  346.                 <elseif spell="Update">
  347.                     <if SpellTargetRaw="WSDistance">
  348.                         <if TargetType="Monster">
  349.                             <var cmd="set WSDistance %TargetDistance" />
  350.                             <addtochat>Distance Variable: $WSDistance</addtochat>
  351.                         </if>
  352.                         <else>
  353.                             <addtochat>Invalid target for weaponskill distance.</addtochat>
  354.                         </else>
  355.                     </if>
  356.                     <elseif SpellTargetRaw="Debug">
  357.                         <var cmd="set Debug 1" />
  358.                         <addtochat>Debug active.</addtochat>
  359.                     </elseif>
  360.                 </elseif>
  361.             </if>
  362.  
  363.             <elseif skill="ElementalTrigger">
  364.                 <!-- MDT elemental triggers.  Other elemental triggers handled per job. -->
  365.                 <if SpellTargetRaw="MDT|Resist">
  366.                     <cancelspell />
  367.    
  368.                     <var cmd="set MagicalDefElement %spellElement" />
  369.  
  370.                     <if advanced='"$MagicalDefense" != "None"'>
  371.                         <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
  372.                     </if>
  373.  
  374.                     <addtochat>Magical Defense Element: $MagicalDefElement ($MagicalDefMode)</addtochat>
  375.                 </if>
  376.             </elseif>
  377.  
  378.             <elseif skill="CombatTrigger">
  379.                 <cancelspell />
  380.  
  381.                 <!-- Physical and magical defense modes -->
  382.  
  383.                 <if spell="PhysicalDefense">
  384.                     <!-- Handle changes in physical defense -->
  385.                     <if SpellTargetRaw=".Off">
  386.                         <var cmd="set PhysicalDefense None" />
  387.                         <addtochat>Physical Defense: $PhysicalDefense</addtochat>
  388.                     </if>
  389.                     <elseif SpellTargetRaw=".On">
  390.                         <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
  391.                         <addtochat>Physical Defense: $PhysicalDefense</addtochat>
  392.                     </elseif>
  393.                     <elseif SpellTargetRaw=".Toggle">
  394.                         <if advanced='"$PhysicalDefense" = "None"'>
  395.                             <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
  396.                         </if>
  397.                         <else>
  398.                             <var cmd="set PhysicalDefense None" />
  399.                         </else>
  400.  
  401.                         <addtochat>Physical Defense: $PhysicalDefense</addtochat>
  402.                     </elseif>
  403.                     <elseif SpellTargetRaw="Mode:*|PDT|Evasion|Shield|Defense">
  404.                         <if SpellTargetRaw="PDT|*:PDT" advanced='"$HasPDT" = "Yes"'>
  405.                             <var cmd="set PhysicalDefMode PDT" />
  406.                         </if>
  407.                         <elseif SpellTargetRaw="Evasion|*:Evasion" advanced='"$HasEvasion" = "Yes"'>
  408.                             <var cmd="set PhysicalDefMode Evasion" />
  409.                         </elseif>
  410.                         <elseif SpellTargetRaw="Shield|*:Shield" advanced='"$HasShield" = "Yes"'>
  411.                             <var cmd="set PhysicalDefMode Shield" />
  412.                         </elseif>
  413.                         <elseif SpellTargetRaw="Defense|*:Defense" advanced='"$HasDefense" = "Yes"'>
  414.                             <var cmd="set PhysicalDefMode Defense" />
  415.                         </elseif>
  416.                         <else>
  417.                             <addtochat>Unknown or invalid mode: [%spellTargetRaw]</addtochat>
  418.                             <return />
  419.                         </else>
  420.    
  421.                         <if advanced='"$PhysicalDefense" != "None"'>
  422.                             <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
  423.                         </if>
  424.    
  425.                         <addtochat>Physical Defense Mode: $PhysicalDefMode</addtochat>
  426.                     </elseif>
  427.                     <elseif SpellTargetRaw=".Cycle">
  428.                         <!-- Order: PDT > Evasion > Defense > Shield [Counter not used] -->
  429.                         <if advanced='"$PhysicalDefMode" = "PDT"'>
  430.                             <if  advanced='"$HasEvasion" = "Yes"'>
  431.                                 <var cmd="set PhysicalDefMode Evasion" />
  432.                             </if>
  433.                             <elseif  advanced='"$HasDefense" = "Yes"'>
  434.                                 <var cmd="set PhysicalDefMode Defense" />
  435.                             </elseif>
  436.                             <elseif  advanced='"$HasShield" = "Yes"'>
  437.                                 <var cmd="set PhysicalDefMode Shield" />
  438.                             </elseif>
  439.                         </if>
  440.                         <elseif advanced='"$PhysicalDefMode" = "Evasion"'>
  441.                             <if  advanced='"$HasDefense" = "Yes"'>
  442.                                 <var cmd="set PhysicalDefMode Defense" />
  443.                             </if>
  444.                             <elseif  advanced='"$HasShield" = "Yes"'>
  445.                                 <var cmd="set PhysicalDefMode Shield" />
  446.                             </elseif>
  447.                             <elseif  advanced='"$HasPDT" = "Yes"'>
  448.                                 <var cmd="set PhysicalDefMode PDT" />
  449.                             </elseif>
  450.                         </elseif>
  451.                         <elseif advanced='"$PhysicalDefMode" = "Defense"'>
  452.                             <if  advanced='"$HasShield" = "Yes"'>
  453.                                 <var cmd="set PhysicalDefMode Shield" />
  454.                             </if>
  455.                             <elseif  advanced='"$HasPDT" = "Yes"'>
  456.                                 <var cmd="set PhysicalDefMode PDT" />
  457.                             </elseif>
  458.                             <elseif  advanced='"$HasEvasion" = "Yes"'>
  459.                                 <var cmd="set PhysicalDefMode Evasion" />
  460.                             </elseif>
  461.                         </elseif>
  462.                         <elseif advanced='"$PhysicalDefMode" = "Shield"'>
  463.                             <if  advanced='"$HasPDT" = "Yes"'>
  464.                                 <var cmd="set PhysicalDefMode PDT" />
  465.                             </if>
  466.                             <elseif  advanced='"$HasEvasion" = "Yes"'>
  467.                                 <var cmd="set PhysicalDefMode Evasion" />
  468.                             </elseif>
  469.                             <elseif  advanced='"$HasDefense" = "Yes"'>
  470.                                 <var cmd="set PhysicalDefMode Defense" />
  471.                             </elseif>
  472.                         </elseif>
  473.                         <else>
  474.                             <if  advanced='"$HasPDT" = "Yes"'>
  475.                                 <var cmd="set PhysicalDefMode PDT" />
  476.                             </if>
  477.                             <elseif  advanced='"$HasEvasion" = "Yes"'>
  478.                                 <var cmd="set PhysicalDefMode Evasion" />
  479.                             </elseif>
  480.                             <elseif  advanced='"$HasDefense" = "Yes"'>
  481.                                 <var cmd="set PhysicalDefMode Defense" />
  482.                             </elseif>
  483.                             <elseif  advanced='"$HasShield" = "Yes"'>
  484.                                 <var cmd="set PhysicalDefMode Shield" />
  485.                             </elseif>
  486.                             <else>
  487.                                  <addtochat>No valid defense type available.</addtochat>
  488.                                  <return />
  489.                             </else>
  490.                         </else>
  491.    
  492.                         <if advanced='"$PhysicalDefense" != "None"'>
  493.                             <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
  494.                         </if>
  495.  
  496.                         <addtochat>Physical Defense Type: $PhysicalDefMode</addtochat>
  497.                     </elseif>
  498.                     <elseif SpellTargetRaw=".Reverse">
  499.                         <!-- Order: PDT < Evasion < Defense < Shield [Counter not used] -->
  500.                         <if advanced='"$PhysicalDefMode" = "PDT"'>
  501.                             <if  advanced='"$HasShield" = "Yes"'>
  502.                                 <var cmd="set PhysicalDefMode Shield" />
  503.                             </if>
  504.                             <elseif  advanced='"$HasDefense" = "Yes"'>
  505.                                 <var cmd="set PhysicalDefMode Defense" />
  506.                             </elseif>
  507.                             <elseif  advanced='"$HasEvasion" = "Yes"'>
  508.                                 <var cmd="set PhysicalDefMode Evasion" />
  509.                             </elseif>
  510.                         </if>
  511.                         <elseif advanced='"$PhysicalDefMode" = "Evasion"'>
  512.                             <if  advanced='"$HasPDT" = "Yes"'>
  513.                                 <var cmd="set PhysicalDefMode PDT" />
  514.                             </if>
  515.                             <elseif  advanced='"$HasShield" = "Yes"'>
  516.                                 <var cmd="set PhysicalDefMode Shield" />
  517.                             </elseif>
  518.                             <elseif  advanced='"$HasDefense" = "Yes"'>
  519.                                 <var cmd="set PhysicalDefMode Defense" />
  520.                             </elseif>
  521.                         </elseif>
  522.                         <elseif advanced='"$PhysicalDefMode" = "Defense"'>
  523.                             <if  advanced='"$HasEvasion" = "Yes"'>
  524.                                 <var cmd="set PhysicalDefMode Evasion" />
  525.                             </if>
  526.                             <elseif  advanced='"$HasPDT" = "Yes"'>
  527.                                 <var cmd="set PhysicalDefMode PDT" />
  528.                             </elseif>
  529.                             <elseif  advanced='"$HasShield" = "Yes"'>
  530.                                 <var cmd="set PhysicalDefMode Shield" />
  531.                             </elseif>
  532.                         </elseif>
  533.                         <elseif advanced='"$PhysicalDefMode" = "Shield"'>
  534.                             <if  advanced='"$HasDefense" = "Yes"'>
  535.                                 <var cmd="set PhysicalDefMode Defense" />
  536.                             </if>
  537.                             <elseif  advanced='"$HasEvasion" = "Yes"'>
  538.                                 <var cmd="set PhysicalDefMode Evasion" />
  539.                             </elseif>
  540.                             <elseif  advanced='"$HasPDT" = "Yes"'>
  541.                                 <var cmd="set PhysicalDefMode PDT" />
  542.                             </elseif>
  543.                         </elseif>
  544.                         <else>
  545.                             <if  advanced='"$HasShield" = "Yes"'>
  546.                                 <var cmd="set PhysicalDefMode Shield" />
  547.                             </if>
  548.                             <elseif  advanced='"$HasDefense" = "Yes"'>
  549.                                 <var cmd="set PhysicalDefMode Defense" />
  550.                             </elseif>
  551.                             <elseif  advanced='"$HasEvasion" = "Yes"'>
  552.                                 <var cmd="set PhysicalDefMode Evasion" />
  553.                             </elseif>
  554.                             <elseif  advanced='"$HasPDT" = "Yes"'>
  555.                                 <var cmd="set PhysicalDefMode PDT" />
  556.                             </elseif>
  557.                             <else>
  558.                                  <addtochat>No valid defense type available.</addtochat>
  559.                                  <return />
  560.                             </else>
  561.                         </else>
  562.    
  563.                         <if advanced='"$PhysicalDefense" != "None"'>
  564.                             <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
  565.                         </if>
  566.  
  567.                         <addtochat>Physical Defense Type: $PhysicalDefMode</addtochat>
  568.                     </elseif>
  569.                     <else>
  570.                         <!-- Default: Turn on -->
  571.                         <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
  572.                         <addtochat>Physical Defense: $PhysicalDefense</addtochat>
  573.                     </else>
  574.                 </if>
  575.                 <elseif spell="MagicalDefense">
  576.                     <!-- Turn Magical Defense on and off -->
  577.                     <if SpellTargetRaw=".On">
  578.                         <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
  579.                         <addtochat>Magical Defense: $MagicalDefense</addtochat>
  580.                     </if>
  581.                     <elseif SpellTargetRaw=".Off">
  582.                         <var cmd="set MagicalDefense None" />
  583.                         <addtochat>Magical Defense: $MagicalDefense</addtochat>
  584.                     </elseif>
  585.                     <elseif SpellTargetRaw=".Toggle">
  586.                         <if advanced='"$MagicalDefense" = "None"'>
  587.                             <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
  588.                         </if>
  589.                         <else>
  590.                             <var cmd="set MagicalDefense None" />
  591.                         </else>
  592.  
  593.                         <addtochat>Magical Defense: $MagicalDefense</addtochat>
  594.                     </elseif>
  595.                     <elseif SpellTargetRaw="Mode:*|MDT|Resist">
  596.                         <if SpellTargetRaw="MDT|*:MDT">
  597.                             <var cmd="set MagicalDefMode MDT" />
  598.                         </if>
  599.                         <elseif SpellTargetRaw="Resist|*:Resist">
  600.                             <var cmd="set MagicalDefMode Resist" />
  601.                         </elseif>
  602.  
  603.                         <addtochat>Magical Defense Mode: $MagicalDefMode ($MagicalDefElement)</addtochat>
  604.                     </elseif>
  605.                     <elseif SpellTargetRaw=".Cycle|.Reverse">
  606.                         <if advanced='"$MagicalDefMode" = "MDT"'>
  607.                             <var cmd="set MagicalDefMode Resist" />
  608.                         </if>
  609.                         <else>
  610.                             <var cmd="set MagicalDefMode MDT" />
  611.                         </else>
  612.  
  613.                         <addtochat>Magical Defense Mode: $MagicalDefMode ($MagicalDefElement)</addtochat>
  614.                     </elseif>
  615.                     <elseif SpellTargetRaw="Element:*">
  616.                         <if SpellTargetRaw="*:Fire">
  617.                             <var cmd="set MagicalDefElement Fire" />
  618.                         </if>
  619.                         <elseif SpellTargetRaw="*:Earth|*:Stone">
  620.                             <var cmd="set MagicalDefElement Earth" />
  621.                         </elseif>
  622.                         <elseif SpellTargetRaw="*:Water">
  623.                             <var cmd="set MagicalDefElement Water" />
  624.                         </elseif>
  625.                         <elseif SpellTargetRaw="*:Air|*:Aero|*:Wind">
  626.                             <var cmd="set MagicalDefElement Wind" />
  627.                         </elseif>
  628.                         <elseif SpellTargetRaw="*:Ice">
  629.                             <var cmd="set MagicalDefElement Ice" />
  630.                         </elseif>
  631.                         <elseif SpellTargetRaw="*:Lightning|*:Thunder">
  632.                             <var cmd="set MagicalDefElement Thunder" />
  633.                         </elseif>
  634.                         <elseif SpellTargetRaw="*:Light">
  635.                             <var cmd="set MagicalDefElement Light" />
  636.                         </elseif>
  637.                         <elseif SpellTargetRaw="*:Dark">
  638.                             <var cmd="set MagicalDefElement Dark" />
  639.                         </elseif>
  640.                         <elseif SpellTargetRaw="*:Any|*:None">
  641.                             <var cmd="set MagicalDefElement Any" />
  642.                         </elseif>
  643.                         <elseif SpellTargetRaw="*:All">
  644.                             <var cmd="set MagicalDefElement All" />
  645.                         </elseif>
  646.                         <else>
  647.                             <addtochat>Unknown Magical Defense element: [%spellTargetRaw]</addtochat>
  648.                             <return />
  649.                         </else>
  650.  
  651.                         <addtochat>Magical Defense Element: $MagicalDefElement</addtochat>
  652.                     </elseif>
  653.                     <else>
  654.                         <!-- Default: Turn on -->
  655.                         <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
  656.                         <addtochat>Magical Defense: $MagicalDefense</addtochat>
  657.                     </else>
  658.  
  659.                 </elseif>
  660.  
  661.                 <!-- Idle/Resting modes -->
  662.  
  663.                 <elseif spell="IdleMode|CycleIdleMode">
  664.                     <!-- Customize these in job xml. -->
  665.                 </elseif>
  666.                 <elseif spell="RestingMode|CycleRestingMode">
  667.                     <!-- Customize these in job xml. -->
  668.                 </elseif>
  669.  
  670.                 <!-- Offensive and Defensive modes -->
  671.  
  672.                 <!-- spellTargetRaw will be analyzed to determine which aspect of combat is being set,
  673.                     and how.
  674.  
  675.                     Modes:
  676.                     Aggressive [on|off]
  677.                     Offense (general fighting mode)
  678.                     Defense (general fighting mode)
  679.                     WS (focus for weaponskills separate from standard focus)
  680.                 -->
  681.  
  682.                 <elseif spell="CombatMode">
  683.                     <if SpellTargetRaw="Aggressive|Aggressive:*">
  684.                         <if SpellTargetRaw="*:Off">
  685.                             <var cmd="set AggressiveMode Off" />
  686.                         </if>
  687.                         <else>
  688.                             <var cmd="set AggressiveMode On" />
  689.                         </else>
  690.  
  691.                         <addtochat>Aggressive Mode: $AggressiveMode</addtochat>
  692.                     </if>
  693.                     <elseif SpellTargetRaw="Kite|Kite:*">
  694.                         <if SpellTargetRaw="*:Off">
  695.                             <var cmd="set KiteMode None" />
  696.                         </if>
  697.                         <elseif SpellTargetRaw="*:Toggle">
  698.                             <if advanced='"$KiteMode"="Kite"'>
  699.                                 <var cmd="set KiteMode None" />
  700.                             </if>
  701.                             <else>
  702.                                 <var cmd="set KiteMode Kite" />
  703.                             </else>
  704.                         </elseif>
  705.                         <else>
  706.                             <var cmd="set KiteMode Kite" />
  707.                         </else>
  708.  
  709.                         <addtochat>Kiting: $KiteMode</addtochat>
  710.                     </elseif>
  711.                    
  712.                     <elseif SpellTargetRaw="Offense:*">
  713.                         <if SpellTargetRaw="*:Normal">
  714.                             <var cmd="set OffenseMode Normal" />
  715.                         </if>
  716.                         <elseif SpellTargetRaw="*:Att|*:Attack">
  717.                             <var cmd="set OffenseMode Att" />
  718.                         </elseif>
  719.                         <elseif SpellTargetRaw="*:Acc|*:Accuracy">
  720.                             <var cmd="set OffenseMode Acc" />
  721.                         </elseif>
  722.                         <elseif SpellTargetRaw="*:MaxAcc|*:MaxAccuracy">
  723.                             <var cmd="set OffenseMode MaxAcc" />
  724.                         </elseif>
  725.                         <elseif SpellTargetRaw="*:Str">
  726.                             <var cmd="set OffenseMode Str" />
  727.                         </elseif>
  728.                         <elseif SpellTargetRaw="*:Crit">
  729.                             <var cmd="set OffenseMode Crit" />
  730.                         </elseif>
  731.                         <elseif SpellTargetRaw="*:LowDmg">
  732.                             <var cmd="set OffenseMode LowDmg" />
  733.                         </elseif>
  734.                         <else>
  735.                             <var cmd="set OffenseMode Normal" />
  736.                         </else>
  737.  
  738.                         <addtochat>Offense Mode: $OffenseMode</addtochat>
  739.                     </elseif>
  740.                     <elseif SpellTargetRaw="Defense:*">
  741.                         <if SpellTargetRaw="*:Eva|*:Evasion">
  742.                             <var cmd="set PTankMode Evasion" />
  743.                         </if>
  744.                         <elseif SpellTargetRaw="*:Shield">
  745.                             <var cmd="set PTankMode Shield" />
  746.                         </elseif>
  747.                         <elseif SpellTargetRaw="*:Counter">
  748.                             <var cmd="set PTankMode Counter" />
  749.                         </elseif>
  750.                         <elseif SpellTargetRaw="*:PDT">
  751.                             <var cmd="set PTankMode PDT" />
  752.                         </elseif>
  753.                         <else>
  754.                             <var cmd="set PTankMode Normal" />
  755.                         </else>
  756.  
  757.                         <if advanced='"$PTankMode"="Normal" OR "$Has$PTankMode"="Yes"'>
  758.                             <var cmd="set DefenseMode $PTankMode" />
  759.                         </if>
  760.                         <else>
  761.                             <addtochat>$PTankMode is unavailable.</addtochat>
  762.                         </else>
  763.  
  764.                         <addtochat>Defense Mode: $DefenseMode</addtochat>
  765.                     </elseif>
  766.                     <elseif SpellTargetRaw="WS:*|Weaponskill:*">
  767.                         <if SpellTargetRaw="*:Acc|*:Accuracy">
  768.                             <var cmd="set WSMode Accuracy" />
  769.                         </if>
  770.                         <elseif SpellTargetRaw="*:Att|*:Attack">
  771.                             <var cmd="set WSMode Attack" />
  772.                         </elseif>
  773.                         <elseif SpellTargetRaw="*:Mod">
  774.                             <var cmd="set WSMode Mod" />
  775.                         </elseif>
  776.                         <elseif SpellTargetRaw="*:Crit">
  777.                             <var cmd="set WSMode Crit" />
  778.                         </elseif>
  779.                         <else>
  780.                             <var cmd="set WSMode Default" />
  781.                         </else>
  782.  
  783.                         <addtochat>Weaponskill Focus: $WSMode</addtochat>
  784.                     </elseif>
  785.                     <elseif SpellTargetRaw="Cycle(*)">
  786.                         <if SpellTargetRaw="*(Offense)">
  787.                             <if advanced='"$OffenseMode"="Normal"'>
  788.                                 <var cmd="set OffenseMode Att" />
  789.                             </if>
  790.                             <elseif advanced='"$OffenseMode"="Att"'>
  791.                                 <var cmd="set OffenseMode Acc" />
  792.                             </elseif>
  793.                             <elseif advanced='"$OffenseMode"="Acc"'>
  794.                                 <var cmd="set OffenseMode MaxAcc" />
  795.                             </elseif>
  796.                             <elseif advanced='"$OffenseMode"="MaxAcc"'>
  797.                                 <var cmd="set OffenseMode Str" />
  798.                             </elseif>
  799.                             <elseif advanced='"$OffenseMode"="Str"'>
  800.                                 <var cmd="set OffenseMode Crit" />
  801.                             </elseif>
  802.                             <elseif advanced='"$OffenseMode"="Crit"'>
  803.                                 <var cmd="set OffenseMode LowDmg" />
  804.                             </elseif>
  805.                             <elseif advanced='"$OffenseMode"="LowDmg"'>
  806.                                 <var cmd="set OffenseMode Normal" />
  807.                             </elseif>
  808.                             <else>
  809.                                 <var cmd="set OffenseMode Normal" />
  810.                             </else>
  811.                            
  812.                             <addtochat>Offense Mode: $OffenseMode</addtochat>
  813.                         </if>
  814.                         <elseif SpellTargetRaw="*(Defense)">
  815.                             <!-- Order: Normal > Evasion > PDT > Shield > Counter -->
  816.                          
  817.                             <if advanced='"$DefenseMode" = "Normal"'>
  818.                                 <if  advanced='"$HasEvasion" = "Yes"'>
  819.                                     <var cmd="set DefenseMode Evasion" />
  820.                                 </if>
  821.                                 <elseif  advanced='"$HasPDT" = "Yes"'>
  822.                                     <var cmd="set DefenseMode PDT" />
  823.                                 </elseif>
  824.                                 <elseif  advanced='"$HasShield" = "Yes"'>
  825.                                     <var cmd="set DefenseMode Shield" />
  826.                                 </elseif>
  827.                                 <elseif  advanced='"$HasCounter" = "Yes"'>
  828.                                     <var cmd="set DefenseMode Counter" />
  829.                                 </elseif>
  830.                             </if>
  831.                             <elseif advanced='"$DefenseMode" = "Evasion"'>
  832.                                 <if  advanced='"$HasPDT" = "Yes"'>
  833.                                     <var cmd="set DefenseMode PDT" />
  834.                                 </if>
  835.                                 <elseif  advanced='"$HasShield" = "Yes"'>
  836.                                     <var cmd="set DefenseMode Shield" />
  837.                                 </elseif>
  838.                                 <elseif  advanced='"$HasCounter" = "Yes"'>
  839.                                     <var cmd="set DefenseMode Counter" />
  840.                                 </elseif>
  841.                                 <else>
  842.                                     <var cmd="set DefenseMode Normal" />
  843.                                 </else>
  844.                             </elseif>
  845.                             <elseif advanced='"$DefenseMode" = "PDT"'>
  846.                                 <if  advanced='"$HasShield" = "Yes"'>
  847.                                     <var cmd="set DefenseMode Shield" />
  848.                                 </if>
  849.                                 <elseif  advanced='"$HasCounter" = "Yes"'>
  850.                                     <var cmd="set DefenseMode Counter" />
  851.                                 </elseif>
  852.                                 <else>
  853.                                     <var cmd="set DefenseMode Normal" />
  854.                                 </else>
  855.                             </elseif>
  856.                             <elseif advanced='"$DefenseMode" = "Shield"'>
  857.                                 <if  advanced='"$HasCounter" = "Yes"'>
  858.                                     <var cmd="set DefenseMode Counter" />
  859.                                 </if>
  860.                                 <else>
  861.                                     <var cmd="set DefenseMode Normal" />
  862.                                 </else>
  863.                             </elseif>
  864.                             <else>
  865.                                 <var cmd="set DefenseMode Normal" />
  866.                             </else>
  867.  
  868.                             <addtochat>Defense Mode: $DefenseMode</addtochat>
  869.                         </elseif>
  870.                         <elseif SpellTargetRaw="*(WS)|*(Weaponskill)">
  871.                             <if advanced='"$WSMode"="Default"'>
  872.                                 <var cmd="set WSMode Accuracy" />
  873.                             </if>
  874.                             <elseif advanced='"$WSMode"="Accuracy"'>
  875.                                 <var cmd="set WSMode Attack" />
  876.                             </elseif>
  877.                             <elseif advanced='"$WSMode"="Attack"'>
  878.                                 <var cmd="set WSMode Mod" />
  879.                             </elseif>
  880.                             <elseif advanced='"$WSMode"="Mod"'>
  881.                                 <var cmd="set WSMode Crit" />
  882.                             </elseif>
  883.                             <else>
  884.                                 <var cmd="set WSMode Default" />
  885.                             </else>
  886.                            
  887.                             <addtochat>Weaponskill Focus: $WSMode</addtochat>
  888.                         </elseif>
  889.                     </elseif>
  890.                     <elseif SpellTargetRaw="Reverse(*)">
  891.                         <if SpellTargetRaw="*(Offense)">
  892.                             <if advanced='"$OffenseMode"="Normal"'>
  893.                                 <var cmd="set OffenseMode LowDmg" />
  894.                             </if>
  895.                             <elseif advanced='"$OffenseMode"="LowDmg"'>
  896.                                 <var cmd="set OffenseMode Crit" />
  897.                             </elseif>
  898.                             <elseif advanced='"$OffenseMode"="Crit"'>
  899.                                 <var cmd="set OffenseMode Str" />
  900.                             </elseif>
  901.                             <elseif advanced='"$OffenseMode"="Str"'>
  902.                                 <var cmd="set OffenseMode MaxAcc" />
  903.                             </elseif>
  904.                             <elseif advanced='"$OffenseMode"="MaxAcc"'>
  905.                                 <var cmd="set OffenseMode Acc" />
  906.                             </elseif>
  907.                             <elseif advanced='"$OffenseMode"="Acc"'>
  908.                                 <var cmd="set OffenseMode Att" />
  909.                             </elseif>
  910.                             <elseif advanced='"$OffenseMode"="Att"'>
  911.                                 <var cmd="set OffenseMode Normal" />
  912.                             </elseif>
  913.                             <else>
  914.                                 <var cmd="set OffenseMode Normal" />
  915.                             </else>
  916.                            
  917.                             <addtochat>Offense Mode: $OffenseMode</addtochat>
  918.                         </if>
  919.                         <elseif SpellTargetRaw="*(Defense)">
  920.                             <!-- Order: Normal < Evasion < PDT < Shield < Counter -->
  921.                          
  922.                             <if advanced='"$DefenseMode" = "Normal"'>
  923.                                 <if  advanced='"$HasCounter" = "Yes"'>
  924.                                     <var cmd="set DefenseMode Counter" />
  925.                                 </if>
  926.                                 <elseif  advanced='"$HasShield" = "Yes"'>
  927.                                     <var cmd="set DefenseMode Shield" />
  928.                                 </elseif>
  929.                                 <elseif  advanced='"$HasPDT" = "Yes"'>
  930.                                     <var cmd="set DefenseMode PDT" />
  931.                                 </elseif>
  932.                                 <elseif  advanced='"$HasEvasion" = "Yes"'>
  933.                                     <var cmd="set DefenseMode Evasion" />
  934.                                 </elseif>
  935.                             </if>
  936.                             <elseif advanced='"$DefenseMode" = "Counter"'>
  937.                                 <if  advanced='"$HasShield" = "Yes"'>
  938.                                     <var cmd="set DefenseMode Shield" />
  939.                                 </if>
  940.                                 <elseif  advanced='"$HasPDT" = "Yes"'>
  941.                                     <var cmd="set DefenseMode PDT" />
  942.                                 </elseif>
  943.                                 <elseif  advanced='"$HasEvasion" = "Yes"'>
  944.                                     <var cmd="set DefenseMode Evasion" />
  945.                                 </elseif>
  946.                                 <else>
  947.                                     <var cmd="set DefenseMode Normal" />
  948.                                 </else>
  949.                             </elseif>
  950.                             <elseif advanced='"$DefenseMode" = "Shield"'>
  951.                                 <if  advanced='"$HasPDT" = "Yes"'>
  952.                                     <var cmd="set DefenseMode PDT" />
  953.                                 </if>
  954.                                 <elseif  advanced='"$HasEvasion" = "Yes"'>
  955.                                     <var cmd="set DefenseMode Evasion" />
  956.                                 </elseif>
  957.                                 <else>
  958.                                     <var cmd="set DefenseMode Normal" />
  959.                                 </else>
  960.                             </elseif>
  961.                             <elseif advanced='"$DefenseMode" = "PDT"'>
  962.                                 <if  advanced='"$HasEvasion" = "Yes"'>
  963.                                     <var cmd="set DefenseMode Evasion" />
  964.                                 </if>
  965.                                 <else>
  966.                                     <var cmd="set DefenseMode Normal" />
  967.                                 </else>
  968.                             </elseif>
  969.                             <else>
  970.                                 <var cmd="set DefenseMode Normal" />
  971.                             </else>
  972.  
  973.                             <addtochat>Defense Mode: $DefenseMode</addtochat>
  974.                         </elseif>
  975.                         <elseif SpellTargetRaw="*(WS)|*(Weaponskill)">
  976.                             <if advanced='"$WSMode"="Default"'>
  977.                                 <var cmd="set WSMode Crit" />
  978.                             </if>
  979.                             <elseif advanced='"$WSMode"="Crit"'>
  980.                                 <var cmd="set WSMode Mod" />
  981.                             </elseif>
  982.                             <elseif advanced='"$WSMode"="Mod"'>
  983.                                 <var cmd="set WSMode Attack" />
  984.                             </elseif>
  985.                             <elseif advanced='"$WSMode"="Attack"'>
  986.                                 <var cmd="set WSMode Accuracy" />
  987.                             </elseif>
  988.                             <else>
  989.                                 <var cmd="set WSMode Default" />
  990.                             </else>
  991.                            
  992.                             <addtochat>Weaponskill Focus: $WSMode</addtochat>
  993.                         </elseif>
  994.                     </elseif>
  995.                     <elseif SpellTargetRaw="Toggle(*)">
  996.                         <if SpellTargetRaw="*(Aggressive)">
  997.                             <if advanced='"$AggressiveMode"="On"'>
  998.                                 <var cmd="set AggressiveMode Off" />
  999.                             </if>
  1000.                             <else>
  1001.                                 <var cmd="set AggressiveMode On" />
  1002.                             </else>
  1003.  
  1004.                             <addtochat>Aggressive Mode: $AggressiveMode</addtochat>
  1005.                         </if>
  1006.                         <elseif SpellTargetRaw="*(Kite)">
  1007.                             <if advanced='"$KiteMode"="Kite"'>
  1008.                                 <var cmd="set KiteMode None" />
  1009.                             </if>
  1010.                             <else>
  1011.                                 <var cmd="set KiteMode Kite" />
  1012.                             </else>
  1013.  
  1014.                             <addtochat>Kite Mode: $KiteMode</addtochat>
  1015.                         </elseif>
  1016.                     </elseif>
  1017.                 </elseif>
  1018.  
  1019.                 <!-- Casting modes (abstract concepts, not explicit sets) -->
  1020.  
  1021.                 <elseif spell="CastingMode">
  1022.                     <if SpellTargetRaw="NM|Resistant">
  1023.                         <var cmd="set CastingMode Resistant" />
  1024.                     </if>
  1025.                     <elseif SpellTargetRaw="AOEBurn">
  1026.                         <var cmd="set CastingMode AOEBurn" />
  1027.                     </elseif>
  1028.                     <elseif SpellTargetRaw="Dire">
  1029.                         <var cmd="set CastingMode Dire" />
  1030.                     </elseif>
  1031.                     <elseif SpellTargetRaw="Normal|Reset">
  1032.                         <var cmd="set CastingMode Normal" />
  1033.                     </elseif>
  1034.  
  1035.                     <addtochat>Casting Mode: $CastingMode</addtochat>
  1036.                 </elseif>
  1037.                 <elseif spell="CycleCastingMode">
  1038.                     <if SpellTargetRaw="Reverse">
  1039.                         <if advanced='"$CastingMode"="Normal"'>
  1040.                             <var cmd="set CastingMode Dire" />
  1041.                         </if>
  1042.                         <elseif advanced='"$CastingMode"="Dire"'>
  1043.                             <var cmd="set CastingMode AOEBurn" />
  1044.                         </elseif>
  1045.                         <elseif advanced='"$CastingMode"="AOEBurn"'>
  1046.                             <var cmd="set CastingMode Resistant" />
  1047.                         </elseif>
  1048.                         <else>
  1049.                             <!-- Default: Normal -->
  1050.                             <var cmd="set CastingMode Normal" />
  1051.                         </else>
  1052.                     </if>
  1053.                     <else>
  1054.                         <if advanced='"$CastingMode"="Normal"'>
  1055.                             <var cmd="set CastingMode Resistant" />
  1056.                         </if>
  1057.                         <elseif advanced='"$CastingMode"="Resistant"'>
  1058.                             <var cmd="set CastingMode AOEBurn" />
  1059.                         </elseif>
  1060.                         <elseif advanced='"$CastingMode"="AOEBurn"'>
  1061.                             <var cmd="set CastingMode Dire" />
  1062.                         </elseif>
  1063.                         <else>
  1064.                             <!-- Default: Normal -->
  1065.                             <var cmd="set CastingMode Normal" />
  1066.                         </else>
  1067.                     </else>
  1068.  
  1069.                     <addtochat>Casting Mode: $CastingMode</addtochat>
  1070.                 </elseif>
  1071.             </elseif>
  1072.            
  1073.             <elseif skill="GenericTrigger">
  1074.                 <if SpellTargetRaw="Test">
  1075.                 </if>
  1076.                 <elseif SpellTargetRaw="Check">
  1077.                     <cancelspell />
  1078.                     <addtochat>Current base TP set: TP-$TPWeapon-$OffenseMode-$DefenseMode</addtochat>
  1079.                 </elseif>
  1080.             </elseif>
  1081.         </if>
  1082.     </include>
  1083.  
  1084.     <!-- Define the base layer for the $CurrentSet variable to use. -->
  1085.     <include name="DefineBaseLayer">
  1086.         <if status="Engaged">
  1087.             <if advanced='"$Use-OffenseMode"!="None"'>
  1088.                 <var cmd="set OMode $Use-OffenseMode" />
  1089.             </if>
  1090.             <else>
  1091.                 <var cmd="set OMode $OffenseMode" />
  1092.             </else>
  1093.  
  1094.             <if advanced='"$AggressiveMode"="On"'>
  1095.                 <var cmd="set BaseLayer TP-$TPWeapon-$OMode-$DefenseMode|$AggressiveLayer" />
  1096.             </if>
  1097.             <else>
  1098.                 <var cmd="set BaseLayer TP-$TPWeapon-$OMode-$DefenseMode" />
  1099.             </else>
  1100.         </if>
  1101.         <else>
  1102.             <var cmd="set BaseLayer Idle-$Idlearea-$IdleMode" />
  1103.         </else>
  1104.     </include>
  1105.  
  1106.  
  1107.     <!-- Define the general weaponskill set based on certain vars. -->
  1108.     <!-- Define which weaponskill mode to use. -->
  1109.     <include name="DefineWeaponskillSet">
  1110.         <if spell="$MagicalWS">
  1111.             <var cmd="set WSSet WS-%spell" />
  1112.         </if>
  1113.         <else>
  1114.             <if advanced='"$Use-WSMode" != "None"'>
  1115.                 <var cmd="set TmpWSMode $Use-WSMode" />
  1116.             </if>
  1117.             <else>
  1118.                 <if advanced='"$WSMode"="default"'>
  1119.                     <if advanced='"$OffenseMode"="Acc" OR "$OffenseMode"="MaxAcc"' notspell="$SingleHitWS">
  1120.                         <var cmd="set TmpWSMode Acc" />
  1121.                     </if>
  1122.                     <elseif spell="$CritWS" BuffActive="Blood Rage">
  1123.                         <var cmd="set TmpWSMode Crit" />
  1124.                     </elseif>
  1125.                     <elseif mode="OR" advanced='"$OffenseMode"="Str" OR "$OffenseMode"="Crit"'
  1126.                      BuffActive="Berserk|Last Resort|Attack Boost|Building Flourish|Chaos Roll">
  1127.                         <var cmd="set TmpWSMode Mod" />
  1128.                     </elseif>
  1129.                     <elseif BuffActive="Voidwatcher">
  1130.                         <var cmd="set TmpWSMode Att" />
  1131.                     </elseif>
  1132.                     <else>
  1133.                         <var cmd="set TmpWSMode Normal" />
  1134.                     </else>
  1135.                 </if>
  1136.                 <else>
  1137.                     <var cmd="set TmpWSMode $WSMode" />
  1138.                 </else>
  1139.             </else>
  1140.  
  1141.             <var cmd="set WSSet WS-%spell-$TmpWSMode" />
  1142.         </else>
  1143.  
  1144.         <if advanced='$Debug=1'>
  1145.             <addtochat>WS Set: $WSSet</addtochat>
  1146.         </if>
  1147.     </include>
  1148.  
  1149.  
  1150.     <!-- Change to appropriate gear set at proper times. -->
  1151.     <include name="HandleEquippingGear">
  1152.         <!-- INCLUDE ONLY AFTER [CurrentSet] HAS BEEN DEFINED BY YOUR JOB RULES. -->
  1153.  
  1154.         <if advanced='$Debug=1'>
  1155.             <addtochat>Current Set: $CurrentSet</addtochat>
  1156.         </if>
  1157.  
  1158.         <!-- After all calculations are done, if the spellcast was run due to a Trigger action,
  1159.             just equip the specified gear and return. -->
  1160.         <if type="Trigger">
  1161.             <equip set="$CurrentSet" />
  1162.             <return />
  1163.         </if>
  1164.  
  1165.         <if type="JobAbility|WeaponSkill|Step|Waltz|Flourish*|Scholar">
  1166.             <aftercastdelay delay="0.5" />
  1167.         </if>
  1168.  
  1169.         <!-- Aftercast equipment resolution deferred.  Avoid up-front lag
  1170.             from doing these calculations now. -->
  1171.         <if status="resting">
  1172.             <equip when="all" set="Resting-$RestMode" />
  1173.         </if>
  1174.         <elseif spell="Autoset">
  1175.             <equip when="idle|engaged" set="$CurrentSet" />
  1176.         </elseif>
  1177.         <else>
  1178.             <!-- Change to <equip> line if you want to test current direct lag. -->
  1179.             <!-- <equip when="aftercast" set="$CurrentSet" /> -->
  1180.             <command when="aftercast">$UpdateAftercast</command>
  1181.         </else>
  1182.  
  1183.     </include>
  1184.  
  1185.     <!-- Handle evaluation of sets and equipping gear at aftercast time slot
  1186.         instead of doing all the work before the requested action.  Helps
  1187.         reduce lag effects. -->
  1188.     <include name="ChangeGearAftercast">
  1189.         <if type="Trigger" spell="Update" SpellTargetRaw=".Aftercast">
  1190.             <cancelspell />
  1191.  
  1192.             <if notstatus="Dead|Zoning">
  1193.                 <equip set="$CurrentSet" />
  1194.             </if>
  1195.  
  1196.             <return />
  1197.         </if>
  1198.     </include>
  1199.  
  1200.  
  1201.     <!-- Elemental Staff Rules -->
  1202.     <include name="ElementalStaffRules">
  1203.         <if skill="ElementalMagic">
  1204.             <if spell="Burn|Frost|Choke|Rasp|Shock|Drown">
  1205.                 <equip when="precast|midcast">
  1206.                     <main>$Staff-Acc-%SpellElement</main>
  1207.                 </equip>
  1208.             </if>
  1209.             <else>
  1210.                 <if advanced='"$CastingMode" = "Proc"'>
  1211.                     <equip when="precast|midcast">
  1212.                         <main>$Staff-Proc-%SpellElement</main>
  1213.                     </equip>
  1214.                 </if>
  1215.                 <else>
  1216.                     <equip when="precast|midcast">
  1217.                         <main>$Staff-Dmg-%SpellElement</main>
  1218.                         <sub>Wise Strap</sub>
  1219.                     </equip>
  1220.                 </else>
  1221.             </else>
  1222.  
  1223.             <if advanced='$Staff-FastCastAmt-%SpellElement &gt; 0'>
  1224.                 <equip when="precast">
  1225.                     <main>$Staff-FastCast-%SpellElement</main>
  1226.                 </equip>
  1227.             </if>
  1228.         </if>
  1229.         <elseif skill="HealingMagic" spell="Cure*|Cura*">
  1230.             <equip when="precast|midcast">
  1231.                 <main>$Staff-Cures</main>
  1232.             </equip>
  1233.         </elseif>
  1234.         <elseif skill="EnfeeblingMagic">
  1235.             <equip when="precast|midcast">
  1236.                 <main>$Staff-Acc-%SpellElement</main>
  1237.             </equip>
  1238.             <if advanced='$Staff-FastCastAmt-%SpellElement &gt; 0'>
  1239.                 <equip when="precast">
  1240.                     <main>$Staff-FastCast-%SpellElement</main>
  1241.                 </equip>
  1242.             </if>
  1243.         </elseif>
  1244.         <elseif type="BardSong">
  1245.             <if spelltargettype="MONSTER|NPC">
  1246.                 <equip when="precast|midcast">
  1247.                     <main>$Staff-Acc-%SpellElement</main>
  1248.                 </equip>
  1249.             </if>
  1250.             <if advanced='$Staff-FastCastAmt-%SpellElement &gt; 0'>
  1251.                 <equip when="precast">
  1252.                     <main>$Staff-FastCast-%SpellElement</main>
  1253.                 </equip>
  1254.             </if>
  1255.         </elseif>
  1256.         <elseif skill="DivineMagic">
  1257.             <if spell="Banish*|Holy*">
  1258.                 <equip when="precast|midcast">
  1259.                     <main>$Staff-Dmg-%SpellElement</main>
  1260.                 </equip>
  1261.             </if>
  1262.             <else>
  1263.                 <equip when="precast|midcast">
  1264.                     <main>$Staff-Acc-%SpellElement</main>
  1265.                 </equip>
  1266.             </else>
  1267.         </elseif>
  1268.         <elseif skill="DarkMagic">
  1269.             <equip when="precast|midcast">
  1270.                 <main>$Staff-Acc-%SpellElement</main>
  1271.             </equip>
  1272.             <if advanced='$Staff-FastCastAmt-%SpellElement &gt; 0'>
  1273.                 <equip when="precast">
  1274.                     <main>$Staff-FastCast-%SpellElement</main>
  1275.                 </equip>
  1276.             </if>
  1277.         </elseif>
  1278.     </include>
  1279.  
  1280.     <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Elemental Magic.
  1281.         Assumed to be imported in after check for skill="ElementalMagic" has
  1282.         already been done. -->
  1283.     <include name="ObiRingCape-ElementalMagic">
  1284.         <if element="%DayElement">
  1285.             <if skill="ElementalMagic" notspell="Burn|Frost|Choke|Rasp|Shock|Drown">
  1286.                 <if advanced='"ZodiacRing"!="0"' notelement="Light|Dark">
  1287.                     <equip when="midcast">
  1288.                         <rring>Zodiac Ring</rring>
  1289.                     </equip>
  1290.                 </if>
  1291.  
  1292.                 <if advanced='"$TwilightCape"!="0"'>
  1293.                     <equip when="midcast">
  1294.                         <back>Twilight Cape</back>
  1295.                     </equip>
  1296.                 </if>
  1297.  
  1298.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1299.                     <equip when="midcast">
  1300.                         <waist>$Obi-%spellElement</waist>
  1301.                     </equip>
  1302.                 </if>
  1303.             </if>
  1304.         </if>
  1305.  
  1306.         <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%spellElement">
  1307.             <if advanced='"$Obi-%spellElement"!="0"'>
  1308.                 <if skill="ElementalMagic" notspell="Burn|Frost|Choke|Rasp|Shock|Drown">
  1309.                     <equip when="midcast">
  1310.                         <waist>$Obi-%spellElement</waist>
  1311.                     </equip>
  1312.  
  1313.                     <if advanced='"$TwilightCape"!="0"'>
  1314.                         <equip when="midcast">
  1315.                             <back>Twilight Cape</back>
  1316.                         </equip>
  1317.                     </if>
  1318.                 </if>
  1319.             </if>
  1320.         </elseif>
  1321.     </include>
  1322.  
  1323.     <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Healing Magic.
  1324.         Assumed to be imported in after check for skill="HealingMagic" has
  1325.         already been done. -->
  1326.     <include name="ObiRingCape-HealingMagic">
  1327.         <if element="%DayElement">
  1328.             <if spell="Cure*|Cura*">
  1329.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1330.                     <equip when="midcast">
  1331.                         <waist>$Obi-%spellElement</waist>
  1332.                     </equip>
  1333.                 </if>
  1334.  
  1335.                 <if advanced='"$TwilightCape"!="0"'>
  1336.                     <equip when="midcast">
  1337.                         <back>Twilight Cape</back>
  1338.                     </equip>
  1339.                 </if>
  1340.             </if>
  1341.         </if>
  1342.  
  1343.         <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%spellElement">
  1344.             <if advanced='"$Obi-%spellElement"!="0"'>
  1345.                 <if spell="Cure*|Cura*">
  1346.                     <equip when="midcast">
  1347.                         <waist>$Obi-%spellElement</waist>
  1348.                     </equip>
  1349.  
  1350.                     <if advanced='"$TwilightCape"!="0"'>
  1351.                         <equip when="midcast">
  1352.                             <back>Twilight Cape</back>
  1353.                         </equip>
  1354.                     </if>
  1355.                 </if>
  1356.             </if>
  1357.         </elseif>
  1358.     </include>
  1359.  
  1360.     <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Divine Magic.
  1361.         Assumed to be imported in after check for skill="DivineMagic" has
  1362.         already been done. -->
  1363.     <include name="ObiRingCape-DivineMagic">
  1364.         <if element="%DayElement">
  1365.             <if spell="Banish*|Holy*">
  1366.                 <if advanced='"$TwilightCape"!="0"'>
  1367.                     <equip when="midcast">
  1368.                         <back>Twilight Cape</back>
  1369.                     </equip>
  1370.                 </if>
  1371.  
  1372.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1373.                     <equip when="midcast">
  1374.                         <waist>$Obi-%spellElement</waist>
  1375.                     </equip>
  1376.                 </if>
  1377.             </if>
  1378.         </if>
  1379.  
  1380.         <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%spellElement">
  1381.             <if advanced='"$Obi-%spellElement"!="0"'>
  1382.                 <if spell="Banish*|Holy*">
  1383.                     <equip when="midcast">
  1384.                         <waist>$Obi-%spellElement</waist>
  1385.                     </equip>
  1386.  
  1387.                     <if advanced='"$TwilightCape"!="0"'>
  1388.                         <equip when="midcast">
  1389.                             <back>Twilight Cape</back>
  1390.                         </equip>
  1391.                     </if>
  1392.                 </if>
  1393.             </if>
  1394.         </elseif>
  1395.     </include>
  1396.  
  1397.     <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Quick Draw.
  1398.         Assumed to be imported in after check for type="CorsairShot" has
  1399.         already been done. -->
  1400.     <include name="ObiRingCape-CorsairShot">
  1401.         <if notelement="Light|Dark">
  1402.             <if element="%DayElement">
  1403.                 <if advanced='"ZodiacRing"!="0"'>
  1404.                     <equip when="precast">
  1405.                         <rring>Zodiac Ring</rring>
  1406.                     </equip>
  1407.                 </if>
  1408.  
  1409.                 <if advanced='"$TwilightCape"!="0"'>
  1410.                     <equip when="precast">
  1411.                         <back>Twilight Cape</back>
  1412.                     </equip>
  1413.                 </if>
  1414.  
  1415.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1416.                     <equip when="precast">
  1417.                         <waist>$Obi-%spellElement</waist>
  1418.                     </equip>
  1419.                 </if>
  1420.             </if>
  1421.  
  1422.             <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%spellElement">
  1423.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1424.                     <equip when="precast">
  1425.                         <waist>$Obi-%spellElement</waist>
  1426.                     </equip>
  1427.  
  1428.                     <if advanced='"$TwilightCape"!="0"'>
  1429.                         <equip when="precast">
  1430.                             <back>Twilight Cape</back>
  1431.                         </equip>
  1432.                     </if>
  1433.                 </if>
  1434.             </elseif>
  1435.         </if>
  1436.     </include>
  1437.  
  1438.     <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Ninjutsu.
  1439.         Assumed to be imported in after check for type="Ninjutsu" has
  1440.         already been done. -->
  1441.     <include name="ObiRingCape-Ninjutsu">
  1442.         <if element="%DayElement">
  1443.             <if spell="Katon*|Hyoton*|Huton*|Doton*|Suiton*|Raiton*">
  1444.                 <if advanced='"ZodiacRing"!="0"'>
  1445.                     <equip when="midcast">
  1446.                         <rring>Zodiac Ring</rring>
  1447.                     </equip>
  1448.                 </if>
  1449.  
  1450.                 <if advanced='"$TwilightCape"!="0"'>
  1451.                     <equip when="midcast">
  1452.                         <back>Twilight Cape</back>
  1453.                     </equip>
  1454.                 </if>
  1455.  
  1456.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1457.                     <equip when="midcast">
  1458.                         <waist>$Obi-%spellElement</waist>
  1459.                     </equip>
  1460.                 </if>
  1461.             </if>
  1462.         </if>
  1463.  
  1464.         <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%spellElement">
  1465.             <if advanced='"$Obi-%spellElement"!="0"'>
  1466.                 <if spell="Katon*|Hyoton*|Huton*|Doton*|Suiton*|Raiton*">
  1467.                     <equip when="midcast">
  1468.                         <waist>$Obi-%spellElement</waist>
  1469.                     </equip>
  1470.  
  1471.                     <if advanced='"$TwilightCape"!="0"'>
  1472.                         <equip when="midcast">
  1473.                             <back>Twilight Cape</back>
  1474.                         </equip>
  1475.                     </if>
  1476.                 </if>
  1477.             </if>
  1478.         </elseif>
  1479.     </include>
  1480.  
  1481.     <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Blue Magic.
  1482.         Assumed to be imported in after check for skill="BlueMagic" has
  1483.         already been done. -->
  1484.     <include name="ObiRingCape-BlueMagic">
  1485.         <if element="%DayElement">
  1486.             <if spell="*Whisker|*Grudge|Thermal*|Mind Blast|Regurg*|Ice Break|Leaf*|Thunderbolt|Dark Orb">
  1487.                 <if advanced='"ZodiacRing"!="0"'>
  1488.                     <equip when="midcast">
  1489.                         <rring>Zodiac Ring</rring>
  1490.                     </equip>
  1491.                 </if>
  1492.  
  1493.                 <if advanced='"$TwilightCape"!="0"'>
  1494.                     <equip when="midcast">
  1495.                         <back>Twilight Cape</back>
  1496.                     </equip>
  1497.                 </if>
  1498.  
  1499.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1500.                     <equip when="midcast">
  1501.                         <waist>$Obi-%spellElement</waist>
  1502.                     </equip>
  1503.                 </if>
  1504.             </if>
  1505.         </if>
  1506.  
  1507.         <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%spellElement">
  1508.             <if advanced='"$Obi-%spellElement"!="0"'>
  1509.                 <if spell="*Whisker|*Grudge|Thermal*|Mind Blast|Regurg*|Ice Break|Leaf*|Thunderbolt|Dark Orb">
  1510.                     <equip when="midcast">
  1511.                         <waist>$Obi-%spellElement</waist>
  1512.                     </equip>
  1513.  
  1514.                     <if advanced='"$TwilightCape"!="0"'>
  1515.                         <equip when="midcast">
  1516.                             <back>Twilight Cape</back>
  1517.                         </equip>
  1518.                     </if>
  1519.                 </if>
  1520.             </if>
  1521.         </elseif>
  1522.     </include>
  1523.  
  1524.     <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Dark Magic.
  1525.         Assumed to be imported in after check for skill="DarkMagic" has
  1526.         already been done. -->
  1527.     <include name="ObiRingCape-DarkMagic">
  1528.         <if element="%DayElement">
  1529.             <if spell="Drain*|Aspir*">
  1530.                 <if advanced='"$TwilightCape"!="0"'>
  1531.                     <equip when="midcast">
  1532.                         <back>Twilight Cape</back>
  1533.                     </equip>
  1534.                 </if>
  1535.  
  1536.                 <if advanced='"$Obi-%spellElement"!="0"'>
  1537.                     <equip when="midcast">
  1538.                         <waist>$Obi-%spellElement</waist>
  1539.                     </equip>
  1540.                 </if>
  1541.             </if>
  1542.         </if>
  1543.  
  1544.         <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%spellElement">
  1545.             <if advanced='"$Obi-%spellElement"!="0"'>
  1546.                 <if spell="Drain*|Aspir*">
  1547.                     <equip when="midcast">
  1548.                         <waist>$Obi-%spellElement</waist>
  1549.                     </equip>
  1550.  
  1551.                     <if advanced='"$TwilightCape"!="0"'>
  1552.                         <equip when="midcast">
  1553.                             <back>Twilight Cape</back>
  1554.                         </equip>
  1555.                     </if>
  1556.                 </if>
  1557.             </if>
  1558.         </elseif>
  1559.     </include>
  1560.  
  1561.     <!-- Automatically generate notifications when buffs are about to wear off. -->
  1562.     <!-- MUST include RecastDurations in vars section. -->
  1563.     <include name="RecastWarnings">
  1564.         <if skill="EnhancingMagic">
  1565.             <if spell="Haste|Refresh*|Phalanx*|Reprisal|Enlight">
  1566.                 <var cmd="set Buff-Duration $%spell-Duration" />
  1567.             </if>
  1568.             <elseif spell="En*">
  1569.                 <var cmd="set Buff-Duration $Enspell-Duration" />
  1570.             </elseif>
  1571.             <elseif spell="*Spikes">
  1572.                 <var cmd="set Buff-Duration $Spikes-Duration" />
  1573.             </elseif>
  1574.             <else>
  1575.                 <!-- Anything else we don't want to give warnings for. -->
  1576.                 <var cmd="set Buff-Duration 0" />
  1577.             </else>
  1578.  
  1579.             <if advanced='$Buff-Duration &gt; 0'>
  1580.                 <!-- Account for rdm stuff that extends durations -->
  1581.                 <if mainjob="Rdm">
  1582.                     <var cmd="setcalc BuffDurationMult 100 + ($EstoqueurCape*10) + ($EstoqueurFeet*10)" />
  1583.  
  1584.                     <if BuffActive="Composure">
  1585.                         <if SpellTargetType="SELF">
  1586.                             <var cmd="setcalc BuffDurationMult $BuffDurationMult * 3" />
  1587.                         </if>
  1588.                         <elseif SpellTargetType="PLAYER">
  1589.                             <var cmd="setcalc BuffDurationMult $BuffDurationMult + $EstoqueurSetBonus" />
  1590.                         </elseif>
  1591.                     </if>
  1592.  
  1593.                     <var cmd="setcalc Buff-Duration $Buff-Duration * $BuffDurationMult / 100" />
  1594.                 </if>
  1595.                 <elseif mainjob="Sch">
  1596.                     <var cmd="setcalc BuffDurationMult 100" />
  1597.  
  1598.                     <if mode="OR" BuffActive="Perpetuance" advanced='"$PerpFlag"="Yes"'>
  1599.                         <!-- 2.5x duration for Perpetuance with AF3+2 hands. -->
  1600.                         <var cmd="setcalc BuffDurationMult 200 + (25 * $SchPerpHands)" />
  1601.                     </if>
  1602.  
  1603.                     <var cmd="setcalc Buff-Duration $Buff-Duration * $BuffDurationMult / 100" />
  1604.                 </elseif>
  1605.  
  1606.                 <!-- Determine when we want the warning message to happen. -->
  1607.                 <var cmd="setcalc Warn-Duration $Buff-Duration - $WarnTime" />
  1608.                 <command when="Aftercast">wait $Warn-Duration;input /echo ~~~~~~~~~~ [%spell] &lt;%SpellTargetName&gt; wearing off in $WarnTime sec. ~~~~~~~~~~</command>
  1609.             </if>
  1610.         </if>
  1611.         <elseif mode="or" skill="EnfeeblingMagic|DivineMagic|BlueMagic" type="CorsairShot">
  1612.             <if spell="Sleep*|Repose|Break|Sheep Song|Yawn|Soporific|Dream Flower|Light Shot">
  1613.                 <var cmd="inc SleepOrder" />
  1614.  
  1615.                 <var cmd="set Buff-Duration $%spell-Duration" />
  1616.  
  1617.                 <var cmd="setcalc Warn-Duration $Buff-Duration - 30" />
  1618.                 <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] &lt;%spellTargetName&gt; ($SleepOrder) wearing off in 30 sec.</command>
  1619.                 <var cmd="setcalc Warn-Duration $Buff-Duration - 10" />
  1620.                 <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] &lt;%spellTargetName&gt; ($SleepOrder) wearing off in 10 sec.;spellcast var dec SleepOrder</command>
  1621.             </if>
  1622.         </elseif>
  1623.         <elseif skill="Singing">
  1624.             <if spell="*Lullaby*">
  1625.                 <var cmd="set Buff-Duration $%spell-Duration" />
  1626.  
  1627.                 <var cmd="setcalc Warn-Duration $Buff-Duration - 10" />
  1628.                 <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] &lt;%spellTargetName&gt; ($SleepOrder) wearing off in 10 sec.</command>
  1629.             </if>
  1630.         </elseif>
  1631.         <elseif type="Samba">
  1632.             <if mainjob="Dnc">
  1633.                 <var cmd="set Buff-Duration 120" />
  1634.             </if>
  1635.             <else>
  1636.                 <var cmd="set Buff-Duration 90" />
  1637.             </else>
  1638.  
  1639.             <var cmd="setcalc Warn-Duration $Buff-Duration - $WarnTime" />
  1640.             <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] ~~~~~~~~~ Wearing off in $WarnTime sec.</command>
  1641.         </elseif>
  1642.     </include>
  1643.  
  1644.     <!-- Include for calculating expected cast time for a given spell, to use in
  1645.         determining which gear swaps are feasible. -->
  1646.     <include name="FastCastCalculations">
  1647.         <if casttimegt="1">
  1648.             <if skill="HealingMagic">
  1649.                 <if spell="Cure*|Cura*">
  1650.                     <var cmd="set FastCastAmt $CureFastCast" />
  1651.                 </if>
  1652.                 <else>
  1653.                     <var cmd="set FastCastAmt $HealFastCast" />
  1654.                 </else>
  1655.             </if>
  1656.             <elseif skill="EnhancingMagic">
  1657.                 <var cmd="set FastCastAmt $EnhancingFastCast" />
  1658.             </elseif>
  1659.             <elseif skill="ElementalMagic">
  1660.                 <var cmd="set FastCastAmt $ElementalFastCast" />
  1661.  
  1662.                 <if mainjob="BLM">
  1663.                     <if mainjoblvlgt="89">
  1664.                         <var cmd="setcalc FastCastAmt $FastCastAmt + 25" />
  1665.                     </if>
  1666.                     <else>
  1667.                         <var cmd="setcalc FastCastAmt $FastCastAmt + 15" />
  1668.                     </else>
  1669.                 </if>
  1670.             </elseif>
  1671.  
  1672.             <var cmd="setcalc FastCastAmt $FastCastAmt + $GeneralFastCast + $Staff-FastCastAmt-%spellElement" />
  1673.  
  1674.             <if mainjob="RDM">
  1675.                 <var cmd="setcalc FastCastAmt $FastCastAmt + 30" />
  1676.             </if>
  1677.             <elseif subjob="RDM">
  1678.                 <var cmd="setcalc FastCastAmt $FastCastAmt + 15" />
  1679.             </elseif>
  1680.  
  1681.             <if BuffActive="Light Arts|Addendum: White">
  1682.                 <if type="WhiteMagic">
  1683.                     <var cmd="setcalc FastCastAmt $FastCastAmt + ((100-$FastCastAmt)* 0.1)" />
  1684.                 </if>
  1685.                 <elseif type="BlackMagic">
  1686.                     <var cmd="setcalc FastCastAmt $FastCastAmt - ((100-$FastCastAmt)* 0.2)" />
  1687.                 </elseif>
  1688.             </if>
  1689.             <elseif BuffActive="Dark Arts|Addendum: Black">
  1690.                 <if type="BlackMagic">
  1691.                     <var cmd="setcalc FastCastAmt $FastCastAmt + ((100-$FastCastAmt)* 0.1)" />
  1692.                 </if>
  1693.                 <elseif type="WhiteMagic">
  1694.                     <var cmd="setcalc FastCastAmt $FastCastAmt - ((100-$FastCastAmt)* 0.2)" />
  1695.                 </elseif>
  1696.             </elseif>
  1697.            
  1698.             <if advanced='$FastCastAmt > 80'>
  1699.                 <var cmd="setcalc FastCastAmt 80" />
  1700.             </if>
  1701.  
  1702.             <var cmd="setcalc FCCastTime (%CastTime * (100-$FastCastAmt)) / 100" />
  1703.  
  1704.             <if advanced='$FCCastTime > 1'>
  1705.                 <var cmd="set FastCastMode Normal" />
  1706.             </if>
  1707.             <elseif advanced='$FCCastTime > 0.7'>
  1708.                 <var cmd="set FastCastMode Moderate" />
  1709.             </elseif>
  1710.             <else>
  1711.                 <var cmd="set FastCastMode Quick" />
  1712.             </else>
  1713.         </if>
  1714.         <else>
  1715.             <var cmd="set FastCastMode Quick" />
  1716.         </else>
  1717.     </include>
  1718.  
  1719.     <!-- Proc rules exclusive to blm for testing spell procs. -->
  1720.     <!-- Staff choice is already handled in Staffs include. -->
  1721.     <include name="TestProcRules">
  1722.         <!-- Turn on: //castingmode proc
  1723.             Turn off: //castingmode proc.off
  1724.             Set element: //firetrigger proc (or whichever element~trigger)
  1725.             Cast spell: //anyelementtrigger proc-t3
  1726.                         //anyelementtrigger proc-t4
  1727.                         //anyelementtrigger proc-ga3
  1728.                         //anyelementtrigger proc-AM
  1729.                         //anyelementtrigger proc-brd
  1730.         -->
  1731.              
  1732.         <if spell="CastingMode" SpellTargetRaw="Proc*">
  1733.             <cancelspell />
  1734.  
  1735.             <if BuffActive="Visitant|Voidwatcher">
  1736.                 <if SpellTargetRaw="*.off|*:off">
  1737.                     <var cmd="set CastingMode Normal" />
  1738.                 </if>
  1739.                 <elseif SpellTargetRaw="*.toggle|*:toggle">
  1740.                     <if advanced='"$CastingMode"="Proc"'>
  1741.                         <var cmd="set CastingMode Normal" />
  1742.                     </if>
  1743.                     <else>
  1744.                         <var cmd="set CastingMode Proc" />
  1745.                     </else>
  1746.                 </elseif>
  1747.                 <else>
  1748.                     <var cmd="set CastingMode Proc" />
  1749.                 </else>
  1750.             </if>
  1751.             <else>
  1752.                 <var cmd="set CastingMode Normal" />
  1753.             </else>
  1754.  
  1755.             <addtochat>CastingMode=$CastingMode, Procelement=$ProcElement</addtochat>
  1756.             <return />
  1757.         </if>
  1758.         <!-- In Abyssea, do spell conversion -->
  1759.         <elseif BuffActive="Visitant">
  1760.             <if type="Trigger" skill="ElementalTrigger">
  1761.                 <if NotElement="None|Any|All" SpellTargetRaw="Proc">
  1762.                     <var cmd="set ProcElement %spellElement" />
  1763.                     <addtochat>CastingMode=$CastingMode, Procelement=$ProcElement</addtochat>
  1764.                     <cancelspell />
  1765.                     <return />
  1766.                 </if>
  1767.                 <elseif spell="AnyElementTrigger" advanced='"$CastingMode"="Proc"'>
  1768.                     <var cmd="set Procspell None" />
  1769.  
  1770.                     <if SpellTargetRaw="Proc-T3">
  1771.                         <var cmd="set Procspell $T3-$ProcElement" />
  1772.                     </if>
  1773.                     <elseif SpellTargetRaw="Proc-T4">
  1774.                         <var cmd="set Procspell $T4-$ProcElement" />
  1775.                     </elseif>
  1776.                     <elseif SpellTargetRaw="Proc-Ga3">
  1777.                         <var cmd="set Procspell $T-G3-$ProcElement" />
  1778.                     </elseif>
  1779.                     <elseif SpellTargetRaw="Proc-AM">
  1780.                         <var cmd="set Procspell $T-AM-$ProcElement" />
  1781.                     </elseif>
  1782.                     <elseif SpellTargetRaw="Proc-Brd">
  1783.                         <var cmd="set Procspell $T-Brd-$ProcElement" />
  1784.                     </elseif>
  1785.                     <else>
  1786.                         <addtochat>Unknown Proc: [%SpellTargetRaw]</addtochat>
  1787.                     </else>
  1788.  
  1789.                     <if advanced='"$Procspell" != "None"'>
  1790.                         <changespell spell="$Procspell" />
  1791.                         <changetarget target="&lt;t&gt;" />
  1792.                     </if>
  1793.                     <addtochat>Test spell ($Procspell): %spell &gt; %spellTarget</addtochat>
  1794.                 </elseif>
  1795.             </if>
  1796.         </elseif>
  1797.     </include>
  1798.    
  1799.     <!-- Experimental code for a universal trigger to activate a job's 2HR. -->
  1800.     <include name="Use2HR">
  1801.         <if type="Trigger" spell="ClassTrigger" SpellTargetRaw="2HR">
  1802.             <if mainjob="War">
  1803.                 <changespell spell="Mighty Strikes" />
  1804.                 <changetarget target="&lt;me&gt;" />
  1805.             </if>
  1806.             <elseif mainjob="Mnk">
  1807.             </elseif>
  1808.             <elseif mainjob="Whm">
  1809.             </elseif>
  1810.             <elseif mainjob="Blm">
  1811.             </elseif>
  1812.             <elseif mainjob="Rdm">
  1813.             </elseif>
  1814.             <elseif mainjob="Thf">
  1815.             </elseif>
  1816.             <elseif mainjob="Pld">
  1817.             </elseif>
  1818.             <elseif mainjob="Brd">
  1819.             </elseif>
  1820.             <elseif mainjob="Bst">
  1821.             </elseif>
  1822.             <elseif mainjob="Rng">
  1823.             </elseif>
  1824.             <elseif mainjob="Drk">
  1825.             </elseif>
  1826.             <elseif mainjob="Sam">
  1827.             </elseif>
  1828.             <elseif mainjob="Nin">
  1829.             </elseif>
  1830.             <elseif mainjob="Drg">
  1831.             </elseif>
  1832.             <elseif mainjob="Smn">
  1833.             </elseif>
  1834.             <elseif mainjob="Blu">
  1835.             </elseif>
  1836.             <elseif mainjob="Pup">
  1837.             </elseif>
  1838.             <elseif mainjob="Cor">
  1839.             </elseif>
  1840.             <elseif mainjob="Sch">
  1841.             </elseif>
  1842.             <elseif mainjob="Dnc">
  1843.             </elseif>
  1844.         </if>
  1845.     </include>
  1846.  
  1847.     <!-- Trigger to notify the user at a user-specified interval from the
  1848.         time the trigger is used.
  1849.         Use trigger77 for public /party notifications.
  1850.         Use trigger78 for private notifications that include the /tell chime.
  1851.  
  1852.         Syntax (for a 5 minute/300 second timer):
  1853.         /ma trigger77 300
  1854.     -->
  1855.     <include name="RespawnTimer">
  1856.         <if type="Trigger">
  1857.             <!-- Trigger 77 for /party notifications -->
  1858.             <if spell="Trigger77">
  1859.                 <!-- Validate input duration -->
  1860.                 <if advanced='Regex("%spellTargetRaw", "^\d+$")'>
  1861.                     <!-- Basic warning at full duration -->
  1862.                     <addtochat color="6">~~~~ Starting public respawn timer: %spellTargetRaw seconds.</addtochat>
  1863.                     <command>wait %spellTargetRaw;input /p Respawn time &lt;call12&gt;</command>
  1864.  
  1865.                     <!-- Additional warning when one minute remaining -->
  1866.                     <var cmd="setcalc Respawn1Min %spellTargetRaw - 60" />
  1867.                     <if advanced='$Respawn1Min &gt; 0'>
  1868.                         <command>wait $Respawn1Min;input /p One minute warning &lt;call14&gt;</command>
  1869.                     </if>
  1870.                 </if>
  1871.                 <else>
  1872.                     <addtochat>Invalid timer duration: %SpellTargetRaw</addtochat>
  1873.                 </else>
  1874.             </if>
  1875.             <!-- Trigger 78 for private notifications -->
  1876.             <elseif spell="Trigger78">
  1877.                 <!-- Validate input duration -->
  1878.                 <if advanced='Regex("%spellTargetRaw", "^\d+$")'>
  1879.                     <!-- Basic warning at full duration -->
  1880.                     <addtochat color="6">~~~~ Starting private respawn timer: %spellTargetRaw seconds.</addtochat>
  1881.                     <command>wait %spellTargetRaw;input /ma Trigger80 0</command>
  1882.  
  1883.                     <!-- Additional warning when one minute remaining -->
  1884.                     <var cmd="setcalc Respawn1Min %spellTargetRaw - 60" />
  1885.                     <if advanced='$Respawn1Min &gt; 0'>
  1886.                         <command>wait $Respawn1Min;input /ma Trigger80 60</command>
  1887.                     </if>
  1888.                 </if>
  1889.                 <else>
  1890.                     <addtochat>Invalid timer duration: %spellTargetRaw</addtochat>
  1891.                 </else>
  1892.             </elseif>
  1893.             <!-- Custom notification code for /tell chime messages. -->
  1894.             <elseif spell="Trigger80">
  1895.                 <if spelltargetraw="0">
  1896.                     <addtochat color="12">~~~~ Respawn timer is up.</addtochat>
  1897.                 </if>
  1898.                 <else>
  1899.                     <addtochat color="12">~~~~ One minute warning for respawn timer.</addtochat>
  1900.                 </else>
  1901.             </elseif>
  1902.         </if>
  1903.     </include>
  1904. </includes>
Add Comment
Please, Sign In to add comment