/// <summary> /// Parse an <see cref="EffectComponent"/>. /// </summary> /// <param name="character"></param> /// <param name="component"></param> /// <param name="firstComponent"></param> /// <param name="addSpan"></param> /// <exception cref="ArgumentNullException"> /// Neither <paramref name="character"/> nor <paramref name="component"/> can be null. /// </exception> private void ParseEffectComponent(Character character, EffectComponent component, bool firstComponent, Action<EffectSpan> addSpan) { if (character == null) { throw new ArgumentNullException("character"); } if (component == null) { throw new ArgumentNullException("component"); } if (addSpan == null) { throw new ArgumentNullException("addSpan"); } ParseTarget(component.Target, firstComponent, addSpan); ParseComponent(character, component, addSpan); }
/// <summary> /// /// </summary> /// <param name="character"></param> /// <param name="component"></param> /// <param name="addSpan"></param> /// <returns></returns> /// <exception cref="ArgumentNullException"> /// Neither <paramref name="character"/> nor <paramref name="component"/> can be null. /// </exception> private void ParseComponent(Character character, EffectComponent component, Action<EffectSpan> addSpan) { if (character == null) { throw new ArgumentNullException("character"); } if (component == null) { throw new ArgumentNullException("component"); } if (addSpan == null) { throw new ArgumentNullException("addSpan"); } foreach (EffectSpan effectSpan in component.Parse(character)) { addSpan(effectSpan); } }