本文整理汇总了C#中GameObjects.Troop.ReleaseCaptiveBeforeBeRouted方法的典型用法代码示例。如果您正苦于以下问题:C# Troop.ReleaseCaptiveBeforeBeRouted方法的具体用法?C# Troop.ReleaseCaptiveBeforeBeRouted怎么用?C# Troop.ReleaseCaptiveBeforeBeRouted使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObjects.Troop
的用法示例。
在下文中一共展示了Troop.ReleaseCaptiveBeforeBeRouted方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckTroopRout
public static void CheckTroopRout(Troop sending, Troop receiving)
{
if (!receiving.Destroyed && ((receiving.Quantity <= 0) || (receiving.Morale <= 0) || receiving.PersonCount == 0))
{
Faction belongedFaction = null;
Person leader = null;
if (receiving.BelongedFaction != null)
{
belongedFaction = receiving.BelongedFaction;
leader = belongedFaction.Leader;
}
if (sending.OnRout != null)
{
sending.OnRout(sending, receiving);
}
if (receiving.OnRouted != null)
{
receiving.OnRouted(sending, receiving);
}
GameObjects.Animations.TileAnimation animation = sending.Scenario.GeneratorOfTileAnimation.AddTileAnimation(TileAnimationKind.被击破, receiving.Position, false);
if (animation != null)
{
receiving.TryToPlaySound(receiving.Position, Troop.getSoundPath(receiving, animation.LinkedAnimation), false);
}
if ((sending.BelongedFaction != null) && (belongedFaction != null))
{
sending.Scenario.ChangeDiplomaticRelation(sending.BelongedFaction.ID, receiving.BelongedFaction.ID, -10);
sending.Scenario.ReflectDiplomaticRelations(sending.BelongedFaction.ID, receiving.BelongedFaction.ID, -10);
}
if (sending.BelongedFaction != null)
{
sending.IncreaseRoutExperience(true);
sending.AddRoutCount();
foreach (Person p in sending.persons)
{
foreach (Person q in sending.persons)
{
if (p == q) continue;
p.AdjustRelation(q, 1f / (sending.persons.Count - 1), 3);
}
}
}
if (GameObject.Chance(sending.stealTreasureRate) && sending.BelongedFaction != null)
{
foreach (Person p in receiving.Persons.GetRandomList())
{
if (p.TreasureCount > 0)
{
Treasure t = (Treasure)p.Treasures[GameObject.Random(p.Treasures.Count)];
p.LoseTreasure(t);
sending.BelongedFaction.Leader.ReceiveTreasure(t);
break;
}
}
}
if (belongedFaction != null)
{
receiving.IncreaseRoutExperience(false);
receiving.AddRoutedCount();
receiving.ReleaseCaptiveBeforeBeRouted();
if (sending.BelongedFaction != null)
{
sending.CheckCaptiveBeforeRout(receiving);
}
}
if (sending.StartingArchitecture != null)
{
sending.StartingArchitecture.AddPopulationPack((int)(sending.Scenario.GetDistance(receiving.Position, sending.StartingArchitecture.ArchitectureArea) / 2.0), receiving.GetPopulation());
}
Architecture oldLandedArch = sending.Scenario.GetArchitectureByPosition(receiving.Position);
if (sending.Army.Kind.ArchitectureCounterDamageRate <= 0 && oldLandedArch != null && !sending.BelongedFaction.IsFriendly(oldLandedArch.BelongedFaction))
{
sending.TargetArchitecture = oldLandedArch;
}
foreach (Person p in sending.Persons)
{
foreach (KeyValuePair<int, int> i in p.CommandDecrease)
{
if (GameObject.Chance(i.Key))
{
receiving.Leader.BaseCommand -= i.Value;
}
}
foreach (KeyValuePair<int, int> i in p.StrengthDecrease)
{
if (GameObject.Chance(i.Key))
{
receiving.Leader.BaseStrength -= i.Value;
}
}
foreach (KeyValuePair<int, int> i in p.IntelligenceDecrease)
{
if (GameObject.Chance(i.Key))
{
receiving.Leader.BaseIntelligence -= i.Value;
}
}
foreach (KeyValuePair<int, int> i in p.PoliticsDecrease)
{
//.........这里部分代码省略.........
示例2: CheckTroopRout
public static void CheckTroopRout(Troop sending, Troop receiving)
{
if (!receiving.Destroyed && ((receiving.Quantity <= 0) || (receiving.Morale <= 0)))
{
Faction belongedFaction = null;
Person leader = null;
if (receiving.BelongedFaction != null)
{
belongedFaction = receiving.BelongedFaction;
leader = belongedFaction.Leader;
}
if (sending.OnRout != null)
{
sending.OnRout(sending, receiving);
}
if (receiving.OnRouted != null)
{
receiving.OnRouted(sending, receiving);
}
GameObjects.Animations.TileAnimation animation = sending.Scenario.GeneratorOfTileAnimation.AddTileAnimation(TileAnimationKind.被击破, receiving.Position, false);
if (animation != null)
{
receiving.TryToPlaySound(receiving.Position, animation.LinkedAnimation.SoundPath, false);
}
if ((sending.BelongedFaction != null) && (belongedFaction != null))
{
sending.Scenario.ChangeDiplomaticRelation(sending.BelongedFaction.ID, receiving.BelongedFaction.ID, -10);
sending.Scenario.ReflectDiplomaticRelations(sending.BelongedFaction.ID, receiving.BelongedFaction.ID, -10);
}
if (sending.BelongedFaction != null)
{
sending.IncreaseRoutExperience(true);
sending.AddRoutCount();
}
if (belongedFaction != null)
{
receiving.IncreaseRoutExperience(false);
receiving.AddRoutedCount();
receiving.ReleaseCaptiveBeforeBeRouted();
if (sending.BelongedFaction != null)
{
sending.CheckCaptiveBeforeRout(receiving);
}
}
if (sending.StartingArchitecture != null)
{
sending.StartingArchitecture.AddPopulationPack((int) (sending.Scenario.GetDistance(receiving.Position, sending.StartingArchitecture.ArchitectureArea) / 2.0), receiving.GetPopulation());
}
receiving.BeRouted();
if (sending.Combativity < sending.Army.CombativityCeiling)
{
sending.IncreaseCombativity(10 + sending.RoutIncrementOfCombativity);
if (sending.PreAction == TroopPreAction.无)
{
sending.PreAction = TroopPreAction.鼓舞;
}
}
if (sending.Morale < sending.Army.MoraleCeiling)
{
sending.IncreaseMorale(5);
if (sending.PreAction == TroopPreAction.无)
{
sending.PreAction = TroopPreAction.鼓舞;
}
}
}
}