예제 #1
0
    private void ReleaseKaijuArmyActions()
    {
        DepartmentOfDefense  agency = this.Empire.GetAgency <DepartmentOfDefense>();
        SimulationDescriptor value  = this.SimulationDescriptorDatabase.GetValue(DepartmentOfTheInterior.ArmyStatusBesiegerDescriptorName);

        this.KaijuArmy.RemoveDescriptor(value);
        if (this.KaijuArmy.IsEarthquaker)
        {
            this.KaijuArmy.SetEarthquakerStatus(false, false, null);
        }
        if (this.KaijuArmy.PillageTarget.IsValid)
        {
            DepartmentOfDefense.StopPillage(this.KaijuArmy);
        }
        if (this.KaijuArmy.IsAspirating)
        {
            agency.StopAspirating(this.KaijuArmy);
        }
        if (this.KaijuArmy.IsDismantlingDevice)
        {
            ITerraformDeviceRepositoryService service = this.gameService.Game.Services.GetService <ITerraformDeviceRepositoryService>();
            TerraformDevice device = service[this.KaijuArmy.DismantlingDeviceTarget] as TerraformDevice;
            agency.StopDismantelingDevice(this.KaijuArmy, device);
        }
        if (this.KaijuArmy.IsDismantlingCreepingNode)
        {
            CreepingNode creepingNode = null;
            if (this.gameEntityRepositoryService.TryGetValue <CreepingNode>(this.KaijuArmy.DismantlingCreepingNodeTarget, out creepingNode))
            {
                agency.StopDismantelingCreepingNode(this.KaijuArmy, creepingNode);
            }
        }
        IWorldPositionningService service2 = this.gameService.Game.Services.GetService <IWorldPositionningService>();
        Region region = service2.GetRegion(this.KaijuArmy.WorldPosition);

        if (region.City != null && region.City.Empire != this.Empire)
        {
            DepartmentOfTheInterior agency2 = region.City.Empire.GetAgency <DepartmentOfTheInterior>();
            if (agency2 != null)
            {
                if (region.City.BesiegingEmpire == this.Empire && agency2.NeedToStopSiege(region.City))
                {
                    agency2.StopSiege(region.City);
                }
                agency2.StopNavalSiege(region.City, this.KaijuArmy);
            }
            IVisibilityService service3 = this.gameService.Game.Services.GetService <IVisibilityService>();
            service3.NotifyVisibilityHasChanged(this.Empire);
        }
    }