Example #1
0
 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();
 }
Example #2
0
        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);
                        }
                    }

        }
Example #3
0
        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);
                }
            }
        }