本文整理汇总了C#中GameObjects.Faction.PrepareData方法的典型用法代码示例。如果您正苦于以下问题:C# Faction.PrepareData方法的具体用法?C# Faction.PrepareData怎么用?C# Faction.PrepareData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObjects.Faction
的用法示例。
在下文中一共展示了Faction.PrepareData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateNewFaction
private void CreateNewFaction(Person leader)
{
if (leader.Status != PersonStatus.NoFaction) return;
if (leader.LocationArchitecture.BelongedFaction != null) return;
Faction newFaction = new Faction();
newFaction.Scenario = this;
newFaction.ID = this.Factions.GetFreeGameObjectID();
this.Factions.AddFactionWithEvent(newFaction);
foreach (Faction faction2 in this.Factions)
{
if (faction2 != newFaction)
{
this.DiplomaticRelations.AddDiplomaticRelation(this, newFaction.ID, faction2.ID, 0);
}
}
newFaction.Leader = leader;
leader.Loyalty = 100;
newFaction.Reputation = leader.Reputation;
newFaction.Name = leader.Name;
if (leader.PersonBiography != null)
{
foreach (MilitaryKind kind in leader.PersonBiography.MilitaryKinds.MilitaryKinds.Values)
{
newFaction.BaseMilitaryKinds.AddMilitaryKind(kind);
}
newFaction.ColorIndex = leader.PersonBiography.FactionColor;
}
else
{
newFaction.BaseMilitaryKinds.AddBasicMilitaryKinds(this);
newFaction.ColorIndex = -1;
}
List<int> allUnusedColors = new List<int>();
for (int i = 0; i < this.GameCommonData.AllColors.Count; ++i)
{
allUnusedColors.Add(i);
}
foreach (Faction f in this.Factions)
{
allUnusedColors.Remove(f.ColorIndex);
}
if (allUnusedColors.Count == 0)
{
newFaction.ColorIndex = GameObject.Random(this.GameCommonData.AllColors.Count);
}
else
{
if (!allUnusedColors.Contains(newFaction.ColorIndex))
{
newFaction.ColorIndex = allUnusedColors[GameObject.Random(allUnusedColors.Count)];
}
}
newFaction.FactionColor = this.GameCommonData.AllColors[newFaction.ColorIndex];
Architecture newFactionCapital = leader.LocationArchitecture;
Faction oldFaction = newFactionCapital.BelongedFaction;
newFaction.Capital = newFactionCapital;
if (leader.BelongedFaction == null)
{
leader.Status = PersonStatus.Normal;
}
else
{
this.ChangeDiplomaticRelation(newFaction.ID, newFactionCapital.BelongedFaction.ID, -500);
}
newFaction.PrepareData();
newFactionCapital.ResetFaction(newFaction);
newFaction.AddArchitectureKnownData(newFactionCapital);
newFaction.FirstSection.AddArchitecture(newFactionCapital);
if (oldFaction != null && !GameObject.Chance((int)oldFaction.Leader.PersonalLoyalty * 10))
{
oldFaction.Leader.AddHated(leader);
}
foreach (Person p in this.AvailablePersons)
{
if ((p.BelongedFaction == null || p.BelongedFaction == oldFaction) && !p.IsCaptive && p.Status != PersonStatus.Princess && p != leader)
{
if (p.HasCloseStrainTo(leader) || p.IsVeryCloseTo(leader) || (GameObject.Chance(100 - (Person.GetIdealOffset(leader, p)) * 20)))
{
if (p.BelongedFaction == null || (GameObject.Chance(100 - ((int)p.PersonalLoyalty) * 25) && GameObject.Chance(220 - p.Loyalty * 2)))
{
if (p.BelongedFaction != null)
{
p.ChangeFaction(newFaction);
}
p.InitialLoyalty();
p.MoveToArchitecture(newFactionCapital);
}
}
}
}
ExtensionInterface.call("CreateNewFaction", new Object[]{this, oldFaction, newFaction, newFactionCapital});
//.........这里部分代码省略.........