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); }
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); } } } }