本文整理汇总了C#中GameObjects.Troop.TryToPlaySound方法的典型用法代码示例。如果您正苦于以下问题:C# Troop.TryToPlaySound方法的具体用法?C# Troop.TryToPlaySound怎么用?C# Troop.TryToPlaySound使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObjects.Troop
的用法示例。
在下文中一共展示了Troop.TryToPlaySound方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetCurrentStratagemSuccess
public bool GetCurrentStratagemSuccess(Troop troop, bool inevitableSuccess, bool invincible, bool lowerIntelligenceInvincible)
{
int num = 0;
bool flag = false;
if (!this.CurrentStratagem.Friendly)
{
if (invincible)
{
flag = false;
}
else if (lowerIntelligenceInvincible && (this.TroopIntelligence < troop.TroopIntelligence))
{
flag = false;
}
else if (inevitableSuccess && (this.TroopIntelligence > troop.TroopIntelligence))
{
flag = true;
}
else
{
num = ((((this.TroopIntelligence + this.StratagemChanceIncrement) + this.Leader.Calmness) - troop.TroopIntelligence) - troop.ChanceDecrementOfStratagem) - troop.Leader.Calmness;
int chance = this.CurrentStratagem.Chance + num;
flag = GameObject.Chance(chance);
}
}
else
{
flag = GameObject.Chance(this.TroopIntelligence + this.StratagemChanceIncrement);
}
if (!this.CurrentStratagem.Friendly)
{
if (flag)
{
if (this.OrientationTroop == troop)
{
this.WaitForDeepChaos = !troop.NeverBeIntoChaos && GameObject.Chance(this.ChaosAfterStratagemSuccessChance);
this.WaitForDeepChaosFrameCount = 100;
}
if (this.OnStratagemSuccess != null)
{
this.OnStratagemSuccess(this, troop, this.CurrentStratagem, true);
}
}
else
{
GameObjects.Animations.TileAnimation animation = base.Scenario.GeneratorOfTileAnimation.AddTileAnimation(TileAnimationKind.抵挡, troop.Position, false);
if (animation != null)
{
troop.TryToPlaySound(troop.Position, animation.LinkedAnimation.SoundPath, false);
}
if (this.OnResistStratagem != null)
{
this.OnResistStratagem(this, troop, this.CurrentStratagem, true);
}
}
}
else if (flag)
{
if (((troop != null) && (this.OnStratagemSuccess != null)) && (this != troop))
{
this.OnStratagemSuccess(this, troop, this.CurrentStratagem, false);
}
}
else if ((troop != null) && (this.OnResistStratagem != null))
{
this.OnResistStratagem(this, troop, this.CurrentStratagem, false);
}
int increment = (2 + (flag ? 1 : 0)) + (this.WaitForDeepChaos ? 2 : 0);
this.IncreaseStratagemExperience(increment, true);
if (troop != null)
{
troop.IncreaseStratagemExperience(increment, false);
}
if (this.BelongedFaction != null)
{
if (flag)
{
if (this.BelongedFaction.RateOfCombativityRecoveryAfterStratagemSuccess > 0f)
{
this.IncreaseCombativity(StaticMethods.GetRandomValue((int) ((this.Leader.Calmness * 100) * this.BelongedFaction.RateOfCombativityRecoveryAfterStratagemSuccess), 100));
}
return flag;
}
if (this.BelongedFaction.RateOfCombativityRecoveryAfterStratagemFail > 0f)
{
this.IncreaseCombativity(StaticMethods.GetRandomValue((int) ((this.Leader.Calmness * 100) * this.BelongedFaction.RateOfCombativityRecoveryAfterStratagemFail), 100));
}
}
return flag;
}
示例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.鼓舞;
}
}
}
}
示例3: GetCurrentStratagemSuccess
public bool GetCurrentStratagemSuccess(Troop troop, bool inevitableSuccess, bool invincible, bool lowerIntelligenceInvincible)
{
int num = 0;
bool flag = false;
if (!this.CurrentStratagem.Friendly)
{
if (invincible)
{
flag = false;
}
else if (lowerIntelligenceInvincible && (this.TroopIntelligence < troop.TroopIntelligence))
{
flag = false;
}
else if (inevitableSuccess && (this.TroopIntelligence > troop.TroopIntelligence))
{
flag = true;
}
else
{
num = ((((this.TroopIntelligence + this.StratagemChanceIncrement) + this.Leader.Calmness) - troop.TroopIntelligence) - troop.ChanceDecrementOfStratagem) - troop.Leader.Calmness;
int chance = this.CurrentStratagem.Chance + num;
flag = GameObject.Chance(chance);
}
}
else
{
flag = GameObject.Chance(this.TroopIntelligence + this.StratagemChanceIncrement);
}
if (!this.CurrentStratagem.Friendly)
{
if (flag)
{
if (this.OrientationTroop == troop)
{
this.WaitForDeepChaos = !troop.NeverBeIntoChaos && GameObject.Chance(this.ChaosAfterStratagemSuccessChance);
this.WaitForDeepChaosFrameCount = 100;
}
if (this.OnStratagemSuccess != null)
{
this.OnStratagemSuccess(this, troop, this.CurrentStratagem, true);
}
this.Persons.GetMaxIntelligencePerson().StratagemSuccessCount++;
troop.Persons.GetMaxIntelligencePerson().StratagemBeSuccessCount++;
}
else
{
GameObjects.Animations.TileAnimation animation = base.Scenario.GeneratorOfTileAnimation.AddTileAnimation(TileAnimationKind.抵挡, troop.Position, false);
if (animation != null)
{
troop.TryToPlaySound(troop.Position, this.getSoundPath(animation.LinkedAnimation), false);
}
if (this.OnResistStratagem != null)
{
this.OnResistStratagem(this, troop, this.CurrentStratagem, true);
}
this.Persons.GetMaxIntelligencePerson().StratagemFailCount++;
troop.Persons.GetMaxIntelligencePerson().StratagemBeFailCount++;
}
}
else if (flag)
{
if (((troop != null) && (this.OnStratagemSuccess != null)) && (this != troop))
{
this.OnStratagemSuccess(this, troop, this.CurrentStratagem, false);
}
this.Persons.GetMaxIntelligencePerson().StratagemSuccessCount++;
}
else if ((troop != null) && (this.OnResistStratagem != null))
{
this.OnResistStratagem(this, troop, this.CurrentStratagem, false);
this.Persons.GetMaxIntelligencePerson().StratagemFailCount++;
}
int increment = (2 + (flag ? 1 : 0)) + (this.WaitForDeepChaos ? 2 : 0);
this.IncreaseStratagemExperience(increment, true);
if (troop != null)
{
troop.IncreaseStratagemExperience(increment, false);
}
if (this.BelongedFaction != null)
{
if (flag)
{
if (this.BelongedFaction.RateOfCombativityRecoveryAfterStratagemSuccess > 0f)
{
this.IncreaseCombativity(StaticMethods.GetRandomValue((int)((this.Leader.Calmness * 100) * this.BelongedFaction.RateOfCombativityRecoveryAfterStratagemSuccess), 100));
}
if (troop.BelongedFaction != this.BelongedFaction)
{
troop.army.Tiredness += this.stratagemTirednessIncrease;
}
if (this.stratagemStealTroop > 0 && troop.BelongedFaction != this.BelongedFaction)
{
int c = Math.Min(troop.Quantity, this.stratagemStealTroop);
troop.DecreaseQuantity(c);
this.IncreaseQuantity(c);
//.........这里部分代码省略.........
示例4: 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)
{
//.........这里部分代码省略.........