case ActorClass.Wizard:
// Pick the best destructible power available
if (bDestructiblePower)
{
if (!GilesHasBuff(SNOPower.Wizard_Archon))
{
if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_EnergyTwister) && playerStatus.dCurrentEnergy >= 35)
return new GilesPower(SNOPower.Wizard_EnergyTwister, 9f, vNullLocation, -1, -1, 0, 0, USE_SLOWLY);
if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_MagicMissile))
return new GilesPower(SNOPower.Wizard_MagicMissile, 15f, vNullLocation, -1, -1, 0, 0, USE_SLOWLY);
if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_ShockPulse))
return new GilesPower(SNOPower.Wizard_ShockPulse, 10f, vNullLocation, -1, -1, 0, 0, USE_SLOWLY);
if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_SpectralBlade))
return new GilesPower(SNOPower.Wizard_SpectralBlade, 9f, vNullLocation, -1, -1, 0, 0, USE_SLOWLY);
if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Electrocute))
return new GilesPower(SNOPower.Wizard_Electrocute, 49f, vNullLocation, -1, -1, 0, 0, USE_SLOWLY);
}
else
{
if (targetCurrent.fRadiusDistance <= 10f)
return new GilesPower(SNOPower.Wizard_Archon_ArcaneStrike, 20f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 0, USE_SLOWLY);
return new GilesPower(SNOPower.Wizard_Archon_DisintegrationWave, 19f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 0, USE_SLOWLY);
}
return new GilesPower(SNOPower.Weapon_Melee_Instant, 10f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 0, USE_SLOWLY);
}
// Diamond Skin SPAM
if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_DiamondSkin) && powerLastSnoPowerUsed != SNOPower.Wizard_DiamondSkin &&
(iElitesWithinRange[RANGE_25] > 1 || iAnythingWithinRange[RANGE_25] > 1 || playerStatus.dCurrentHealthPct <= 0.50 || playerStatus.bIsIncapacitated || playerStatus.bIsRooted || (!bOOCBuff && targetCurrent.fRadiusDistance <= 40f)) &&
((settings.bEnableCriticalMass && !bOOCBuff) || !GilesHasBuff(SNOPower.Wizard_DiamondSkin)) &&
PowerManager.CanCast(SNOPower.Wizard_DiamondSkin))
{
return new GilesPower(SNOPower.Wizard_DiamondSkin, 0f, vNullLocation, iCurrentWorldID, -1, 0, 1, USE_SLOWLY);
}