public override int GetCredit(Troop source, Troop destination) { if (!this.IsVaild(destination)) { return 0; } int num = 0; int pureFightingForce = source.PureFightingForce; foreach (Troop troop in source.GetAreaStratagemTroops(destination, false)) { int num3 = source.GetStratagemSuccessChanceCredit(troop, source.InevitableHuogongOnLowerIntelligence || source.InevitableStratagemOnLowerIntelligence, troop.InvincibleHuogong, troop.InvincibleStratagemFromLowerIntelligence); if (num3 > 0) { num3 = (int)(((num3 + (((5 - troop.Army.Scales) * 5))) * (troop.FireDamageRate - 1)) * troop.PureFightingForce) / pureFightingForce; if (troop.RateOfFireProtection > 0f) { num += (int) (num3 * troop.RateOfFireProtection); } else { num += num3; } } } return (int) (num * source.RateOfFireDamage); }
public override int GetCredit(Troop source, Troop destination) { if (!this.IsVaild(destination)) { return 0; } int num = 0; int fightingForce = source.FightingForce; foreach (Troop troop in source.GetAreaStratagemTroops(destination, true)) { int num3 = troop.Army.MoraleCeiling - troop.Army.Morale; if ((num3 >= 5) || !GameObject.Chance(0x5f)) { int num4 = source.GetStratagemSuccessChanceCredit(troop, false, false, false); if (num4 > 0) { int num5 = source.GenerateBoostIncrement(this.baseIncrement); if (num3 < num5) { num4 = ((((num4 + ((100 - troop.Morale) / 2)) * troop.FightingForce) * num3) / num5) / fightingForce; } else { num4 = ((num4 + ((100 - troop.Morale) / 2)) * troop.FightingForce) / fightingForce; } num += num4; } } } return num; }
public override int GetCredit(Troop source, Troop destination) { int num = 0; int pureFightingForce = source.PureFightingForce; foreach (Troop troop in source.GetAreaStratagemTroops(destination, false)) { int num3 = source.GetStratagemSuccessChanceCredit(troop, source.InevitableRaoluanOnLowerIntelligence || source.InevitableStratagemOnLowerIntelligence, (troop.NeverBeIntoChaos || troop.OutburstNeverBeIntoChaos) || troop.InvincibleRaoluan, troop.InvincibleStratagemFromLowerIntelligence); if (num3 > 0) { num3 = (((num3 + ((120 - troop.Morale) / 2)) + ((troop.Army.Scales - 5) * 5)) * troop.PureFightingForce) / pureFightingForce; num += num3; } } return ((num * (2 + (source.IncrementOfChaosDay * 3))) / 2); }
public override int GetCredit(Troop source, Troop destination) { int num = 0; int pureFightingForce = source.PureFightingForce; foreach (Troop troop in source.GetAreaStratagemTroops(destination, false)) { int num3 = source.GetStratagemSuccessChanceCredit(troop, source.InevitableGongxinOnLowerIntelligence || source.InevitableStratagemOnLowerIntelligence, troop.InvincibleGongxin, troop.InvincibleStratagemFromLowerIntelligence); if (num3 > 0) { num3 = (((num3 + ((100 - troop.Morale) / 2)) + ((troop.Army.Scales - 5) * 5)) * troop.PureFightingForce) / pureFightingForce; num += num3; } } return (int) (num * source.RateOfGongxin); }
public override int GetCredit(Troop source, Troop destination) { int num = 0; int pureFightingForce = source.PureFightingForce; foreach (Troop troop in source.GetAreaStratagemTroops(destination, false)) { int num3 = source.GetStratagemSuccessChanceCredit(troop, source.InevitableRumourOnLowerIntelligence || source.InevitableStratagemOnLowerIntelligence, troop.InvincibleAttract, troop.InvincibleStratagemFromLowerIntelligence); if (num3 > 0) { num3 = ((num3 + ((troop.Army.Scales - 5) * 10)) * troop.PureFightingForce) / pureFightingForce; num += num3; } } return ((num * (2 + (source.IncrementOfRumourDay * 3))) / 2); }
public override int GetCredit(Troop source, Troop destination) { if (!this.IsVaild(destination)) { return 0; } int num = 0; int pureFightingForce = source.PureFightingForce; foreach (Troop troop in source.GetAreaStratagemTroops(destination, true)) { int num3 = source.GetStratagemSuccessChanceCredit(troop, false, false, false); if (num3 > 0) { num3 = (num3 * troop.FightingForce) / pureFightingForce; num += num3; } } return (num * 2); }
public override int GetCredit(Troop source, Troop destination) { if (!this.IsVaild(destination)) { return 0; } int num = 0; int fightingForce = source.FightingForce; foreach (Troop troop in source.GetAreaStratagemTroops(destination, true)) { float rate = ((float) troop.InjuryQuantity) / ((float) troop.Army.Kind.MinScale); int num4 = source.GetStratagemSuccessChanceCredit(troop, false, false, false); if (num4 > 0) { if (rate > this.rate) { rate = this.rate; } num += (int) ((((num4 * rate) / this.rate) * troop.FightingForce) / ((float) fightingForce)); } } return num; }