public HistoricalFigureLink(List <Property> properties, World world) { Strength = 0; foreach (Property property in properties) { switch (property.Name) { case "hfid": HistoricalFigure = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break; case "link_strength": Strength = Convert.ToInt32(property.Value); break; case "link_type": HistoricalFigureLinkType linkType; if (Enum.TryParse(Formatting.InitCaps(property.Value).Replace(" ", ""), out linkType)) { Type = linkType; } else { Type = HistoricalFigureLinkType.Unknown; world.ParsingErrors.Report("Unknown HF HF Link Type: " + property.Value); } break; } } //XML states that deity links, that should be 100, are 0. if (Type == HistoricalFigureLinkType.Deity && Strength == 0) { Strength = 100; } }
public HistoricalFigureLink(List<Property> properties, World world) { Strength = 0; foreach (Property property in properties) { switch (property.Name) { case "hfid": HistoricalFigure = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break; case "link_strength": Strength = Convert.ToInt32(property.Value); break; case "link_type": HistoricalFigureLinkType linkType; if (Enum.TryParse(Formatting.InitCaps(property.Value).Replace(" ", ""), out linkType)) { Type = linkType; } else { Type = HistoricalFigureLinkType.Unknown; world.ParsingErrors.Report("Unknown HF Link Type: " + property.Value); } break; } } //XML states that deity links, that should be 100, are 0. if (Type == HistoricalFigureLinkType.Deity && Strength == 0) Strength = 100; }
public RemoveHfHfLink(List <Property> properties, World world) : base(properties, world) { foreach (Property property in properties) { switch (property.Name) { case "hfid": HistoricalFigure = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break; case "hfid_target": HistoricalFigureTarget = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break; case "link_type": HistoricalFigureLinkType linkType; if (Enum.TryParse(Formatting.InitCaps(property.Value.Replace("_", " ")).Replace(" ", ""), out linkType)) { LinkType = linkType; } else { world.ParsingErrors.Report("Unknown HF HF Link Type: " + property.Value); } break; } } //Fill in LinkType by looking at related historical figures. if (LinkType == HistoricalFigureLinkType.Unknown && HistoricalFigure != HistoricalFigure.Unknown && HistoricalFigureTarget != HistoricalFigure.Unknown) { List <HistoricalFigureLink> historicalFigureToTargetLinks = HistoricalFigure.RelatedHistoricalFigures.Where(link => link.Type != HistoricalFigureLinkType.Child).Where(link => link.HistoricalFigure == HistoricalFigureTarget).ToList(); HistoricalFigureLink historicalFigureToTargetLink = null; if (historicalFigureToTargetLinks.Count <= 1) { historicalFigureToTargetLink = historicalFigureToTargetLinks.FirstOrDefault(); } HfAbducted abduction = HistoricalFigureTarget.Events.OfType <HfAbducted>().SingleOrDefault(abduction1 => abduction1.Snatcher == HistoricalFigure); if (historicalFigureToTargetLink != null && abduction == null) { LinkType = historicalFigureToTargetLink.Type; } else if (abduction != null) { LinkType = HistoricalFigureLinkType.Prisoner; } } HistoricalFigure.AddEvent(this); HistoricalFigureTarget.AddEvent(this); }
public HistoricalFigureLink(HistoricalFigure historicalFigureTarget, HistoricalFigureLinkType type, int strength = 0) { HistoricalFigure = historicalFigureTarget; Type = type; Strength = strength; }
public HistoricalFigureLink(HistoricalFigure hf, HistoricalFigureLinkType type) { HistoricalFigure = hf; Type = type; }