Esempio n. 1
0
        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();
        }
Esempio n. 2
0
    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
    }
Esempio n. 3
0
 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);
 }
Esempio n. 4
0
        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);
        }