private static void ParseWeaknessesAndImmunities(Day24Solver.Group group, string line) { var split = line.Split(';'); foreach (var s in split) { var s2 = s.Trim(); if (s2.StartsWith("weak to ")) { var weaknesses = s2.Substring(8).Split(", "); foreach (var weakness in weaknesses) { group.Weaknesses.Add(weakness); } } if (s2.StartsWith("immune to ")) { var immunities = s2.Substring(10).Split(", "); foreach (var immunity in immunities) { group.Immunities.Add(immunity); } } } }
private static Day24Solver.Group ParseGroupWithWeaknessImmunities(Match match, Day24Solver.Group.GroupType type) { var units = int.Parse(match.Groups[1].Value); var hitPoints = int.Parse(match.Groups[2].Value); var weaknessesAndImmunities = match.Groups[3].Value; var damage = int.Parse(match.Groups[4].Value); var damageType = match.Groups[5].Value; var initiative = int.Parse(match.Groups[6].Value); var group = new Day24Solver.Group(type, units, hitPoints, damage, damageType, initiative); ParseWeaknessesAndImmunities(group, weaknessesAndImmunities); return(group); }