コード例 #1
0
    private void OnTechnologyBuyoutCB(GameObject obj)
    {
        Construction construction = this.departmentOfScience.ResearchQueue.Peek();

        if (construction == null)
        {
            return;
        }
        OrderBuyOutTechnology order = new OrderBuyOutTechnology(base.Empire.Index, construction.ConstructibleElement.Name);

        base.PlayerController.PostOrder(order);
    }
コード例 #2
0
 private void TryForceShipyardResearch()
 {
     DepartmentOfScience.ConstructibleElement constructibleElement;
     if (base.AIEntity.Empire.GetAgency <DepartmentOfScience>().TechnologyDatabase.TryGetValue("TechnologyDefinitionShip", out constructibleElement) && base.AIEntity.Empire.GetAgency <DepartmentOfScience>().GetTechnologyState(constructibleElement) == DepartmentOfScience.ConstructibleElement.State.Available)
     {
         bool flag = false;
         using (IEnumerator <City> enumerator = this.departmentOfTheInterior.Cities.GetEnumerator())
         {
             while (enumerator.MoveNext())
             {
                 for (int i = 0; i < enumerator.Current.Region.Borders.Length; i++)
                 {
                     if (this.worldPositionningService.GetRegion(enumerator.Current.Region.Borders[i].NeighbourRegionIndex).IsOcean)
                     {
                         flag = true;
                         break;
                     }
                 }
             }
         }
         if (flag)
         {
             if (!DepartmentOfScience.CanBuyoutResearch(base.AIEntity.Empire))
             {
                 OrderQueueResearch order = new OrderQueueResearch(base.AIEntity.Empire.Index, constructibleElement, true);
                 base.AIEntity.Empire.PlayerControllers.AI.PostOrder(order);
                 return;
             }
             float num = -base.AIEntity.Empire.GetAgency <DepartmentOfScience>().GetBuyOutTechnologyCost(constructibleElement) * 1.05f;
             if (base.AIEntity.Empire.GetAgency <DepartmentOfTheTreasury>().IsTransferOfResourcePossible(base.AIEntity.Empire, DepartmentOfTheTreasury.Resources.TechnologiesBuyOut, ref num))
             {
                 OrderBuyOutTechnology order2 = new OrderBuyOutTechnology(base.AIEntity.Empire.Index, "TechnologyDefinitionShip");
                 Ticket ticket;
                 base.AIEntity.Empire.PlayerControllers.AI.PostOrder(order2, out ticket, null);
             }
         }
     }
 }