/// <summary> /// Custom movement validation. /// </summary> /// <returns>A list of validation errors</returns> /// <param name="c">Character to validate against.</param> override public List <ValidationResult> ValidateMovement(Character c) { List <ValidationResult> result = new List <ValidationResult>(); Movement m = Init(c); if (m.Implementation != null) { m = m.Implementation; } if (m != this) { result = m.ValidateMovement(c); implementation = null; DestroyImmediate(m); } return(result); }