void repair_OnMouseRelease(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            int price = GetRepairCost();

            //GameManager.BuildingProperties.BuildingBaseProperties(selectedConstruction.ConstructionName, selectedConstruction.ConstructionYear, selectedConstruction.UpgradeYear, GameManager.CurrentYear).Price;

            if (GameManager.GetMoney(GameManager.CurrentYear) >= price)
            {
                GameManager.SpendMoney(GameManager.CurrentYear, price);
                GameInterface.SetMoney(GameManager.GetMoney(GameManager.CurrentYear));

                //do repair
                BuildingsBaseProperties properties = new BuildingsBaseProperties();
                selectedConstruction.SelectConstruction = false;

                selectedConstruction.Slot.ProlongReservation(GameManager.CurrentYear);
                selectedConstruction.ConstructionLifetime = (GameManager.CurrentYear - selectedConstruction.ConstructionYear) + properties.BuildingBaseProperties(selectedConstruction.ConstructionName, selectedConstruction.ConstructionYear, selectedConstruction.UpgradeYear, GameManager.CurrentYear).Lifetime;
                GameMap.RefreshBuilding(selectedConstruction.Slot);

                Close();
                int year = GameManager.CurrentYear;
                GameManager.UpdateYear(year);
            }
            else
            {
                //Debug.AddToLog("Not enough cashcaval");
                textRepairCost.Text = "Can not afford to repair";
                textRepairCost.Tint = Color.Red;
            }
        }
示例#2
0
 void upArrow_OnMousePress(object sender, Operation_Cronos.Input.MouseEventArgs e)
 {
     if (e.Button == Operation_Cronos.Input.MouseButton.LeftButton)
     {
         OnYearIncreased(this, e);
     }
 }
        void TimeBar_OnMouseMove(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            int relativeMouseX = e.ScreenPosition.X - this.X;

            if (draggable != null)
            {
                if (relativeMouseX - draggable.MousePositionInside.X > TimeBar.LeftSlideLimit &&
                    relativeMouseX - draggable.MousePositionInside.X < TimeBar.RightSlideLimit)
                {
                    ((InputVisualComponent)draggable).XRelative = relativeMouseX - draggable.MousePositionInside.X;
                }
                else
                {
                    if (relativeMouseX - draggable.MousePositionInside.X < TimeBar.LeftSlideLimit)
                    {
                        ((InputVisualComponent)draggable).XRelative = TimeBar.LeftSlideLimit;
                    }
                    else
                    {
                        if (relativeMouseX - draggable.MousePositionInside.X > TimeBar.RightSlideLimit)
                        {
                            ((InputVisualComponent)draggable).XRelative = TimeBar.RightSlideLimit;
                        }
                    }
                }
                fraction = ((float)slider.XRelative - LeftSlideLimit) / (float)Length;
                Year     = startYear + (int)((float)(endYear - startYear) * fraction);
            }
        }
示例#4
0
        void research_OnMousePress(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            switch (((ControlPanelButton)sender).ButtonType)
            {
            case ControlPanelButtonType.Research:
                HideAll();
                researchPanel.IsVisible = true;
                research.IsSelected     = true;
                graph.IsSelected        = false;
                researchPanel.Refresh(ConstructionType.Food);
                mgButton_OnMousePress(food, null);
                researchPanel.Enabled = true;
                break;

            case ControlPanelButtonType.Graph:
                HideAll();
                graphPanel.IsVisible = true;
                graphPanel.Enabled   = true;
                graphPanel.Refresh(ConstructionType.Food);
                mgButton_OnMousePress(food, null);
                research.IsSelected = false;
                graph.IsSelected    = true;
                break;
            }
        }
示例#5
0
 void mgButton_OnMousePress(object sender, Operation_Cronos.Input.MouseEventArgs e)
 {
     for (int i = 0; i < MGButtons.Count; i++)
     {
         MGButtons[i].IsSelected = false;
     }
     ChangeView(((ControlPanelButton)sender).ButtonType);
     ((ControlPanelButton)sender).IsSelected = true;
 }
        void upgrade_OnMouseRelease(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            int price = GetUpgradeCost();

            if (GameManager.GetMoney(GameManager.CurrentYear) >= price)
            {
                GameManager.SpendMoney(GameManager.CurrentYear, price);
                GameInterface.SetMoney(GameManager.GetMoney(GameManager.CurrentYear));

                //do upgrade
                if (selectedConstruction.ConstructionType != ConstructionType.Population)
                {
                    selectedConstruction.SelectConstruction = false;
                    selectedConstruction.UpgradeYear        = GameManager.CurrentYear;
                    selectedConstruction.Slot.Upgrade(GameManager.CurrentYear);
                    GameMap.RefreshBuilding(selectedConstruction.Slot);
                    GameMap.Upgrade(selectedConstruction.Slot, GameManager.CurrentYear);
                }
                else
                {
                    selectedConstruction.Slot.ShortenReservation(GameManager.CurrentYear);
                    GameMap.RefreshBuilding(selectedConstruction.Slot);

                    switch (selectedConstruction.ConstructionName)
                    {
                    case Construction.PopulationVillage:
                        GameMap.UpgradePopulationConstruction(selectedConstruction.Slot, Construction.PopulationTown);
                        break;

                    case Construction.PopulationTown:
                        GameMap.UpgradePopulationConstruction(selectedConstruction.Slot, Construction.PopulationCity);
                        break;

                    case Construction.PopulationCity:
                        GameMap.UpgradePopulationConstruction(selectedConstruction.Slot, Construction.PopulationMetropolis);;
                        break;
                    }

                    GameMap.RefreshBuilding(selectedConstruction.Slot);
                    int year = GameManager.CurrentYear;
                    GameManager.UpdateYear(year);

                    Close();
                }
            }
            else
            {
                //Debug.AddToLog("Not enough cashcaval");
                textUpgradeCost.Text = "Can not afford to upgrade";
                textUpgradeCost.Tint = Color.Red;
            }
        }
 void minimize_OnMousePress(object sender, Operation_Cronos.Input.MouseEventArgs e)
 {
     if (parameters.IsOpen)
     {
         parameters.SlideIn();
         SoundManager.PlaySound(Sounds.SlidingSoundShort);
     }
     else
     {
         parameters.SlideOut();
         SoundManager.PlaySound(Sounds.SlidingSoundShort);
     }
 }
        void close_OnMouseRelease(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            if (selectedConstruction.ConstructionType == ConstructionType.Education ||
                selectedConstruction.ConstructionType == ConstructionType.Health ||
                selectedConstruction.ConstructionType == ConstructionType.Population ||
                selectedConstruction.ConstructionType == ConstructionType.Energy)
            {
                SoundManager.StopSound((Sounds)Enum.Parse(typeof(Sounds), selectedConstruction.ConstructionType.ToString()));
            }
            else
            {
                SoundManager.StopSound((Sounds)Enum.Parse(typeof(Sounds), selectedConstruction.ConstructionName.ToString()));
            }


            selectedConstruction.SelectConstruction = false;
            this.IsVisible = false;
            this.Enabled   = false;
        }
        void destroy_OnMouseRelease(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            selectedConstruction.SelectConstruction = false;

            if (selectedConstruction.Slot.GetReservation(GameManager.CurrentYear).Status(GameManager.CurrentYear) == ConstructionStatus.InConstruction)
            {
                GameMap.UndoBuild(GameManager.CurrentYear, selectedConstruction.Slot);
                selectedConstruction.Slot.UndoReservation(GameManager.CurrentYear);
            }
            else
            {
                selectedConstruction.Slot.ShortenReservation(GameManager.CurrentYear);
            }

            GameMap.RefreshBuilding(selectedConstruction.Slot);
            int year = GameManager.CurrentYear;

            GameManager.UpdateYear(year);

            Close();
        }
 void close_OnMousePress(object sender, Operation_Cronos.Input.MouseEventArgs e)
 {
     this.IsVisible = false;
     this.Enabled   = false;
 }
示例#11
0
 void minimize_OnMousePress(object sender, Operation_Cronos.Input.MouseEventArgs e)
 {
     OnMinimize(this, new EventArgs());
     SoundManager.PlaySound(Sounds.SlidingSoundLong);
 }
        void icon_OnMousePress(object sender, Operation_Cronos.Input.MouseEventArgs e)
        {
            ControlPanelButton icon = (ControlPanelButton)sender;

            Refresh((Research)icon.Data);
        }