public void Investigate(int days) { Information information = new Information(); information.Scenario = base.Scenario; information.ID = base.Scenario.Informations.GetFreeGameObjectID(); information.Level = this.InvestigateLevel; information.Radius = this.InvestigateRadius; information.Position = this.SelfCastPosition; information.Oblique = false; information.DaysLeft = days; base.Scenario.Informations.AddInformation(information); this.BelongedFaction.AddInformation(information); information.Apply(); }
public void DoInformation() { if (!base.Scenario.IsPlayer(this.BelongedFaction) || (this.InformationAbility >90 && GameObject.Random(280) < this.InformationAbility)) { Information information = new Information(); information.Scenario = base.Scenario; information.ID = base.Scenario.Informations.GetFreeGameObjectID(); information.Level = this.CurrentInformationKind.Level; information.Radius = this.CurrentInformationKind.Radius + this.RadiusIncrementOfInformation; information.Position = this.OutsideDestination.Value; information.Oblique = this.CurrentInformationKind.Oblique; information.DaysLeft = this.CurrentInformationKind.Days; base.Scenario.Informations.AddInformation(information); this.BelongedFaction.AddInformation(information); information.Apply(); this.CurrentInformationKind = null; this.OutsideTask = OutsideTaskKind.无; int increment = (int)(((int)information.Level - 2) * (information.Radius + (information.Oblique ? 1 : 0))); this.AddTacticsExperience(increment * 2); this.AddIntelligenceExperience(increment); this.IncreaseReputation(increment * 2); this.BelongedFaction.IncreaseReputation(increment * this.MultipleOfTacticsReputation); this.BelongedFaction.IncreaseTechniquePoint((increment * this.MultipleOfTacticsTechniquePoint) * 100); if (this.OnInformationObtained != null) { this.OnInformationObtained(this, information); } } else { int increment = (int)(((int)this.CurrentInformationKind.Level - 2) * (this.CurrentInformationKind.Radius + (this.CurrentInformationKind.Oblique? 1 : 0))); this.AddTacticsExperience(increment * 2); this.AddIntelligenceExperience(increment); this.CurrentInformationKind = null; this.OutsideTask = OutsideTaskKind.无; if (this.qingbaoshibaishijian != null) { this.qingbaoshibaishijian(this); } } }
public void DoInformation() { if (this.CurrentInformationKind != null && (!base.Scenario.IsPlayer(this.BelongedFaction) || (this.InformationAbility >90 && GameObject.Random(280) < this.InformationAbility))) { Information information = new Information(); information.Scenario = base.Scenario; information.ID = base.Scenario.Informations.GetFreeGameObjectID(); information.Level = this.CurrentInformationKind.Level; information.Radius = this.CurrentInformationKind.Radius + this.RadiusIncrementOfInformation + (this.InformationAbility + GameObject.Random(100) - 50) / 200; information.Position = this.OutsideDestination.Value; information.Oblique = this.CurrentInformationKind.Oblique; information.DayCost = (int)(240.0 / this.InformationAbility * this.CurrentInformationKind.CostFund * Math.Max(1.0, base.Scenario.GetDistance(information.Position, this.BelongedArchitecture.Position) / 20.0)); base.Scenario.Informations.AddInformation(information); this.BelongedArchitecture.AddInformation(information); information.Apply(); this.CurrentInformationKind = null; this.OutsideTask = OutsideTaskKind.无; int increment = (int)(((int)information.Level - 2) * (information.Radius + (information.Oblique ? 1 : 0))); this.AddTacticsExperience(increment * 2); this.AddIntelligenceExperience(increment); this.IncreaseReputation(increment * 2); this.BelongedFaction.IncreaseReputation(increment * this.MultipleOfTacticsReputation); this.BelongedFaction.IncreaseTechniquePoint((increment * this.MultipleOfTacticsTechniquePoint) * 100); ExtensionInterface.call("DoInformationSuccess", new Object[] { this.Scenario, this, information }); if (this.OnInformationObtained != null) { this.OnInformationObtained(this, information); } } else { if (this.CurrentInformationKind != null) { int increment = (int)(((int)this.CurrentInformationKind.Level - 2) * (this.CurrentInformationKind.Radius + (this.CurrentInformationKind.Oblique ? 1 : 0))); this.AddTacticsExperience(increment * 2); this.AddIntelligenceExperience(increment); this.CurrentInformationKind = null; } this.OutsideTask = OutsideTaskKind.无; ExtensionInterface.call("DoInformationFail", new Object[] { this.Scenario, this }); if (this.qingbaoshibaishijian != null) { this.qingbaoshibaishijian(this); } } }