public string DebugString()
{
return String.Format("Skill: {0} [RuneIndex={1}] " + " Cost=" + Cost + "\r\n" +
"Range={2} ReuseMS={3} Priority [{4}] UseType [{5}] Usage {6} \r\n" +
"Last Condition {7} -- Last Used {8} \r\n" +
"Used Successfully=[{9}] -- CanCastFlags={10}\r\n" +
"Last Failed Use=[{20}secs] Total Failure Count={21}\r\n" +
"IsPrimarySkill {11} IsBuff {12} IsDestructiblePower {13}\r\n" +
"IsRanged {14} IsProjectile {15}\r\n" +
"{16}{17}{18}{19}",
Power, RuneIndex,
Range, Cooldown, Priority, ExecutionType,
UseageType,
LastConditionPassed, LastUsedMilliseconds < 100000 ? LastUsedMilliseconds + "ms" : "Never",
SuccessUsed.HasValue ? SuccessUsed.Value.ToString() : "NULL", CanCastFlags,
IsPrimarySkill, IsBuff, IsDestructiblePower, IsRanged, IsProjectile,
IsSpecialAbility?" IsSpecialAbility ":"",
ShouldTrack?" ShouldTrack ":"",
IsChanneling?" IsChanneling ":"",
IsMovementSkill?" IsMovementSkill ":"",
DateTime.Now.Subtract(LastFailureDateTime).TotalSeconds, FailureToUseCounter);
}