public override void StartScenario() { hbuilder = scenario.hexBuilder; conditionQuest = new ConditionQuest( new SimpleCondition[3] { SimpleCondition.GetDummyCondition(null), // colonists SimpleCondition.GetDummyCondition(null), // energy SimpleCondition.GetDummyCondition(null) // income }, colony, false, QuestIcon.FoundationRouteIcon ); conditionQuest.steps[0] = localizer.colonistsLabel; conditionQuest.steps[1] = localizer.islandStatsLabel; conditionQuest.steps[2] = localizer.lowerlandStatsLabel; scenario.StartQuest(conditionQuest); scenarioQuest.FillText(localizer.GetQuestData(FoundationScenarioStep.Finish)); // conditionWindow = scenarioUI.ShowConditionPanel(0, conditionQuest, null); conditionWindow.SetMainIcon(UIController.iconsTexture, UIController.GetIconUVRect(Icons.FoundationRoute)); // UIController.GetCurrent().updateEvent += this.Check; scenarioUI.ChangeAnnouncementText(localizer.GetAnnounceTitle(FoundationScenarioStep.Finish, WINDOW_INFO_0)); scenarioUI.ShowAnnouncePanel(); // colony.populationUpdateEvent += this.CitizensUpdate; // Check(); }
public override void EndScenario() { completed = true; GameMaster.SetPause(true); GameMaster.realMaster.UnbindScenario(this); if (scenarioUI != null) { scenarioUI.DisableConditionPanel(0); scenarioUI.DisableConditionPanel(1); scenarioUI.ScenarioEnds(this); } settleWindow = null; if (settleQuest != null) { settleQuest.MakeQuestCompleted(); settleQuest = null; UIController.GetCurrent().updateEvent -= CheckSettlingConditions; } scenarioQuest?.MakeQuestCompleted(); scenarioQuest = null; //hexBuilder. // FollowingCamera.main.SetObservingPosition( hexBuilder.GetHexWorldPosition(new HexPosition(3, Random.Range(0, 18))) + Vector3.up * 5f, GameMaster.sceneCenter + Vector3.down * 5f ); //UIController.GetCurrent().ChangeUIMode(UIMode.Endgame, true); GameMaster.realMaster.GameOver(GameEndingType.FoundationRoute); GameMaster.SetPause(false); // minus one pause request }
public void PrepareSettling() { if (settleQuest != null) { return; } settleQuest = new ConditionQuest(new SimpleCondition[3] { SimpleCondition.GetDummyCondition(null), SimpleCondition.GetDummyCondition(null), SimpleCondition.GetResourceCondition(ResourceType.Supplies, COLONISTS_SEND_COST) }, colony, false, QuestIcon.PeopleIcon); settleQuest.steps[0] = localizer.colonistArrivedLabel; settleQuest.steps[1] = localizer.livingSpaceLabel; UIController.GetCurrent().updateEvent += CheckSettlingConditions; settleWindow = scenarioUI.ShowConditionPanel(1, settleQuest, this.SendColonists); settleWindow.SetMainIcon(UIController.iconsTexture, UIController.GetIconUVRect(Icons.Citizen)); settleWindow.SetButtonText(localizer.sendColonistsLabel); }
protected void StartSectorBuildingQuest(byte ring, byte index, System.Action clickAction) { var conditions = new SimpleCondition[3]; if (ring == 0) // INNER RING { switch (index) { case 0: conditions[0] = SimpleCondition.GetResourceCondition(ResourceType.metal_K, 4100f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.metal_S, 1600f); conditions[2] = SimpleCondition.GetMoneyCondition(2500f); break; case 1: conditions[0] = SimpleCondition.GetGearsCondition(4f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.metal_M, 2500f); conditions[2] = SimpleCondition.GetResourceCondition(ResourceType.metal_E, 1200f); break; case 2: conditions[0] = SimpleCondition.GetMoneyCondition(2500f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.metal_P, 500f); conditions[2] = SimpleCondition.GetResourceCondition(ResourceType.mineral_L, 2000f); break; case 3: conditions[0] = SimpleCondition.GetResourceCondition(ResourceType.metal_S, 1500f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.Concrete, 7530f); conditions[2] = SimpleCondition.GetResourceCondition(ResourceType.Plastics, 7530f); break; case 4: conditions[0] = SimpleCondition.GetFreeWorkersCondition(500); conditions[1] = SimpleCondition.GetMoneyCondition(1200f); conditions[2] = SimpleCondition.GetResourceCondition(ResourceType.Food, 40000f); break; case 5: conditions[0] = SimpleCondition.GetFreeWorkersCondition(600); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.metal_K, 1200f); conditions[2] = SimpleCondition.GetMoneyCondition(1500f); break; } conditionQuest = new ConditionQuest(conditions, colony, false, QuestIcon.FoundationRouteIcon); } else // OUTER RING { switch (index) { case 0: conditions[0] = SimpleCondition.GetResourceCondition(ResourceType.Plastics, 6800f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.metal_K, 1200f); conditions[2] = SimpleCondition.GetStoredEnergyCondition(6100f); break; case 1: conditions[0] = SimpleCondition.GetResourceCondition(ResourceType.Fuel, 250f); conditions[1] = SimpleCondition.GetFreeWorkersCondition(700); conditions[2] = SimpleCondition.GetMoneyCondition(1700f); break; case 2: conditions[0] = SimpleCondition.GetResourceCondition(ResourceType.Concrete, 8000f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.Plastics, 8000f); conditions[2] = SimpleCondition.GetCrewsCondition(2, 3); break; case 3: conditions[0] = SimpleCondition.GetResourceCondition(ResourceType.metal_M, 5700f); conditions[1] = SimpleCondition.GetShuttlesCondition(10); conditions[2] = SimpleCondition.GetDummyCondition(true); // 4 рейса с оборудованием break; case 4: conditions[0] = SimpleCondition.GetResourceCondition(ResourceType.Dirt, 12000f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.mineral_F, 2500f); conditions[2] = SimpleCondition.GetResourceCondition(ResourceType.mineral_L, 1000f); break; case 5: conditions[0] = SimpleCondition.GetMoneyCondition(2000f); conditions[1] = SimpleCondition.GetResourceCondition(ResourceType.Dirt, 1200f); conditions[2] = SimpleCondition.GetGearsCondition(5f); break; } // conditionQuest = new ConditionQuest(conditions, colony, false, QuestIcon.FoundationRouteIcon); } conditionQuest.CheckQuestConditions(); conditionWindow = scenarioUI.ShowConditionPanel(0, conditionQuest, clickAction); conditionQuest.BindUIUpdateFunction(conditionWindow.Refresh); conditionQuest.SubscribeToUpdate(questUI); }