<?xml version="1.0"?>
<spellcast>
	<config
		Debug="true"
	/>
	<variables clear="yes">
		<!-- Defines which set should be equipped in aftercast (in-game macro conrolled) -->
		<var name="Standing">Enmity</var>
		<!-- What to wear on not-Lightsday -->
		<var name="Belt">Pythia Sash +1</var>
		<!-- Are we running around or mostly stationary? (in-game macro controlled) -->
		<var name="Shoes">Herald's Gaiters</var>
		<!-- Auto-Strategem handling -->
		<var name="StratCount">2</var>
		<!-- On/Off switch for auto-strategems -->
		<var name="AutoStrat">1</var>
		<!-- G15 tank party coverage setup - can remove -->
		<var name="tank1" />
		<var name="tank2" />
	</variables>
	<sets>
		<group name="WHM">
			<!-- As taru, I -never- wear anything on WHM that lowers my HP. This set has
			enough MND to cap stoneskin. Mainly used for longer fights where enmity
			buildup can be a problem. With Pythia Sash +1 and Blessed Pumps +1, this set is
			Enmity -50 (capped). -->
			<set name="Enmity">
				<main>Surya's Staff</main>
				<sub>Staff Strap</sub>
				<ammo>White Tathlum</ammo>
				<head>Mirror Tiara</head>
				<neck>Beguiling Collar</neck>
				<lear>Novia Earring</lear>
				<rear>Roundel Earring</rear>
				<body>Aristocrat's Coat</body>
				<hands>Marduk's Dastanas</hands>
				<lring>Tamas Ring</lring>
				<rring>Trooper's Ring</rring>
				<back>Errant Cape</back>
				<waist>$Belt</waist>
				<legs>Bls. Trousers +1</legs>
				<feet>$Shoes</feet>
			</set>
			<!-- This set is for Dynamis/Limbus/Einherjar where double dark weather wreaks
			havok on cures. Also used for short fights where enmity won't factor as much
			and maximizing MP efficiency is crucial. 47% cure potency, +48 MND, and still
			maintains Enmity -31. Also Cure V/VI set. -->
			<set name="MaxMND" BaseSet="Enmity">
				<sub>Raptor Strap +1</sub>
				<head>Selenian Cap</head>
				<neck>Faith Torque</neck>
				<hands>Blessed Mitts +1</hands>
				<rring>Star Ring</rring>
				<back>Prism Cape</back>
				<feet>Blessed Pumps +1</feet>
			</set>
			<!-- For Devotion, 1504 HP -> 376 Devotion -->
			<set name="MaxHP" BaseSet="Enmity">
				<main>Rsv.Cpt. Mace</main>
				<sub>Ptr.Prt. Shield</sub>
				<head>Walahra Turban</head>
				<neck>Cougar Pendant</neck>
				<lear>Morukaka Earring</lear>
				<rear>Cassie Earring</rear>
				<body>Marduk's Jubbah</body>
				<hands>Creek F Mitts</hands>
				<rring>Bomb Queen Ring</rring>
				<back>Gigant Mantle</back>
				<waist>Steppe Sash</waist>
				<legs>Oracle's Braconi</legs>
				<feet>Creek F Clomps</feet>
			</set>
			<!-- For reraise, protect(ra), and shell(ra), where recast values don't particularly
			matter -->
			<set name="FastCast" BaseSet="Enmity">
				<main>Seveneyes</main>
				<sub>Muse Tariqah</sub>
				<head>Selenian Cap</head>
				<lear>Loquac. Earring</lear>
				<body>Marduk's Jubbah</body>
				<feet>Rostrum Pumps</feet>
			</set>
			<!-- For haste and raises -->
			<set name="Recast" BaseSet="FastCast">
				<head>Walahra Turban</head>
				<waist>Swift Belt</waist>
			</set>
			<set name="Bar">
				<body>Blessed Briault +1</body>
				<legs>Cleric's Pantaln.</legs>
			</set>
			<!-- Divine skill, M.acc, Haste -->
			<set name="Banish" BaseSet="Enmity">
				<main>Neptune's Staff</main>
				<sub>Light Grip</sub>
				<rear>Sapphire Earring</rear>
				<body>Augur's Jaseran</body>
				<hands>Nashira Gages</hands>
				<rring>Omega Ring</rring>
				<legs>Nashira Seraweels</legs>
				<feet>Nashira Crackows</feet>
			</set>
			<set name="Repose" BaseSet="Banish">
				<main>Apollo's Staff</main>
			</set>
			<!-- hMP +41, can't currently get very much better. (I know, need Goli feet,
			Legion Scutum, and new craftable body, but I said "very much better" not "zomg
			best hMP set evar!")-->
			<set name="Resting" BaseSet="Enmity">
				<main>Pluto's Staff</main>
				<head>Mirror Tiara</head>
				<neck>Eidolon Pendant</neck>
				<lear>Relaxing Earring</lear>
				<rear>Antivenom Earring</rear>
				<!-- Removed for higher efficiency resting -->
				<!--<body>Oracle's Robe</body>-->
				<hands>Oracle's Gloves</hands>
				<lring>Star Ring</lring>
				<rring>Star Ring</rring>
				<back>Felicitas Cape</back>
				<waist>Austerity Belt</waist>
				<legs>Oracle's Braconi</legs>
				<feet>Oracle's Pigaches</feet>
			</set>
		</group>
	</sets>
	<rules>
		<if spell="autoset">
			<equip when="idle" set="$Standing" />
			<equip when="resting" set="Resting" />
			<command when="resting">wait 15;input /equip body "Oracle's Robe"</command>			
		</if>
		<if Type="JobAbility">
			<if SubJob="SCH">
				<!-- StratCount variable tells how many charges are available to use. This rule checks
				the variable; if 0 are available it cancels the action, if 1 or more are available it
				decreases the availability and then increases it again in 2 minutes. -->
				<if Spell="Accession|Manifestation|Celerity|Alacrity|Penury|Parsimony">
					<defaulttarget target="&lt;me&gt;" />
					<if Advanced='"$StratCount"="0"'>
						<cancelspell />
						<return />
					</if>
					<else>
						<command>spellcast var dec StratCount;wait 120;spellcast var inc StratCount</command>
					</else>
				</if>
				<!-- Change Light Arts strategems to Dark Arts equivalents if Dark Arts is active -->
				<if BuffActive="Dark Arts|Addendum: Black">
					<if Spell="Celerity">
						<changespell Spell="Alacrity" />
					</if>
					<elseif Spell="Penury">
						<changespell Spell="Parsimony" />
					</elseif>
					<elseif Spell="Accession">
						<changespell Spell="Manifestation" />
					</elseif>
				</if>
				<else>
					<!-- Activate Light Arts if not already active when strategems macros are
					used -->
					<if Spell="Celerity" notBuffActive="Light Arts">
						<changespell Spell="Light Arts" />
						<command when="aftercast">Celerity</command>
					</if>
					<elseif Spell="Penury" notBuffActive="Light Arts">
						<changespell Spell="Light Arts" />
						<command when="aftercast">Penury</command>
					</elseif>
					<elseif Spell="Accession" notBuffActive="Light Arts">
						<changespell Spell="Light Arts" />
						<command when="aftercast">Accession</command>
					</elseif>
					<!-- Only reason to use Dark Arts is for access to black magic, so activate
					Addendum also -->
					<elseif Spell="Dark Arts">
						<command when="aftercast">Addendum: Black</command>
					</elseif>
				</else>
			</if>
			<if Spell="Devotion">
				<!-- In-game macro is simple:
				/ma "Cure V" <me>
				/wait 4
				/ja "Devotion" <stpt> 
				Aftercast delay is to prevent HP loss from gear swapping too soon...rare,
				but happens! -->
				<aftercastdelay delay="2" />
				<equip when="aftercast" set="$Standing" />
			</if>
		</if>
		<elseif Type="WhiteMagic">
			<!-- Probably could have used AutoExec to handle day rule but this is unintrusive
			and never fails me -->
			<if Advanced='"%WeatherElement" = "Light" OR "%DayElement" = "Light"'>
				<var cmd="set Belt Korin Obi" />
			</if>
			<else>
				<var cmd="set Belt Pythia Sash +1" />
			</else>
			<if Spell="Stoneskin">
				<!-- Changes cancel delay if Celerity is active. No need for special gear,
				both idle sets have plenty of MND for capped stoneskin (taru) -->
				<if notBuffActive="Celerity">
					<midcastdelay delay="4" />
					<command when="MidCast">cancel 37</command>
				</if>
				<else>
					<midcastdelay delay="2" />
					<command when="MidCast">cancel 37</command>
				</else>
			</if>
			<elseif Spell="Cure V*">
				<!-- Usually only Cure 5ing myself for Devotion, so put on MaxHP gear and
				stop parsing. -->
				<if SpellTargetType="Self" HPGT="600">
					<equip when="precast" set="MaxHP" />
					<return />
				</if>
				<else>
					<!-- If a strategem charge is available and I'm not conserving strategems,
					use Penury to reduce MP cost. Changespell triggers a script since spellcast
					doesn't like <stal>. -->
					<if SubJob="SCH" Advanced='"$AutoStrat"="1" AND "$StratCount"&gt;"0"'>
						<if Advanced='"$StratCount"&gt;"0"'>
							<if Spell="Cure V">
								<changespell Spell="Waterga V" />
							</if>
							<elseif Spell="Cure VI">
								<changespell Spell="Aeroga V"/>
							</elseif>
						</if>
					</if>
					<!-- Always swap to MaxMND set for Cure V/VI, then return to current idle
					set -->
					<equip when="precast" set="MaxMND" />
					<equip when="aftercast" set="$Standing" />
				</else>
			</elseif>
			<!-- For the love of god, max -Enmity for Curagas... -->
			<elseif Spell="Cura*">
				<equip when="precast" set="Enmity">
					<feet>Blessed Pumps +1</feet>
				</equip>
				<equip when="aftercast" set="$Standing" />
			</elseif>
			<elseif Spell="Regen*">
				<equip when="precast">
					<body>Cleric's Briault</body>
				</equip>
				<equip when="aftercast">
					<body>Aristocrat's Coat</body>
				</equip>
			</elseif>
			<elseif Spell="Barstonra|Barwatera|Baraera|Barfira|Barblizzara|Barthundra">
				<equip when="precast" set="Bar" />
				<castdelay delay=".2" />
				<equip when="aftercast" set="$Standing" />
			</elseif>
			<elseif Spell="Haste">
				<equip when="precast" set="Recast" />
				<equip when="aftercast" set="$Standing" />
				<!-- Only notify when Haste is cast on myself, otherwise chatlog spam is
				excessive. I use <command></command> here instead of <addtochat>
				</addtochat> because I needed to utilize aftercast without a delay.
				Requires AddToChat plugin, available here:
				http://windower.net/plugins/AddToChat.dll -->
				<if Advanced='"%SpellTargetName" = "Giacorleone"'>
					<command>pause 170;input //addtochat 121 **************************************** [: Haste :] ****************************************</command>
				</if>
			</elseif>
			<elseif Spell="Reraise*|Protect*|Shell*">
				<if Spell="Protectra*|Shellra">
					<!-- Damn people always trying to stand as far away as possible... -->
					<command>input /p %Spell  » Stay put! «</command>
				</if>
				<!-- If not conserving strats and one is available, use Penury to reduce MP cost -->
				<elseif Spell="Reraise III" SubJob="SCH" Advanced='"$AutoStrat"="1" AND "$StratCount"&gt;"0"'>
					<changespell Spell="Stonega V" />
				</elseif>
				<equip when="precast" set="FastCast" />
				<equip when="aftercast" set="$Standing" />
			</elseif>
			<elseif Spell="Raise*">
				<!-- If weakened and a strategem charge is available, use Celerity to
				reduce recast timer. Otherwise, use Penury to reduce MP consumption. -->
				<if Spell="Raise III" SubJob="SCH" Advanced='"$AutoStrat"="1" AND "$StratCount"&gt;"0"'>
					<if BuffActive="weakness">
						<changespell Spell="Firaga V" />
					</if>
					<else>
						<changespell Spell="Blizzaga V" />
					</else>
				</if>
				<equip when="precast" set="Recast" />
				<equip when="aftercast" set="$Standing" />
				<!-- To avoid wasting time/strategems/mp, announce raises in situations
				where multiple raisers may be attempting to get one dead person -->
				<if Area="Dynamis-*|Hazhalm*">
					<command when="precast">input /p %Spell » %SpellTarget</command>
				</if>
			</elseif>
			<!--<elseif Spell="Sacrifice" notBuffActive="Afflatus Solace">
				<castdelay delay="2" />
				<command when="precast">input /ja "Afflatus Solace" &lt;me&gt;</command>
			</elseif>-->
			<elseif Spell="Esuna" notBuffActive="Afflatus Misery">
				<changespell Spell="Afflatus Misery" />
				<command when="aftercast">pause 1;input /ma "Esuna" &lt;me&gt;</command>
			</elseif>
			<elseif Spell="Banish*|Holy">
				<equip when="precast" set="Banish" />
			</elseif>
			<elseif Spell="Repose">
				<equip when="precast" set="Repose" />
			</elseif>
		</elseif>
		<!-- Fake spell for Penury/Reraise 3 -->
		<elseif Spell="Stonega V">
			<cancelspell />
			<command>exec gia/whm/spells/penrr.ffxi</command>
		</elseif>
		<!-- Fake spell for Penury/Cure V -->
		<elseif Spell="Waterga V">
			<cancelspell />
			<command>exec gia/whm/spells/penc5.ffxi</command>
		</elseif>
		<!-- Fake spell for Penury/Cure VI -->
		<elseif Spell="Aeroga V">
			<cancelspell />
			<command>exec gia/whm/spells/penc6.ffxi</command>
		</elseif>
		<!-- Fake spell for Celerity/Raise 3 -->
		<elseif Spell="Firaga V">
			<cancelspell />
			<command>exec gia/whm/spells/celr3.ffxi</command>
		</elseif>
		<!-- Fake spell for Penury/Raise 3 -->
		<elseif Spell="Blizzaga V">
			<cancelspell />
			<command>exec gia/whm/spells/penr3.ffxi</command>
		</elseif>
	</rules>
</spellcast>

