本文整理汇总了C#中LegendsViewer.Legends.World.GetEventCollection方法的典型用法代码示例。如果您正苦于以下问题:C# World.GetEventCollection方法的具体用法?C# World.GetEventCollection怎么用?C# World.GetEventCollection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LegendsViewer.Legends.World
的用法示例。
在下文中一共展示了World.GetEventCollection方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SiteConquered
public SiteConquered(List<Property> properties, World world)
: base(properties, world)
{
Initialize();
foreach (Property property in properties)
switch (property.Name)
{
case "ordinal": Ordinal = Convert.ToInt32(property.Value); break;
case "war_eventcol": ParentCollection = world.GetEventCollection(Convert.ToInt32(property.Value)); break;
case "site_id": Site = world.GetSite(Convert.ToInt32(property.Value)); break;
case "attacking_enid": Attacker = world.GetEntity(Convert.ToInt32(property.Value)); break;
case "defending_enid": Defender = world.GetEntity(Convert.ToInt32(property.Value)); break;
}
if (Collection.OfType<PlunderedSite>().Any()) ConquerType = SiteConqueredType.Pillaging;
else if (Collection.OfType<DestroyedSite>().Any()) ConquerType = SiteConqueredType.Destruction;
else if (Collection.OfType<NewSiteLeader>().Any() || Collection.OfType<SiteTakenOver>().Any()) ConquerType = SiteConqueredType.Conquest;
else ConquerType = SiteConqueredType.Unknown;
if (ConquerType == SiteConqueredType.Pillaging) Notable = false;
Site.Warfare.Add(this);
if (ParentCollection != null)
{
(ParentCollection as War).DeathCount += Collection.OfType<HFDied>().Count();
if (Attacker == (ParentCollection as War).Attacker)
(ParentCollection as War).AttackerVictories.Add(this);
else
(ParentCollection as War).DefenderVictories.Add(this);
}
}
示例2: Duel
public Duel(List<Property> properties, World world)
: base(properties, world)
{
foreach (Property property in properties)
switch (property.Name)
{
case "ordinal": Ordinal = String.Intern(property.Value); break;
case "coords": Coordinates = Formatting.ConvertToLocation(property.Value); break;
case "parent_eventcol": ParentCollection = world.GetEventCollection(Convert.ToInt32(property.Value)); break;
case "subregion_id": Region = world.GetRegion(Convert.ToInt32(property.Value)); break;
case "feature_layer_id": UndergroundRegion = world.GetUndergroundRegion(Convert.ToInt32(property.Value)); break;
case "site_id": Site = world.GetSite(Convert.ToInt32(property.Value)); break;
case "attacking_hfid": Attacker = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;
case "defending_hfid": Defender = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break;
}
//foreach (WorldEvent collectionEvent in Collection) this.AddEvent(collectionEvent);
if (ParentCollection != null && ParentCollection.GetType() == typeof(Battle))
foreach (HFDied death in Collection.OfType<HFDied>())
{
Battle battle = ParentCollection as Battle;
if (battle.NotableAttackers.Contains(death.HistoricalFigure))
{
battle.AttackerDeathCount++;
battle.Attackers.Single(squad => squad.Race == death.HistoricalFigure.Race).Deaths++;
(battle.ParentCollection as War).AttackerDeathCount++;
}
else if (battle.NotableDefenders.Contains(death.HistoricalFigure))
{
battle.DefenderDeathCount++;
battle.Defenders.Single(squad => squad.Race == death.HistoricalFigure.Race).Deaths++;
(battle.ParentCollection as War).DefenderDeathCount++;
}
(ParentCollection.ParentCollection as War).DeathCount++;
}
}
示例3: BeastAttack
public BeastAttack(List<Property> properties, World world)
: base(properties, world)
{
Initialize();
foreach (Property property in properties)
switch (property.Name)
{
case "ordinal": Ordinal = Convert.ToInt32(property.Value); break;
case "coords": Coordinates = Formatting.ConvertToLocation(property.Value); break;
case "parent_eventcol": ParentCollection = world.GetEventCollection(Convert.ToInt32(property.Value)); break;
case "subregion_id": Region = world.GetRegion(Convert.ToInt32(property.Value)); break;
case "feature_layer_id": UndergroundRegion = world.GetUndergroundRegion(Convert.ToInt32(property.Value)); break;
case "site_id": Site = world.GetSite(Convert.ToInt32(property.Value)); break;
case "defending_enid": Defender = world.GetEntity(Convert.ToInt32(property.Value)); break;
}
Site.BeastAttacks.Add(this);
//--------Attacking Beast is calculated after parsing event collections in ParseXML()
//--------So that it can also look at eventsList from duel sub collections to calculate the Beast
//-------Fill in some missing event details with details from collection
//-------Filled in after parsing event collections in ParseXML()
}
示例4: Theft
public Theft(List<Property> properties, World world)
: base(properties, world)
{
foreach (Property property in properties)
switch (property.Name)
{
case "ordinal": Ordinal = String.Intern(property.Value); break;
case "coords": Coordinates = Formatting.ConvertToLocation(property.Value); break;
case "parent_eventcol": ParentCollection = world.GetEventCollection(Convert.ToInt32(property.Value)); break;
case "subregion_id": Region = world.GetRegion(Convert.ToInt32(property.Value)); break;
case "feature_layer_id": UndergroundRegion = world.GetUndergroundRegion(Convert.ToInt32(property.Value)); break;
case "site_id": Site = world.GetSite(Convert.ToInt32(property.Value)); break;
case "attacking_enid": Attacker = world.GetEntity(Convert.ToInt32(property.Value)); break;
case "defending_enid": Defender = world.GetEntity(Convert.ToInt32(property.Value)); break;
}
foreach (ItemStolen theft in Collection.OfType<ItemStolen>())
{
theft.Site = Site;
Site.AddEvent(theft);
Site.Events = Site.Events.OrderBy(ev => ev.ID).ToList();
if (Attacker.SiteHistory.Count == 1)
{
theft.ReturnSite = Attacker.SiteHistory.First().Site;
theft.ReturnSite.AddEvent(theft);
theft.ReturnSite.Events = theft.ReturnSite.Events.OrderBy(ev => ev.ID).ToList();
}
}
}
示例5: Abduction
public Abduction(List<Property> properties, World world)
: base(properties, world)
{
foreach (Property property in properties)
switch (property.Name)
{
case "ordinal": Ordinal = String.Intern(property.Value); break;
case "coords": Coordinates = Formatting.ConvertToLocation(property.Value); break;
case "parent_eventcol": ParentCollection = world.GetEventCollection(Convert.ToInt32(property.Value)); break;
case "subregion_id": Region = world.GetRegion(Convert.ToInt32(property.Value)); break;
case "feature_layer_id": UndergroundRegion = world.GetUndergroundRegion(Convert.ToInt32(property.Value)); break;
case "site_id": Site = world.GetSite(Convert.ToInt32(property.Value)); break;
case "attacking_enid": Attacker = world.GetEntity(Convert.ToInt32(property.Value)); break;
case "defending_enid": Defender = world.GetEntity(Convert.ToInt32(property.Value)); break;
}
}
示例6: Battle
public Battle(List<Property> properties, World world)
: base(properties, world)
{
Initialize();
List<string> attackerSquadRace, defenderSquadRace;
List<int> attackerSquadEntityPopulation, attackerSquadNumbers, attackerSquadDeaths, attackerSquadSite,
defenderSquadEntityPopulation, defenderSquadNumbers, defenderSquadDeaths, defenderSquadSite;
NotableAttackers = new List<HistoricalFigure>(); NotableDefenders = new List<HistoricalFigure>();
AttackerSquads = new List<Squad>(); DefenderSquads = new List<Squad>();
attackerSquadRace = new List<string>(); attackerSquadEntityPopulation = new List<int>(); attackerSquadNumbers = new List<int>(); attackerSquadDeaths = new List<int>();
attackerSquadSite = new List<int>();
defenderSquadRace = new List<string>(); defenderSquadEntityPopulation = new List<int>(); defenderSquadNumbers = new List<int>(); defenderSquadDeaths = new List<int>();
defenderSquadSite = new List<int>();
Attackers = new List<Squad>();
Defenders = new List<Squad>();
NonCombatants = new List<HistoricalFigure>();
foreach (Property property in properties)
switch (property.Name)
{
case "outcome": switch (property.Value)
{
case "attacker won": Outcome = BattleOutcome.AttackerWon; break;
case "defender won": Outcome = BattleOutcome.DefenderWon; break;
default: Outcome = BattleOutcome.Unknown; world.ParsingErrors.Report("Unknown Battle Outcome: " + property.Value); break;
} break;
case "name": Name = Formatting.InitCaps(property.Value); break;
case "coords": Coordinates = Formatting.ConvertToLocation(property.Value); break;
case "war_eventcol": ParentCollection = world.GetEventCollection(Convert.ToInt32(property.Value)); break;
case "subregion_id": Region = world.GetRegion(Convert.ToInt32(property.Value)); break;
case "feature_layer_id": UndergroundRegion = world.GetUndergroundRegion(Convert.ToInt32(property.Value)); break;
case "site_id": Site = world.GetSite(Convert.ToInt32(property.Value)); break;
case "attacking_hfid": NotableAttackers.Add(world.GetHistoricalFigure(Convert.ToInt32(property.Value))); break;
case "defending_hfid": NotableDefenders.Add(world.GetHistoricalFigure(Convert.ToInt32(property.Value))); break;
case "attacking_squad_race": attackerSquadRace.Add(Formatting.FormatRace(property.Value)); break;
case "attacking_squad_entity_pop": attackerSquadEntityPopulation.Add(Convert.ToInt32(property.Value)); break;
case "attacking_squad_number": attackerSquadNumbers.Add(Convert.ToInt32(property.Value)); break;
case "attacking_squad_deaths": attackerSquadDeaths.Add(Convert.ToInt32(property.Value)); break;
case "attacking_squad_site": attackerSquadSite.Add(Convert.ToInt32(property.Value)); break;
case "defending_squad_race": defenderSquadRace.Add(Formatting.FormatRace(property.Value)); break;
case "defending_squad_entity_pop": defenderSquadEntityPopulation.Add(Convert.ToInt32(property.Value)); break;
case "defending_squad_number": defenderSquadNumbers.Add(Convert.ToInt32(property.Value)); break;
case "defending_squad_deaths": defenderSquadDeaths.Add(Convert.ToInt32(property.Value)); break;
case "defending_squad_site": defenderSquadSite.Add(Convert.ToInt32(property.Value)); break;
case "noncom_hfid": NonCombatants.Add(world.GetHistoricalFigure(Convert.ToInt32(property.Value))); break;
}
if (Collection.OfType<AttackedSite>().Count() > 0)
{
Attacker = Collection.OfType<AttackedSite>().First().Attacker;
Defender = Collection.OfType<AttackedSite>().First().Defender;
}
else if (Collection.OfType<FieldBattle>().Count() > 0)
{
Attacker = Collection.OfType<FieldBattle>().First().Attacker;
Defender = Collection.OfType<FieldBattle>().First().Defender;
}
foreach (HistoricalFigure attacker in NotableAttackers) attacker.Battles.Add(this);
foreach (HistoricalFigure defender in NotableDefenders) defender.Battles.Add(this);
foreach (HistoricalFigure nonCombatant in NonCombatants) nonCombatant.Battles.Add(this);
for (int i = 0; i < attackerSquadRace.Count; i++)
AttackerSquads.Add(new Squad(attackerSquadRace[i], attackerSquadNumbers[i], attackerSquadDeaths[i], attackerSquadSite[i], attackerSquadEntityPopulation[i]));
for (int i = 0; i < defenderSquadRace.Count; i++)
DefenderSquads.Add(new Squad(defenderSquadRace[i], defenderSquadNumbers[i], defenderSquadDeaths[i], defenderSquadSite[i], defenderSquadEntityPopulation[i]));
var groupedAttackerSquads = from squad in AttackerSquads
group squad by squad.Race into squadRace
select new { Race = squadRace.Key, Count = squadRace.Sum(squad => squad.Numbers), Deaths = squadRace.Sum(squad => squad.Deaths) };
foreach (var squad in groupedAttackerSquads)
Attackers.Add(new Squad(squad.Race, squad.Count + NotableAttackers.Count(attacker => attacker.Race == squad.Race), squad.Deaths + Collection.OfType<HFDied>().Count(death => death.HistoricalFigure.Race == squad.Race && NotableAttackers.Contains(death.HistoricalFigure)), -1, -1));
foreach (var attacker in NotableAttackers.Where(hf => Attackers.Count(squad => squad.Race == hf.Race) == 0).GroupBy(hf => hf.Race).Select(race => new { Race = race.Key, Count = race.Count() }))
{
Attackers.Add(new Squad(attacker.Race, attacker.Count, Collection.OfType<HFDied>().Count(death => NotableAttackers.Contains(death.HistoricalFigure) && death.HistoricalFigure.Race == attacker.Race), -1, -1));
}
AttackersAsList = new List<string>();
foreach (Squad squad in Attackers)
for (int i = 0; i < squad.Numbers; i++)
AttackersAsList.Add(squad.Race);
var groupedDefenderSquads = from squad in DefenderSquads
group squad by squad.Race into squadRace
select new { Race = squadRace.Key, Count = squadRace.Sum(squad => squad.Numbers), Deaths = squadRace.Sum(squad => squad.Deaths) };
foreach (var squad in groupedDefenderSquads)
Defenders.Add(new Squad(squad.Race, squad.Count + NotableDefenders.Count(defender => defender.Race == squad.Race), squad.Deaths + Collection.OfType<HFDied>().Count(death => death.HistoricalFigure.Race == squad.Race && NotableDefenders.Contains(death.HistoricalFigure)), -1, -1));
foreach (var defender in NotableDefenders.Where(hf => Defenders.Count(squad => squad.Race == hf.Race) == 0).GroupBy(hf => hf.Race).Select(race => new { Race = race.Key, Count = race.Count() }))
{
Defenders.Add(new Squad(defender.Race, defender.Count, Collection.OfType<HFDied>().Count(death => NotableDefenders.Contains(death.HistoricalFigure) && death.HistoricalFigure.Race == defender.Race), -1, -1));
}
DefendersAsList = new List<string>();
foreach (Squad squad in Defenders)
for (int i = 0; i < squad.Numbers; i++)
DefendersAsList.Add(squad.Race);
Deaths = new List<string>();
foreach (Squad squad in Attackers.Concat(Defenders))
for (int i = 0; i < squad.Deaths; i++)
Deaths.Add(squad.Race);
//.........这里部分代码省略.........