Пример #1
0
    private void EventService_EventRaise(object sender, EventRaiseEventArgs eventArgs)
    {
        EventEmpireEliminated eventEmpireEliminated = eventArgs.RaisedEvent as EventEmpireEliminated;

        if (eventEmpireEliminated == null)
        {
            return;
        }
        Amplitude.Unity.Game.Empire eliminatedEmpire = eventEmpireEliminated.EliminatedEmpire;
        DepartmentOfForeignAffairs  agency           = eliminatedEmpire.GetAgency <DepartmentOfForeignAffairs>();

        Diagnostics.Assert(agency != null);
        for (int i = 0; i < this.majorEmpires.Length; i++)
        {
            global::Empire empire = this.majorEmpires[i];
            if (i != eliminatedEmpire.Index)
            {
                DiplomaticRelation diplomaticRelation = agency.GetDiplomaticRelation(empire);
                Diagnostics.Assert(diplomaticRelation != null && diplomaticRelation.State != null);
                if (diplomaticRelation.State.Name != DiplomaticRelationState.Names.Dead)
                {
                    OrderChangeDiplomaticRelationState order = new OrderChangeDiplomaticRelationState(eliminatedEmpire.Index, i, DiplomaticRelationState.Names.Dead);
                    this.PlayerController.PostOrder(order);
                }
            }
        }
    }
Пример #2
0
 public static void ShowHidePopulationSacrificeButton(Amplitude.Unity.Game.Empire observer, DepartmentOfScience departmentOfScience, AgeControlButton populationSacrificeButton)
 {
     if (departmentOfScience.CanSacrificePopulation() && departmentOfScience.Empire == observer)
     {
         populationSacrificeButton.AgeTransform.Visible = true;
     }
     else
     {
         populationSacrificeButton.AgeTransform.Visible = false;
     }
 }
Пример #3
0
 public static void RefreshPopulationSacrificeButton(Amplitude.Unity.Game.Empire observer, City city, AgeControlButton populationSacrificeButton)
 {
     if (DepartmentOfTheInterior.CanSacrificePopulation(city) && observer == city.Empire)
     {
         populationSacrificeButton.AgeTransform.Enable             = CityInfoPanel.interactionsAllowed;
         populationSacrificeButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityPopulationSacrificeDescription");
         populationSacrificeButton.AgeTransform.AgeTooltip.Content = populationSacrificeButton.AgeTransform.AgeTooltip.Content.Replace("1 \\7708\\", ((int)(city.Empire.GetPropertyValue(SimulationProperties.GameSpeedMultiplier) * 2f)).ToString() + " \\7708\\");
         return;
     }
     populationSacrificeButton.AgeTransform.Enable             = false;
     populationSacrificeButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityCannotSacrificePopulationDescription");
 }
Пример #4
0
    public static void ShowHidePopulationBuyoutButton(Amplitude.Unity.Game.Empire observer, City city, AgeTransform populationBuyoutButton, AgeTransform populationGaugeBackground, AgeTransform nextPopulationTurns, AgeTransform nextPopulationHourglass, AgeTransform gaugePopulationTooltip)
    {
        bool flag = false;
        IDownloadableContentService service = Services.GetService <IDownloadableContentService>();

        if (service != null && service.IsShared(DownloadableContent11.ReadOnlyName))
        {
            DepartmentOfIntelligence agency = observer.GetAgency <DepartmentOfIntelligence>();
            if (agency != null)
            {
                flag = agency.IsEmpireInfiltrated(city.Empire);
            }
        }
        if (DepartmentOfTheInterior.CanBuyoutPopulation(city) && city.Empire == observer)
        {
            populationBuyoutButton.Visible = true;
            if (populationGaugeBackground != null)
            {
                populationGaugeBackground.Visible = false;
            }
            gaugePopulationTooltip.Visible  = false;
            nextPopulationTurns.Visible     = false;
            nextPopulationHourglass.Visible = false;
        }
        else if (DepartmentOfTheInterior.CanBuyoutPopulation(city) && flag)
        {
            populationBuyoutButton.Visible = false;
            if (populationGaugeBackground != null)
            {
                populationGaugeBackground.Visible = false;
            }
            gaugePopulationTooltip.Visible  = false;
            nextPopulationTurns.Visible     = false;
            nextPopulationHourglass.Visible = false;
        }
        else
        {
            populationBuyoutButton.Visible = false;
            if (populationGaugeBackground != null)
            {
                populationGaugeBackground.Visible = true;
            }
            gaugePopulationTooltip.Visible  = true;
            nextPopulationTurns.Visible     = true;
            nextPopulationHourglass.Visible = true;
        }
    }
Пример #5
0
    public static void RefreshPopulationBuyoutButton(Amplitude.Unity.Game.Empire observer, City city, AgeControlButton populationBuyoutButton)
    {
        if (observer != city.Empire)
        {
            populationBuyoutButton.AgeTransform.Enable = false;
            return;
        }
        float propertyValue            = city.GetPropertyValue(SimulationProperties.CityGrowthStock);
        float propertyValue2           = city.GetPropertyValue(SimulationProperties.NetCityGrowth);
        float propertyValue3           = city.GetPropertyValue(SimulationProperties.Population);
        DepartmentOfTheInterior agency = city.Empire.GetAgency <DepartmentOfTheInterior>();
        float num;
        float num2;

        agency.GetGrowthLimits(propertyValue3, out num, out num2);
        if (propertyValue + propertyValue2 >= num2)
        {
            populationBuyoutButton.AgeTransform.Enable             = false;
            populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityBuyoutPopulationNotNeededDescription");
            return;
        }
        float propertyValue4 = city.Empire.GetPropertyValue(SimulationProperties.PopulationBuyoutCooldown);

        if (propertyValue4 > 0f)
        {
            populationBuyoutButton.AgeTransform.Enable             = false;
            populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityBuyoutPopulationCooldownDescription").Replace("$Cooldown", propertyValue4.ToString());
            return;
        }
        float num3 = -DepartmentOfTheTreasury.GetPopulationBuyOutCost(city);
        ResourceDefinition      resourceDefinition = ResourceDefinition.GetResourceDefinition(DepartmentOfTheTreasury.Resources.PopulationBuyout);
        string                  newValue           = GuiFormater.FormatInstantCost(city.Empire, -num3, resourceDefinition.GetName(city.Empire), true, 0);
        DepartmentOfTheTreasury agency2            = city.Empire.GetAgency <DepartmentOfTheTreasury>();

        if (agency2.IsTransferOfResourcePossible(city.Empire, DepartmentOfTheTreasury.Resources.PopulationBuyout, ref num3))
        {
            populationBuyoutButton.AgeTransform.Enable             = CityInfoPanel.interactionsAllowed;
            populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityBuyoutPopulationDescription").Replace("$Cost", newValue);
        }
        else
        {
            populationBuyoutButton.AgeTransform.Enable             = false;
            populationBuyoutButton.AgeTransform.AgeTooltip.Content = AgeLocalizer.Instance.LocalizeString("%CityCannotBuyoutPopulationDescription").Replace("$Cost", newValue);
        }
    }
    private void FillWorldPositionEffects(Amplitude.Unity.Game.Empire activeEmpire, WorldPosition worldPosition, bool showTerraformDescriptors = false)
    {
        SimulationObject simulationObject = null;

        if (this.worldPositionningService.IsExploitable(worldPosition, activeEmpire.Bits))
        {
            Region region = this.worldPositionningService.GetRegion(worldPosition);
            bool   flag   = region != null && region.BelongToEmpire(activeEmpire as global::Empire) && region.City != null;
            if (!region.IsOcean && !region.IsWasteland && simulationObject == null)
            {
                this.districtProxy.RemoveAllDescriptors_ModifierForwardType_ChildrenOnly();
                DepartmentOfTheInterior.ApplyDistrictProxyDescriptors(activeEmpire, this.districtProxy, worldPosition, DistrictType.Exploitation, true, showTerraformDescriptors);
                if (flag)
                {
                    if (this.districtProxy.Parent != region.City.SimulationObject)
                    {
                        region.City.SimulationObject.AddChild_ModifierForwardType_ChildrenOnly(this.districtProxy);
                    }
                    region.City.Refresh(true);
                }
                else
                {
                    if (this.districtProxy.Parent != this.cityProxy)
                    {
                        this.cityProxy.AddChild_ModifierForwardType_ChildrenOnly(this.districtProxy);
                    }
                    if (this.cityProxy.Parent != activeEmpire.SimulationObject)
                    {
                        activeEmpire.SimulationObject.AddChild(this.cityProxy);
                    }
                    this.cityProxy.Refresh();
                }
                simulationObject = this.districtProxy;
                simulationObject.Refresh();
            }
        }
        if (simulationObject != null)
        {
            for (int i = 0; i < this.properties.Count; i++)
            {
                this.propertyValues[i] += simulationObject.GetPropertyValue(this.properties[i]);
            }
        }
    }
Пример #7
0
 public bool IsPositionValidForDevice(Amplitude.Unity.Game.Empire empire, WorldPosition position)
 {
     if (!position.IsValid)
     {
         return(false);
     }
     if (this.WorldPositionningService.IsWaterTile(position))
     {
         return(false);
     }
     if (this.GetDeviceAtPosition(position) != null)
     {
         return(false);
     }
     if (this.IsAreaVolcanoformed(position))
     {
         return(false);
     }
     if (this.WorldPositionningService != null)
     {
         if (!this.WorldPositionningService.IsConstructible(position, WorldPositionning.PreventsDistrictTypeExtensionConstruction, 0) && !this.pillarService.IsPositionOccupiedByAPillar(position))
         {
             return(false);
         }
         Region region = this.WorldPositionningService.GetRegion(position);
         if (region.KaijuEmpire != null && region.Kaiju != null)
         {
             KaijuGarrison kaijuGarrison = region.Kaiju.KaijuGarrison;
             if (kaijuGarrison.WorldPosition == position)
             {
                 return(false);
             }
         }
         if (region != null && region.City != null && region.City.Empire.Index != empire.Index)
         {
             for (int i = 0; i < region.City.Districts.Count; i++)
             {
                 if (region.City.Districts[i].Type != DistrictType.Exploitation && region.City.Districts[i].WorldPosition == position)
                 {
                     return(false);
                 }
             }
             DepartmentOfIndustry agency            = region.City.Empire.GetAgency <DepartmentOfIndustry>();
             ConstructionQueue    constructionQueue = agency.GetConstructionQueue(region.City);
             if (constructionQueue != null)
             {
                 for (int j = 0; j < constructionQueue.PendingConstructions.Count; j++)
                 {
                     if (constructionQueue.PendingConstructions[j].WorldPosition == position)
                     {
                         if (constructionQueue.PendingConstructions[j].ConstructibleElement is DistrictImprovementDefinition)
                         {
                             return(false);
                         }
                         if (constructionQueue.PendingConstructions[j].ConstructibleElement is UnitDesign && (constructionQueue.PendingConstructions[j].ConstructibleElement as UnitDesign).Tags.Contains(DownloadableContent9.TagSolitary))
                         {
                             return(false);
                         }
                     }
                 }
             }
         }
     }
     return(true);
 }
Пример #8
0
 public EventEmpireWorldTerraformed(Amplitude.Unity.Game.Empire terraformingEmpire, WorldPosition[] terraformedTiles) : base(terraformingEmpire, EventEmpireWorldTerraformed.Name, new object[0])
 {
     this.TerraformingEmpire = terraformingEmpire;
     this.TerraformedTiles   = terraformedTiles;
 }
Пример #9
0
 public EventEmpireWorldTerraformed(Amplitude.Unity.Game.Empire terraformingEmpire, WorldPosition[] terraformedTiles, bool reversible = false) : base(terraformingEmpire, EventEmpireWorldTerraformed.Name, new object[0])
 {
     this.TerraformingEmpire = terraformingEmpire;
     this.TerraformedTiles   = terraformedTiles;
     this.Reversible         = reversible;
 }